X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/827dc73d41369de7abfc2582895b6e9e8f09bd79..249844e0d54a237941763d2c0d56bf723f60902e:/man/gnus.texi diff --git a/man/gnus.texi b/man/gnus.texi index 48a0f64281..ea959671c0 100644 --- a/man/gnus.texi +++ b/man/gnus.texi @@ -2139,7 +2139,7 @@ If @code{gnus-auto-select-first} is non-@code{nil}, select an article automatically when entering a group with the @kbd{SPACE} command. Which article this is is controlled by the @code{gnus-auto-select-subject} variable. Valid values for this -variable is: +variable are: @table @code @@ -2495,6 +2495,10 @@ special-purpose groups. All these commands insert the newly created groups under point---@code{gnus-subscribe-newsgroup-method} is not consulted. +Changes from the group editing commands are stored in +@file{~/.newsrc.eld} (@code{gnus-startup-file}). An alternative is the +variable @code{gnus-parameters}, @xref{Group Parameters}. + @table @kbd @item G m @@ -2806,6 +2810,7 @@ doesn't accept articles. @item auto-expire @cindex auto-expire +@cindex expiring mail If the group parameter has an element that looks like @code{(auto-expire . t)}, all articles read will be marked as expirable. For an alternative approach, @pxref{Expiring Mail}. @@ -2814,6 +2819,7 @@ See also @code{gnus-auto-expirable-newsgroups}. @item total-expire @cindex total-expire +@cindex expiring mail If the group parameter has an element that looks like @code{(total-expire . t)}, all read articles will be put through the expiry process, even if they are not marked as expirable. Use with @@ -3403,6 +3409,7 @@ zombies. @item C-c C-x @kindex C-c C-x (Group) @findex gnus-group-expire-articles +@cindex expiring mail Run all expirable articles in the current group through the expiry process (if any) (@code{gnus-group-expire-articles}). That is, delete all expirable articles in the group that have been around for a while. @@ -3411,6 +3418,7 @@ all expirable articles in the group that have been around for a while. @item C-c C-M-x @kindex C-c C-M-x (Group) @findex gnus-group-expire-all-groups +@cindex expiring mail Run all expirable articles in all groups through the expiry process (@code{gnus-group-expire-all-groups}). @@ -3771,6 +3779,7 @@ sub-topics unless given a prefix. @item C-c C-x @kindex C-c C-x (Topic) @findex gnus-topic-expire-articles +@cindex expiring mail Run all expirable articles in the current group or topic through the expiry process (if any) (@code{gnus-topic-expire-articles}). (@pxref{Expiring Mail}). @@ -6348,9 +6357,9 @@ articles younger than that number of days. @item / n @kindex / n (Summary) @findex gnus-summary-limit-to-articles -Limit the summary buffer to the current article -(@code{gnus-summary-limit-to-articles}). Uses the process/prefix -convention (@pxref{Process/Prefix}). +With prefix @samp{n}, limit the summary buffer to the next @samp{n} +articles. If not given a prefix, use the process marked articles +instead. (@code{gnus-summary-limit-to-articles}). @item / w @kindex / w (Summary) @@ -9372,11 +9381,15 @@ default is @code{nil}. @item gnus-article-emulate-mime @vindex gnus-article-emulate-mime +@cindex uuencode +@cindex yEnc There are other, non-@acronym{MIME} encoding methods used. The most common is @samp{uuencode}, but yEncode is also getting to be popular. If this variable is non-@code{nil}, Gnus will look in message bodies to see if it finds these encodings, and if so, it'll run them through the -Gnus @acronym{MIME} machinery. The default is @code{t}. +Gnus @acronym{MIME} machinery. The default is @code{t}. Only +single-part yEnc encoded attachments can be decoded. There's no support +for encoding in Gnus. @item gnus-unbuttonized-mime-types @vindex gnus-unbuttonized-mime-types @@ -10052,6 +10065,7 @@ process/prefix convention (@pxref{Process/Prefix}). @item B e @kindex B e (Summary) @findex gnus-summary-expire-articles +@cindex expiring mail Run all expirable articles in the current group through the expiry process (@code{gnus-summary-expire-articles}). That is, delete all expirable articles in the group that have been around for a while. @@ -10060,6 +10074,7 @@ expirable articles in the group that have been around for a while. @item B C-M-e @kindex B C-M-e (Summary) @findex gnus-summary-expire-articles-now +@cindex expiring mail Delete all the expirable articles in the group (@code{gnus-summary-expire-articles-now}). This means that @strong{all} articles eligible for expiry in the current group will @@ -10967,15 +10982,15 @@ the current group's @code{to-address} parameter. Remove the @code{To} header if it only contains the address identical to the current group's @code{to-list} parameter. @item cc-list -Remove the @code{CC} header if it only contains the address identical to +Remove the @code{Cc} header if it only contains the address identical to the current group's @code{to-list} parameter. @item date Remove the @code{Date} header if the article is less than three days old. @item long-to -Remove the @code{To} header if it is very long. +Remove the @code{To} and/or @code{Cc} header if it is very long. @item many-to -Remove all @code{To} headers if there are more than one. +Remove all @code{To} and/or @code{Cc} headers if there are more than one. @end table To include these three elements, you could say something like: @@ -11208,42 +11223,66 @@ group. Values in parenthesis are suggested sensible values. Others are possible but those listed are probably sufficient for most people. @table @code +@vindex gnus-treat-buttonize @item gnus-treat-buttonize (t, integer) +@vindex gnus-treat-buttonize-head @item gnus-treat-buttonize-head (head) @xref{Article Buttons}. +@vindex gnus-treat-capitalize-sentences @item gnus-treat-capitalize-sentences (t, integer) +@vindex gnus-treat-overstrike @item gnus-treat-overstrike (t, integer) +@vindex gnus-treat-strip-cr @item gnus-treat-strip-cr (t, integer) +@vindex gnus-treat-strip-headers-in-body @item gnus-treat-strip-headers-in-body (t, integer) +@vindex gnus-treat-strip-leading-blank-lines @item gnus-treat-strip-leading-blank-lines (t, integer) +@vindex gnus-treat-strip-multiple-blank-lines @item gnus-treat-strip-multiple-blank-lines (t, integer) +@vindex gnus-treat-strip-pem @item gnus-treat-strip-pem (t, last, integer) +@vindex gnus-treat-strip-trailing-blank-lines @item gnus-treat-strip-trailing-blank-lines (t, last, integer) +@vindex gnus-treat-unsplit-urls @item gnus-treat-unsplit-urls (t, integer) +@vindex gnus-treat-wash-html @item gnus-treat-wash-html (t, integer) @xref{Article Washing}. +@vindex gnus-treat-date-english @item gnus-treat-date-english (head) +@vindex gnus-treat-date-iso8601 @item gnus-treat-date-iso8601 (head) +@vindex gnus-treat-date-lapsed @item gnus-treat-date-lapsed (head) +@vindex gnus-treat-date-local @item gnus-treat-date-local (head) +@vindex gnus-treat-date-original @item gnus-treat-date-original (head) +@vindex gnus-treat-date-user-defined @item gnus-treat-date-user-defined (head) +@vindex gnus-treat-date-ut @item gnus-treat-date-ut (head) @xref{Article Date}. +@vindex gnus-treat-from-picon @item gnus-treat-from-picon (head) +@vindex gnus-treat-mail-picon @item gnus-treat-mail-picon (head) +@vindex gnus-treat-newsgroups-picon @item gnus-treat-newsgroups-picon (head) @xref{Picons}. +@vindex gnus-treat-display-smileys @item gnus-treat-display-smileys (t, integer) +@vindex gnus-treat-body-boundary @item gnus-treat-body-boundary (head) @vindex gnus-body-boundary-delimiter @@ -11252,40 +11291,62 @@ is controlled by @code{gnus-body-boundary-delimiter}. @xref{Smileys}. +@vindex gnus-treat-display-x-face @item gnus-treat-display-x-face (head) @xref{X-Face}. +@vindex gnus-treat-display-face @item gnus-treat-display-face (head) @xref{Face}. +@vindex gnus-treat-emphasize @item gnus-treat-emphasize (t, head, integer) +@vindex gnus-treat-fill-article @item gnus-treat-fill-article (t, integer) +@vindex gnus-treat-fill-long-lines @item gnus-treat-fill-long-lines (t, integer) +@vindex gnus-treat-hide-boring-headers @item gnus-treat-hide-boring-headers (head) +@vindex gnus-treat-hide-citation @item gnus-treat-hide-citation (t, integer) +@vindex gnus-treat-hide-citation-maybe @item gnus-treat-hide-citation-maybe (t, integer) +@vindex gnus-treat-hide-headers @item gnus-treat-hide-headers (head) +@vindex gnus-treat-hide-signature @item gnus-treat-hide-signature (t, last) +@vindex gnus-treat-strip-banner @item gnus-treat-strip-banner (t, last) +@vindex gnus-treat-strip-list-identifiers @item gnus-treat-strip-list-identifiers (head) @xref{Article Hiding}. +@vindex gnus-treat-highlight-citation @item gnus-treat-highlight-citation (t, integer) +@vindex gnus-treat-highlight-headers @item gnus-treat-highlight-headers (head) +@vindex gnus-treat-highlight-signature @item gnus-treat-highlight-signature (t, last, integer) @xref{Article Highlighting}. +@vindex gnus-treat-play-sounds @item gnus-treat-play-sounds +@vindex gnus-treat-translate @item gnus-treat-translate +@vindex gnus-treat-x-pgp-sig @item gnus-treat-x-pgp-sig (head) +@vindex gnus-treat-unfold-headers @item gnus-treat-unfold-headers (head) +@vindex gnus-treat-fold-headers @item gnus-treat-fold-headers (head) +@vindex gnus-treat-fold-newsgroups @item gnus-treat-fold-newsgroups (head) +@vindex gnus-treat-leading-whitespace @item gnus-treat-leading-whitespace (head) @xref{Article Header}. @@ -13629,16 +13690,17 @@ and says what authentication scheme to use. The default is @vindex pop3-movemail @vindex pop3-leave-mail-on-server If the @code{:program} and @code{:function} keywords aren't specified, -@code{pop3-movemail} will be used. If the -@code{pop3-leave-mail-on-server} is non-@code{nil} the mail is to be -left on the @acronym{POP} server after fetching when using -@code{pop3-movemail}. Note that POP servers maintain no state -information between sessions, so what the client believes is there and -what is actually there may not match up. If they do not, then the whole -thing can fall apart and leave you with a corrupt mailbox. +@code{pop3-movemail} will be used. If @code{pop3-leave-mail-on-server} +is non-@code{nil} the mail is to be left on the @acronym{POP} server +after fetching when using @code{pop3-movemail}. Note that POP servers +maintain no state information between sessions, so what the client +believes is there and what is actually there may not match up. If they +do not, then you may get duplicate mails or the whole thing can fall +apart and leave you with a corrupt mailbox. -Here are some examples. Fetch from the default @acronym{POP} server, -using the default user name, and default fetcher: +Here are some examples for getting mail from a @acronym{POP} server. +Fetch from the default @acronym{POP} server, using the default user +name, and default fetcher: @lisp (pop) @@ -14502,6 +14564,7 @@ using the new mail back end. @node Expiring Mail @subsection Expiring Mail @cindex article expiry +@cindex expiring mail Traditional mail readers have a tendency to remove mail articles when you mark them as read, in some way. Gnus takes a fundamentally @@ -16445,6 +16508,7 @@ as ticked for other users. @item nnimap-expunge-search-string @cindex expunging @vindex nnimap-expunge-search-string +@cindex expiring @acronym{IMAP} mail This variable contain the @acronym{IMAP} search command sent to server when searching for articles eligible for expiring. The default is @@ -16456,6 +16520,10 @@ Probably the only useful value to change this to is messages instead of the internal article date. See section 6.4.4 of RFC 2060 for more information on valid strings. +However, if @code{nnimap-search-uids-not-since-is-evil} +is true, this variable has no effect since the search logic +is reversed, as described below. + @item nnimap-authinfo-file @vindex nnimap-authinfo-file @@ -16481,6 +16549,47 @@ Unselect mailboxes before looking for new mail in them. Some servers seem to need this under some circumstances; it was reported that Courier 1.7.1 did. +@item nnimap-nov-is-evil +@vindex nnimap-nov-is-evil +@cindex Courier @acronym{IMAP} server +@cindex @acronym{NOV} + +Never generate or use a local @acronym{NOV} database. Defaults to the +value of @code{gnus-agent}. + +Using a @acronym{NOV} database usually makes header fetching much +faster, but it uses the @code{UID SEARCH UID} command, which is very +slow on some servers (notably some versions of Courier). Since the Gnus +Agent caches the information in the @acronym{NOV} database without using +the slow command, this variable defaults to true if the Agent is in use, +and false otherwise. + +@item nnimap-search-uids-not-since-is-evil +@vindex nnimap-search-uids-not-since-is-evil +@cindex Courier @acronym{IMAP} server +@cindex expiring @acronym{IMAP} mail + +Avoid the @code{UID SEARCH UID @var{message numbers} NOT SINCE +@var{date}} command, which is slow on some @acronym{IMAP} servers +(notably, some versions of Courier). Instead, use @code{UID SEARCH SINCE +@var{date}} and prune the list of expirable articles within Gnus. + +When Gnus expires your mail (@pxref{Expiring Mail}), it starts with a +list of expirable articles and asks the IMAP server questions like ``Of +these articles, which ones are older than a week?'' While this seems +like a perfectly reasonable question, some IMAP servers take a long time +to answer it, since they seemingly go looking into every old article to +see if it is one of the expirable ones. Curiously, the question ``Of +@emph{all} articles, which ones are newer than a week?'' seems to be +much faster to answer, so setting this variable causes Gnus to ask this +question and figure out the answer to the real question itself. + +This problem can really sneak up on you: when you first configure Gnus, +everything works fine, but once you accumulate a couple thousand +messages, you start cursing Gnus for being so slow. On the other hand, +if you get a lot of email within a week, setting this variable will +cause a lot of network traffic between Gnus and the IMAP server. + @end table @menu @@ -16668,7 +16777,7 @@ splitting function that analyzes the body to split the article. @node Expiring in IMAP @subsection Expiring in IMAP -@cindex expiring imap mail +@cindex expiring @acronym{IMAP} mail Even though @code{nnimap} is not a proper @code{nnmail} derived back end, it supports most features in regular expiring (@pxref{Expiring @@ -16687,6 +16796,9 @@ you to view client specific flags on the message. It also means that your server must support permanent storage of client specific flags on messages. Most do, fortunately. +If expiring @acronym{IMAP} mail seems very slow, try setting the server +variable @code{nnimap-search-uids-not-since-is-evil}. + @table @code @item nnmail-expiry-wait @@ -18596,7 +18708,7 @@ sense if you are using a nntp or nnimap back end. @findex gnus-agent-expire-group @cindex agent expiry @cindex Gnus agent expiry -@cindex expiry +@cindex expiry, in Gnus agent The Agent back end, @code{nnagent}, doesn't handle expiry. Well, at least it doesn't handle it like other back ends. Instead, there are @@ -18849,20 +18961,20 @@ setup, you may be able to use something like the following as your @file{~/.gnus.el} file to get started. @lisp -;;; @r{Define how Gnus is to fetch news. We do this over @acronym{NNTP}} -;;; @r{from your ISP's server.} +;; @r{Define how Gnus is to fetch news. We do this over @acronym{NNTP}} +;; @r{from your ISP's server.} (setq gnus-select-method '(nntp "news.your-isp.com")) -;;; @r{Define how Gnus is to read your mail. We read mail from} -;;; @r{your ISP's @acronym{POP} server.} +;; @r{Define how Gnus is to read your mail. We read mail from} +;; @r{your ISP's @acronym{POP} server.} (setq mail-sources '((pop :server "pop.your-isp.com"))) -;;; @r{Say how Gnus is to store the mail. We use nnml groups.} +;; @r{Say how Gnus is to store the mail. We use nnml groups.} (setq gnus-secondary-select-methods '((nnml ""))) -;;; @r{Make Gnus into an offline newsreader.} -;;; (gnus-agentize) ; @r{The obsolete setting.} -;;; (setq gnus-agent t) ; @r{Now the default.} +;; @r{Make Gnus into an offline newsreader.} +;; (gnus-agentize) ; @r{The obsolete setting.} +;; (setq gnus-agent t) ; @r{Now the default.} @end lisp That should be it, basically. Put that in your @file{~/.gnus.el} file, @@ -22128,8 +22240,8 @@ It takes the group name as a parameter. @section Image Enhancements XEmacs, as well as Emacs 21@footnote{Emacs 21 on MS Windows doesn't -support images yet.}, is able to display pictures and stuff, so Gnus has -taken advantage of that. +support images, Emacs 22 does.} and up, are able to display pictures and +stuff, so Gnus has taken advantage of that. @menu * X-Face:: Display a funky, teensy black-and-white image. @@ -22166,21 +22278,26 @@ have suitable conversion or display programs installed. If your Emacs has image support the default action is to display the face before the @code{From} header. If there's no native @code{X-Face} support, Gnus will try to convert the @code{X-Face} header using external programs -from the @code{pbmplus} package and friends. For XEmacs it's faster if -XEmacs has been compiled with @code{X-Face} support. The default action -under Emacs without image support is to fork off the @code{display} -program. +from the @code{pbmplus} package and friends, see below. For XEmacs it's +faster if XEmacs has been compiled with @code{X-Face} support. The +default action under Emacs without image support is to fork off the +@code{display} program. -On a GNU/Linux system, the @code{display} program is from the +On a GNU/Linux system, the @code{display} program is included in the ImageMagick package. For external conversion programs look for packages with names like @code{netpbm}, @code{libgr-progs} and @code{compface}. - -The variable that controls this is the -@code{gnus-article-x-face-command} variable. If this variable is a +On Windows, you may use the packages @code{netpbm} and @code{compface} +from @url{http://gnuwin32.sourceforge.net}. You need to add the +@code{bin} directory to your @code{PATH} environment variable. +@c In fact only the following DLLs and binaries seem to be required: +@c compface1.dll uncompface.exe libnetpbm10.dll icontopbm.exe + +The variable @code{gnus-article-x-face-command} controls which programs +are used to display the @code{X-Face} header. If this variable is a string, this string will be executed in a sub-shell. If it is a function, this function will be called with the face as the argument. -If the @code{gnus-article-x-face-too-ugly} (which is a regexp) matches -the @code{From} header, the face will not be shown. +If @code{gnus-article-x-face-too-ugly} (which is a regexp) matches the +@code{From} header, the face will not be shown. (Note: @code{x-face} is used in the variable/function names, not @code{xface}). @@ -22974,7 +23091,7 @@ variable @code{gnus-ham-process-destinations}, or the group parameter group specified by the variable @code{gnus-spam-process-destinations}, or the group parameter @code{spam-process-destination}. If these variables are not set, the articles are left in their current group. -If an article cannot not be moved (e.g., with a read-only backend such +If an article cannot be moved (e.g., with a read-only backend such as @acronym{NNTP}), it is copied. If an article is moved to another group, it is processed again when @@ -23310,9 +23427,6 @@ From Ted Zlatanov . (gnus-registry-initialize) (spam-initialize) -;; @r{I like @kbd{C-s} for marking spam} -(define-key gnus-summary-mode-map "\C-s" 'gnus-summary-mark-as-spam) - (setq spam-log-to-registry t ; @r{for spam autodetection} spam-use-BBDB t @@ -23884,7 +23998,7 @@ The actual string used is irrelevant, but you probably want to leave the default value of @samp{spam}. @end defvar -@defvar spam-ifile-database-path +@defvar spam-ifile-database This is the filename for the ifile database. It is not specified by default, so ifile will use its own default database name. @@ -24245,10 +24359,10 @@ file is treated as one non-spam mail. @end defun Usually you would call @code{spam-stat-process-spam-directory} on a -directory such as @file{~/Mail/mail/spam} (this usually corresponds -the the group @samp{nnml:mail.spam}), and you would call +directory such as @file{~/Mail/mail/spam} (this usually corresponds to +the group @samp{nnml:mail.spam}), and you would call @code{spam-stat-process-non-spam-directory} on a directory such as -@file{~/Mail/mail/misc} (this usually corresponds the the group +@file{~/Mail/mail/misc} (this usually corresponds to the group @samp{nnml:mail.misc}). When you are using @acronym{IMAP}, you won't have the mails available @@ -24462,7 +24576,7 @@ Save table: (spam-stat-save) @subsection Dired @cindex dired -@code{gnus-dired-minor-mode} provided some useful functions for dired +@code{gnus-dired-minor-mode} provides some useful functions for dired buffers. It is enabled with @lisp (add-hook 'dired-mode-hook 'turn-on-gnus-dired-mode) @@ -24471,6 +24585,7 @@ buffers. It is enabled with @table @kbd @item C-c C-m C-a @findex gnus-dired-attach +@cindex attachments, selection via dired Send dired's marked files as an attachment (@code{gnus-dired-attach}). You will be prompted for a message buffer. @@ -26074,6 +26189,14 @@ read from your @file{.newsrc.eld} instead of from the later entry for more information about marks. Note that downgrading isn't save in general. +@item +Lisp files are now installed in @file{.../site-lisp/gnus/} by default. +It defaulted to @file{.../site-lisp/} formerly. In addition to this, +the new installer issues a warning if other Gnus installations which +will shadow the latest one are detected. You can then remove those +shadows manually or remove them using @code{make +remove-installed-shadows}. + @item New @file{make.bat} for compiling and installing Gnus under MS Windows @@ -26525,7 +26648,9 @@ versions. @item The option @code{mm-fill-flowed} can be used to disable treatment of ``format=flowed'' messages. Also, flowed text is disabled when sending -inline PGP signed messages. (New in Gnus 5.10.7) +inline PGP signed messages. @xref{Flowed text, , Flowed text, +emacs-mime, The Emacs MIME Manual}. (New in Gnus 5.10.7) +@c This entry is also present in the node "No Gnus". @item Gnus supports the generation of RFC 2298 Disposition Notification requests.