\input texinfo @c -*-texinfo-*-
@setfilename gnus
-@settitle Gnus 5.6.13 Manual
+@settitle Gnus 5.6.33 Manual
@synindex fn cp
@synindex vr cp
@synindex pg cp
\newcommand{\gnustilde}{\symbol{"7E}}
\newcommand{\gnusless}{{$<$}}
\newcommand{\gnusgreater}{{$>$}}
+\newcommand{\gnusbraceleft}{{$>$}}
+\newcommand{\gnusbraceright}{{$>$}}
\newcommand{\gnushead}{\raisebox{-1cm}{\epsfig{figure=ps/gnus-head.eps,height=1cm}}}
\newcommand{\gnusinteresting}{
@tex
@titlepage
-@title Gnus 5.6.13 Manual
+@title Gnus 5.6.33 Manual
@author by Lars Magne Ingebrigtsen
@page
spool or your mbox file. All at the same time, if you want to push your
luck.
-This manual corresponds to Gnus 5.6.13.
+This manual corresponds to Gnus 5.6.33.
@end ifinfo
@vindex gnus-group-mode-line-format
The mode line can be changed by setting
-@code{gnus-group-mode-line-format} (@pxref{Formatting Variables}). It
+@code{gnus-group-mode-line-format} (@pxref{Mode Line Formatting}). It
doesn't understand that many format specifiers:
@table @samp
background is dark:
@lisp
-(face-spec-set 'my-group-face-1 '((t (:foreground "Red" :bold t))))
-(face-spec-set 'my-group-face-2 '((t (:foreground "SeaGreen" :bold t))))
-(face-spec-set 'my-group-face-3 '((t (:foreground "SpringGreen" :bold t))))
-(face-spec-set 'my-group-face-4 '((t (:foreground "SteelBlue" :bold t))))
-(face-spec-set 'my-group-face-5 '((t (:foreground "SkyBlue" :bold t))))
+(face-spec-set 'my-group-face-1
+ '((t (:foreground "Red" :bold t))))
+(face-spec-set 'my-group-face-2
+ '((t (:foreground "SeaGreen" :bold t))))
+(face-spec-set 'my-group-face-3
+ '((t (:foreground "SpringGreen" :bold t))))
+(face-spec-set 'my-group-face-4
+ '((t (:foreground "SteelBlue" :bold t))))
+(face-spec-set 'my-group-face-5
+ '((t (:foreground "SkyBlue" :bold t))))
(setq gnus-group-highlight
'(((> unread 200) . my-group-face-1)
If @code{gnus-activate-foreign-newsgroups} is a positive number,
Gnus will check all foreign groups with this level or lower at startup.
This might take quite a while, especially if you subscribe to lots of
-groups from different @sc{nntp} servers.
+groups from different @sc{nntp} servers. Also @pxref{Group Levels};
+@code{gnus-activate-level} also affects activation of foreign
+newsgroups.
@node Group Parameters
@kindex F (Group)
@findex gnus-group-find-new-groups
Find new groups and process them (@code{gnus-group-find-new-groups}).
-If given a prefix, use the @code{ask-server} method to query the server
-for new groups.
+With 1 @kbd{C-u}, use the @code{ask-server} method to query the server
+for new groups. With 2 @kbd{C-u}'s, use most complete method possible
+to query the server for new groups, and subscribe the new groups as
+zombies.
@item C-c C-x
@kindex C-c C-x (Group)
@kindex T D (Topic)
@findex gnus-topic-remove-group
Remove a group from the current topic (@code{gnus-topic-remove-group}).
+This command is mainly useful if you have the same group in several
+topics and wish to remove it from one of the topics. You may also
+remove a group from all topics, but in that case, Gnus will add it to
+the root topic the next time you start Gnus. In fact, all new groups
+(which, naturally, don't belong to any topic) will show up in the root
+topic.
+
This command uses the process/prefix convention
(@pxref{Process/Prefix}).
Copy all groups that match some regular expression to a topic
(@code{gnus-topic-copy-matching}).
-@item T h
-@kindex T h (Topic)
+@item T H
+@kindex T H (Topic)
@findex gnus-topic-toggle-display-empty-topics
Toggle hiding empty topics
(@code{gnus-topic-toggle-display-empty-topics}).
prefix, group on that level (and lower) will be displayed.
@item T TAB
+@itemx TAB
@kindex T TAB (Topic)
+@kindex TAB (Topic)
@findex gnus-topic-indent
``Indent'' the current topic so that it becomes a sub-topic of the
previous topic (@code{gnus-topic-indent}). If given a prefix,
``un-indent'' the topic instead.
+@item M-TAB
+@kindex M-TAB (Topic)
+@findex gnus-topic-unindent
+``Un-indent'' the current topic so that it becomes a sub-topic of the
+parent of its current parent (@code{gnus-topic-unindent}).
+
@item C-k
@kindex C-k (Topic)
@findex gnus-topic-kill-group
. "emacs.SCORE")}; the @samp{Relief} topic has the topic parameter
@code{(score-file . "relief.SCORE")}; and the @samp{Misc} topic has the
topic parameter @code{(score-file . "emacs.SCORE")}. In addition,
-@samp{alt.religion.emacs} has the group parameter @code{(score-file
+@* @samp{alt.religion.emacs} has the group parameter @code{(score-file
. "religion.SCORE")}.
Now, when you enter @samp{alt.sex.emacs} in the @samp{Relief} topic, you
@vindex gnus-summary-zcore-fuzz
Zcore, @samp{+} if above the default level and @samp{-} if below the
default level. If the difference between
-@code{gnus-summary-default-level} and the score is less than
+@code{gnus-summary-default-score} and the score is less than
@code{gnus-summary-zcore-fuzz}, this spec will not be used.
@item V
Total thread score.
@subsection Summary Buffer Mode Line
@vindex gnus-summary-mode-line-format
-You can also change the format of the summary mode bar. Set
-@code{gnus-summary-mode-line-format} to whatever you like. The default
-is @samp{Gnus: %%b [%A] %Z}.
+You can also change the format of the summary mode bar (@pxref{Mode Line
+Formatting}). Set @code{gnus-summary-mode-line-format} to whatever you
+like. The default is @samp{Gnus: %%b [%A] %Z}.
Here are the elements you can play with:
Unprefixed group name.
@item A
Current article number.
+@item z
+Current article score.
@item V
Gnus version.
@item U
If non-@code{nil}, all the movement commands will try to go to the next
article with the same subject as the current. (@dfn{Same} here might
mean @dfn{roughly equal}. See @code{gnus-summary-gather-subject-limit}
-for details (@pxref{Customizing Threading}).) This variable is not
-particularly useful if you use a threaded display.
+for details (@pxref{Customizing Threading}).) If there are no more
+articles with the same subject, go to the first unread article.
+
+This variable is not particularly useful if you use a threaded display.
@item gnus-summary-check-current
@vindex gnus-summary-check-current
@node Article Highlighting
@subsection Article Highlighting
-@cindex highlight
+@cindex highlighting
Not only do you want your article buffer to look like fruit salad, but
-you want it to look like technicolor fruit salad.
+you want it to look like technicolor fruit salad.
@table @kbd
@item W H a
@kindex W H a (Summary)
@findex gnus-article-highlight
-Highlight the current article (@code{gnus-article-highlight}).
+@findex gnus-article-maybe-highlight
+Do much highlighting of the current article
+(@code{gnus-article-highlight}). This function highlights header, cited
+text, the signature, and adds buttons to the body and the head.
+
+Most users would prefer using @code{gnus-article-maybe-highlight} in
+@code{gnus-article-display-hook} (@pxref{Customizing Articles}) instead.
+This is a bit less agressive---it highlights only the headers, the
+signature and adds buttons.
@item W H h
@kindex W H h (Summary)
@end table
+@xref{Customizing Articles} for how to highlight articles automatically.
+
@node Article Fontisizing
@subsection Article Fontisizing
running the article through the @kbd{W e}
(@code{gnus-article-emphasize}) command.
-@vindex gnus-article-emphasis
+@vindex gnus-emphasis-alist
How the emphasis is computed is controlled by the
-@code{gnus-article-emphasis} variable. This is an alist where the first
+@code{gnus-emphasis-alist} variable. This is an alist where the first
element is a regular expression to be matched. The second is a number
that says what regular expression grouping is used to find the entire
emphasized word. The third is a number that says what regexp grouping
(copy-face 'red 'gnus-emphasis-italic)
@end lisp
+@xref{Customizing Articles} for how to fontize articles automatically.
+
@node Article Hiding
@subsection Article Hiding
@item W W a
@kindex W W a (Summary)
@findex gnus-article-hide
-Do maximum hiding on the summary buffer (@kbd{gnus-article-hide}).
+Do quite a lot of hiding on the article buffer
+(@kbd{gnus-article-hide}). In particular, this function will hide
+headers, PGP, cited text and the signature.
@item W W h
@kindex W W h (Summary)
@table @code
-@item gnus-cite-hide-percentage
-@vindex gnus-cite-hide-percentage
-If the cited text is of a bigger percentage than this variable (default
-50), hide the cited text.
-
-@item gnus-cite-hide-absolute
-@vindex gnus-cite-hide-absolute
-The cited text must have at least this length (default 10) before it
-is hidden.
-
-@item gnus-cited-text-button-line-format
-@vindex gnus-cited-text-button-line-format
+@item gnus-cited-opened-text-button-line-format
+@itemx gnus-cited-closed-text-button-line-format
+@vindex gnus-cited-closed-text-button-line-format
+@vindex gnus-cited-opened-text-button-line-format
Gnus adds buttons to show where the cited text has been hidden, and to
allow toggle hiding the text. The format of the variable is specified
-by this format-like variable (@pxref{Formatting Variables}). These
+by these format-like variable (@pxref{Formatting Variables}). These
specs are valid:
@table @samp
@end table
+@item W W C-c
+@kindex W W C-c (Summary)
+@findex gnus-article-hide-citation-maybe
+
+Hide citation (@code{gnus-article-hide-citation-maybe}) depending on the
+following two variables:
+
+@table @code
+@item gnus-cite-hide-percentage
+@vindex gnus-cite-hide-percentage
+If the cited text is of a bigger percentage than this variable (default
+50), hide the cited text.
+
+@item gnus-cite-hide-absolute
+@vindex gnus-cite-hide-absolute
+The cited text must have at least this length (default 10) before it
+is hidden.
+@end table
+
@item W W C
@kindex W W C (Summary)
@findex gnus-article-hide-citation-in-followups
Also @pxref{Article Highlighting} for further variables for
citation customization.
+@xref{Customizing Articles} for how to hide article elements
+automatically.
+
@node Article Washing
@subsection Article Washing
@kindex W l (Summary)
@findex gnus-summary-stop-page-breaking
Remove page breaks from the current article
-(@code{gnus-summary-stop-page-breaking}).
+(@code{gnus-summary-stop-page-breaking}). @xref{Misc Article} for page
+delimiters.
@item W r
@kindex W r (Summary)
@end table
+@xref{Customizing Articles} for how to wash articles automatically.
+
@node Article Buttons
@subsection Article Buttons
@end table
+@xref{Customizing Articles} for how to buttonize articles automatically.
+
@node Article Date
@subsection Article Date
@end table
+@xref{Customizing Articles} for how to display the date in your
+preferred format automatically.
+
@node Article Signature
@subsection Article Signature
@table @kbd
@item .
@kindex . (Pick)
-@findex gnus-summary-mark-as-processable
-Pick the article on the current line
-(@code{gnus-summary-mark-as-processable}). If given a numerical prefix,
-go to that article and pick it. (The line number is normally displayed
+@findex gnus-pick-article-or-thread
+Pick the article or thread on the current line
+(@code{gnus-pick-article-or-thread}). If the variable
+@code{gnus-thread-hide-subtree} is true, then this key selects the
+entire thread when used at the first article of the thread. Otherwise,
+it selects just the article. If given a numerical prefix, go to that
+thread or article and pick it. (The line number is normally displayed
at the beginning of the summary pick lines.)
@item SPACE
@item u
@kindex u (Pick)
-@findex gnus-summary-unmark-as-processable
-Unpick the article (@code{gnus-summary-unmark-as-processable}).
-
-@item U
-@kindex U (Pick)
-@findex gnus-summary-unmark-all-processable
-Unpick all articles (@code{gnus-summary-unmark-all-processable}).
-
-@item t
-@kindex t (Pick)
-@findex gnus-uu-mark-thread
-Pick the thread (@code{gnus-uu-mark-thread}).
-
-@item T
-@kindex T (Pick)
-@findex gnus-uu-unmark-thread
-Unpick the thread (@code{gnus-uu-unmark-thread}).
-
-@item r
-@kindex r (Pick)
-@findex gnus-uu-mark-region
-Pick the region (@code{gnus-uu-mark-region}).
-
-@item R
-@kindex R (Pick)
-@findex gnus-uu-unmark-region
-Unpick the region (@code{gnus-uu-unmark-region}).
-
-@item e
-@kindex e (Pick)
-@findex gnus-uu-mark-by-regexp
-Pick articles that match a regexp (@code{gnus-uu-mark-by-regexp}).
-
-@item E
-@kindex E (Pick)
-@findex gnus-uu-unmark-by-regexp
-Unpick articles that match a regexp (@code{gnus-uu-unmark-by-regexp}).
-
-@item b
-@kindex b (Pick)
-@findex gnus-uu-mark-buffer
-Pick the buffer (@code{gnus-uu-mark-buffer}).
-
-@item B
-@kindex B (Pick)
-@findex gnus-uu-unmark-buffer
-Unpick the buffer (@code{gnus-uu-unmark-buffer}).
+@findex gnus-pick-unmark-article-or-thread.
+Unpick the thread or article
+(@code{gnus-pick-unmark-article-or-thread}). If the variable
+@code{gnus-thread-hide-subtree} is true, then this key unpicks the
+thread if used at the first article of the thread. Otherwise it unpicks
+just the article. You can give this key a numerical prefix to unpick
+the thread or article at that line.
@item RET
@kindex RET (Pick)
@end table
+All the normal summary mode commands are still available in the
+pick-mode, with the exception of @kbd{u}. However @kbd{!} is available
+which is mapped to the same function
+@code{gnus-summary-tick-article-forward}.
+
If this sounds like a good idea to you, you could say:
@lisp
@item gnus-tree-mode-line-format
@vindex gnus-tree-mode-line-format
-A format string for the mode bar in the tree mode buffers. The default
-is @samp{Gnus: %%b %S %Z}. For a list of valid specs, @pxref{Summary
-Buffer Mode Line}.
+A format string for the mode bar in the tree mode buffers (@pxref{Mode
+Line Formatting}). The default is @samp{Gnus: %%b %S %Z}. For a list
+of valid specs, @pxref{Summary Buffer Mode Line}.
@item gnus-selected-tree-face
@vindex gnus-selected-tree-face
the article will end up in before you do the re-spooling. This command
will tell you (@code{gnus-summary-respool-query}).
+@item B t
+@kindex B t (Summary)
+@findex gnus-summary-respool-trace
+Similarly, this command will display all fancy splitting patterns used
+when repooling, if any (@code{gnus-summary-respool-trace}).
+
@item B p
@kindex B p (Summary)
@findex gnus-summary-article-posted-p
@table @code
@item empty
Remove all empty headers.
-@item newsgroups
-Remove the @code{Newsgroups} header if it only contains the current group
-name.
@item followup-to
Remove the @code{Followup-To} header if it is identical to the
@code{Newsgroups} header.
@item reply-to
Remove the @code{Reply-To} header if it lists the same address as the
@code{From} header.
+@item newsgroups
+Remove the @code{Newsgroups} header if it only contains the current group
+name.
@item date
Remove the @code{Date} header if the article is less than three days
old.
Remove all @code{To} headers if there are more than one.
@end table
-To include the four first elements, you could say something like;
+To include the four three elements, you could say something like;
@lisp
(setq gnus-boring-article-headers
- '(empty newsgroups followup-to reply-to))
+ '(empty followup-to reply-to))
@end lisp
This is also the default value for this variable.
treatment of the article before it is displayed.
@findex gnus-article-maybe-highlight
-By default this hook just contains @code{gnus-article-hide-headers},
-@code{gnus-article-treat-overstrike}, and
-@code{gnus-article-maybe-highlight}, but there are thousands, nay
+@findex gnus-article-maybe-hide-headers
+By default this hook just contains
+@code{gnus-article-maybe-hide-headers},
+@code{gnus-hide-boring-headers}, @code{gnus-article-treat-overstrike},
+and @code{gnus-article-maybe-highlight} (and under XEmacs,
+@code{gnus-article-display-x-face}), but there are thousands, nay
millions, of functions you can put in this hook. For an overview of
functions @pxref{Article Highlighting}, @pxref{Article Hiding},
@pxref{Article Washing}, @pxref{Article Buttons} and @pxref{Article
@kindex C-c ^ (Article)
@findex gnus-article-refer-article
If point is in the neighborhood of a @code{Message-ID} and you press
-@kbd{r}, Gnus will try to get that article from the server
+@kbd{C-c ^}, Gnus will try to get that article from the server
(@code{gnus-article-refer-article}).
@item C-c C-m
@vindex gnus-article-mode-line-format
@item gnus-article-mode-line-format
This variable is a format string along the same lines as
-@code{gnus-summary-mode-line-format}. It accepts the same
-format specifications as that variable, with one extension:
+@code{gnus-summary-mode-line-format} (@pxref{Mode Line Formatting}). It
+accepts the same format specifications as that variable, with one
+extension:
@table @samp
@item w
* Posting Server:: What server should you post via?
* Mail and Post:: Mailing and posting at the same time.
* Archived Messages:: Where Gnus stores the messages you've sent.
+* Posting Styles:: An easier way to specify who you are.
* Drafts:: Postponing messages and rejected messages.
* Rejected Articles:: What happens if the server doesn't like your article?
@end menu
@end table
-@c @node Posting Styles
-@c @section Posting Styles
-@c @cindex posting styles
-@c @cindex styles
-@c
-@c All them variables, they make my head swim.
-@c
-@c So what if you want a different @code{Organization} and signature based
-@c on what groups you post to? And you post both from your home machine
-@c and your work machine, and you want different @code{From} lines, and so
-@c on?
-@c
-@c @vindex gnus-posting-styles
-@c One way to do stuff like that is to write clever hooks that change the
-@c variables you need to have changed. That's a bit boring, so somebody
-@c came up with the bright idea of letting the user specify these things in
-@c a handy alist. Here's an example of a @code{gnus-posting-styles}
-@c variable:
-@c
-@c @lisp
-@c ((".*"
-@c (signature . "Peace and happiness")
-@c (organization . "What me?"))
-@c ("^comp"
-@c (signature . "Death to everybody"))
-@c ("comp.emacs.i-love-it"
-@c (organization . "Emacs is it")))
-@c @end lisp
-@c
-@c As you might surmise from this example, this alist consists of several
-@c @dfn{styles}. Each style will be applicable if the first element
-@c ``matches'', in some form or other. The entire alist will be iterated
-@c over, from the beginning towards the end, and each match will be
-@c applied, which means that attributes in later styles that match override
-@c the same attributes in earlier matching styles. So
-@c @samp{comp.programming.literate} will have the @samp{Death to everybody}
-@c signature and the @samp{What me?} @code{Organization} header.
-@c
-@c The first element in each style is called the @code{match}. If it's a
-@c string, then Gnus will try to regexp match it against the group name.
-@c If it's a function symbol, that function will be called with no
-@c arguments. If it's a variable symbol, then the variable will be
-@c referenced. If it's a list, then that list will be @code{eval}ed. In
-@c any case, if this returns a non-@code{nil} value, then the style is said
-@c to @dfn{match}.
-@c
-@c Each style may contain a arbitrary amount of @dfn{attributes}. Each
-@c attribute consists of a @var{(name . value)} pair. The attribute name
-@c can be one of @code{signature}, @code{organization} or @code{from}. The
-@c attribute name can also be a string. In that case, this will be used as
-@c a header name, and the value will be inserted in the headers of the
-@c article.
-@c
-@c The attribute value can be a string (used verbatim), a function (the
-@c return value will be used), a variable (its value will be used) or a
-@c list (it will be @code{eval}ed and the return value will be used).
-@c
-@c So here's a new example:
-@c
-@c @lisp
-@c (setq gnus-posting-styles
-@c '((".*"
-@c (signature . "~/.signature")
-@c (from . "user@@foo (user)")
-@c ("X-Home-Page" . (getenv "WWW_HOME"))
-@c (organization . "People's Front Against MWM"))
-@c ("^rec.humor"
-@c (signature . my-funny-signature-randomizer))
-@c ((equal (system-name) "gnarly")
-@c (signature . my-quote-randomizer))
-@c (posting-from-work-p
-@c (signature . "~/.work-signature")
-@c (from . "user@@bar.foo (user)")
-@c (organization . "Important Work, Inc"))
-@c ("^nn.+:"
-@c (signature . "~/.mail-signature"))))
-@c @end lisp
+@node Posting Styles
+@section Posting Styles
+@cindex posting styles
+@cindex styles
+
+All them variables, they make my head swim.
+
+So what if you want a different @code{Organization} and signature based
+on what groups you post to? And you post both from your home machine
+and your work machine, and you want different @code{From} lines, and so
+on?
+
+@vindex gnus-posting-styles
+One way to do stuff like that is to write clever hooks that change the
+variables you need to have changed. That's a bit boring, so somebody
+came up with the bright idea of letting the user specify these things in
+a handy alist. Here's an example of a @code{gnus-posting-styles}
+variable:
+
+@lisp
+((".*"
+ (signature "Peace and happiness")
+ (organization "What me?"))
+ ("^comp"
+ (signature "Death to everybody"))
+ ("comp.emacs.i-love-it"
+ (organization "Emacs is it")))
+@end lisp
+
+As you might surmise from this example, this alist consists of several
+@dfn{styles}. Each style will be applicable if the first element
+``matches'', in some form or other. The entire alist will be iterated
+over, from the beginning towards the end, and each match will be
+applied, which means that attributes in later styles that match override
+the same attributes in earlier matching styles. So
+@samp{comp.programming.literate} will have the @samp{Death to everybody}
+signature and the @samp{What me?} @code{Organization} header.
+
+The first element in each style is called the @code{match}. If it's a
+string, then Gnus will try to regexp match it against the group name.
+If it's a function symbol, that function will be called with no
+arguments. If it's a variable symbol, then the variable will be
+referenced. If it's a list, then that list will be @code{eval}ed. In
+any case, if this returns a non-@code{nil} value, then the style is said
+to @dfn{match}.
+
+Each style may contain a arbitrary amount of @dfn{attributes}. Each
+attribute consists of a @var{(name . value)} pair. The attribute name
+can be one of @code{signature}, @code{signature-file},
+@code{organization}, @code{address} or @code{name}. The attribute name
+can also be a string. In that case, this will be used as a header name,
+and the value will be inserted in the headers of the article.
+
+The attribute value can be a string (used verbatim), a function (the
+return value will be used), a variable (its value will be used) or a
+list (it will be @code{eval}ed and the return value will be used).
+
+So here's a new example:
+
+@lisp
+(setq gnus-posting-styles
+ '((".*"
+ (signature-file "~/.signature")
+ (name "User Name")
+ ("X-Home-Page" (getenv "WWW_HOME"))
+ (organization "People's Front Against MWM"))
+ ("^rec.humor"
+ (signature my-funny-signature-randomizer))
+ ((equal (system-name) "gnarly")
+ (signature my-quote-randomizer))
+ (posting-from-work-p
+ (signature-file "~/.work-signature")
+ (address "user@@bar.foo")
+ (organization "Important Work, Inc"))
+ ("^nn.+:"
+ (signature-file "~/.mail-signature"))))
+@end lisp
+
@node Drafts
@section Drafts
@vindex gnus-server-mode-line-format
The mode line can also be customized by using the
-@code{gnus-server-mode-line-format} variable. The following specs are
-understood:
+@code{gnus-server-mode-line-format} variable (@pxref{Mode Line
+Formatting}). The following specs are understood:
@table @samp
@item S
@item
Each line may contain an arbitrary number of token/value pairs. The
-valid tokens include @samp{machine}, @samp{login}, @samp{password}, and
-@samp{force}. (The latter is not a valid @file{.netrc}/@code{ftp}
-token, which is the only way the @file{.authinfo} file format deviates
-from the @file{.netrc} file format.)
+valid tokens include @samp{machine}, @samp{login}, @samp{password},
+@samp{default} and @samp{force}. (The latter is not a valid
+@file{.netrc}/@code{ftp} token, which is the only way the
+@file{.authinfo} file format deviates from the @file{.netrc} file
+format.)
@end enumerate
@samp{force} tag) is to not send authinfo to the @var{nntp} server
until the @var{nntp} server asks for it.
+You can also add @samp{default} lines that will apply to all servers
+that don't have matching @samp{machine} lines.
+
+@example
+default force yes
+@end example
+
+This will force sending @samp{AUTHINFO} commands to all servers not
+previously mentioned.
+
Remember to not leave the @file{~/.authinfo} file world-readable.
@item nntp-server-action-alist
("list.\\1" "From:.*\\(.*\\)-list@@majordomo.com")
@end lisp
-If the first element is the special symbol @code{junk}, then messages
-that match the regexp will disappear into the aether. Use with
-extreme caution.
-
The second element can also be a function. In that case, it will be
called narrowed to the headers with the first element of the rule as the
argument. It should return a non-@code{nil} value if it thinks that the
@enumerate
@item
-@samp{group}: If the split is a string, that will be taken as a group name.
+@samp{group}: If the split is a string, that will be taken as a group
+name. Normal regexp match expansion will be done. See below for
+examples.
@item
@var{(FIELD VALUE SPLIT)}: If the split is a list, the first element of
@item
@code{junk}: If the split is the symbol @code{junk}, then don't save
-this message.
+this message. Use with extreme caution.
@item
@var{(: function arg1 arg2 ...)}: If the split is a list, and the first
function with @var{args} given as arguments. The function should return
a SPLIT.
+@item
+@code{nil}: If the split is @code{nil}, it is ignored.
+
@end enumerate
In these splits, @var{FIELD} must match a complete field name.
substitutions in the group names), you can say things like:
@example
-(any "debian-\\(\\w*\\)@@lists.debian.org" "mail.debian.\\1")
+(any "debian-\\b\\(\\w+\\)@@lists.debian.org" "mail.debian.\\1")
@end example
+If the string contains the element @samp{\&}, then the previously
+matched string will be substituted. Similarly, the elements @samp{\\1}
+up to @samp{\\9} will be substituted with the text matched by the
+groupings 1 through 9.
+
+
@node Mail and Procmail
@subsection Mail and Procmail
@cindex procmail
@item forward
Forwarded articles.
+@item mime-parts
+MIME multipart messages, besides digests.
+
@item mime-digest
@cindex digest
@cindex MIME digest
@vindex nndoc-article-type
This should be one of @code{mbox}, @code{babyl}, @code{digest},
@code{news}, @code{rnews}, @code{mmdf}, @code{forward}, @code{rfc934},
-@code{rfc822-forward}, @code{mime-digest}, @code{standard-digest},
-@code{slack-digest}, @code{clari-briefs} or @code{guess}.
+@code{rfc822-forward}, @code{mime-parts}, @code{mime-digest},
+@code{standard-digest}, @code{slack-digest}, @code{clari-briefs} or
+@code{guess}.
@item nndoc-post-type
@vindex nndoc-post-type
@item nngateway-mail2news-header-transformation
Creates a @code{To} header that looks like
-@samp{mail2news}@@@code{nngateway-address}.
+@code{nngateway-address}.
+
+Here's an example:
+
+@lisp
+(setq gnus-post-method
+ '(nngateway "mail2news@@replay.com"
+ (nngateway-header-transformation
+ nngateway-mail2news-header-transformation)))
+@end lisp
@end table
@subsection Virtual Groups
@cindex nnvirtual
@cindex virtual groups
+@cindex merging groups
An @dfn{nnvirtual group} is really nothing more than a collection of
other groups.
and a server in Norway, you could use the following as the group regexp:
@example
-"^nntp\\+some\\.server\\.jp:soc\\.motss$\\|^nntp\\+some\\.server\\.no:soc\\.motss$"
+"^nntp\\+server\\.jp:soc\\.motss$\\|^nntp\\+server\\.no:soc\\.motss$"
@end example
(Remember, though, that if you're creating the group with @kbd{G m}, you
@item gnus-category-line-format
@vindex gnus-category-line-format
Format of the lines in the category buffer (@pxref{Formatting
-Variables}). Legal elements are:
+Variables}). Valid elements are:
@table @samp
@item c
@item gnus-category-mode-line-format
@vindex gnus-category-mode-line-format
-Format of the category mode line.
+Format of the category mode line (@pxref{Mode Line Formatting}).
@item gnus-agent-short-article
@vindex gnus-agent-short-article
Remove the downloading mark from the article
(@code{gnus-agent-unmark-article}).
-@item @@
+@item @@
@kindex @@ (Agent Summary)
@findex gnus-agent-toggle-mark
Toggle whether to download the article (@code{gnus-agent-toggle-mark}).
around with your score files behind Gnus' back and want to see the
effect you're having.
-@item V a
-@kindex V a (Summary)
-@findex gnus-summary-score-entry
-Add a new score entry, and allow specifying all elements
-(@code{gnus-summary-score-entry}).
-
@item V c
@kindex V c (Summary)
@findex gnus-score-change-score-file
@item Lines, Chars
These two headers use different match types: @code{<}, @code{>},
-@code{=}, @code{>=} and @code{<=}. When matching on @code{Lines}, be
-careful because some backends (like @code{nndir}) do not generate
-@code{Lines} header, so every article ends up being marked as having 0
-lines. This can lead to strange results if you happen to lower score of
-the articles with few lines.
+@code{=}, @code{>=} and @code{<=}.
+
+These predicates are true if
+
+@example
+(PREDICATE HEADER MATCH)
+@end example
+
+evaluates to non-@code{nil}. For instance, the advanced match
+@code{("lines" 4 <)} (@pxref{Advanced Scoring}) will result in the
+following form:
+
+@lisp
+(< header-value 4)
+@end lisp
+
+Or to put it another way: When using @code{<} on @code{Lines} with 4 as
+the match, we get the score added if the article has less than 4 lines.
+(It's easy to get confused and think it's the other way around. But
+it's not. I think.)
+
+When matching on @code{Lines}, be careful because some backends (like
+@code{nndir}) do not generate @code{Lines} header, so every article ends
+up being marked as having 0 lines. This can lead to strange results if
+you happen to lower score of the articles with few lines.
@item Date
For the Date header we have three kinda silly match types:
If you want to use @file{gnu.SCORE} for all @samp{gnu} groups and
@file{rec.SCORE} for all @samp{rec} groups (and so on), you can say:
+@findex gnus-hierarchial-home-score-file
@lisp
(setq gnus-home-score-file
'gnus-hierarchial-home-score-file)
@end lisp
This is a ready-made function provided for your convenience.
+Other functions include
+
+@table @code
+@item gnus-current-home-score-file
+@findex gnus-current-home-score-file
+Return the ``current'' regular score file. This will make scoring
+commands add entry to the ``innermost'' matching score file.
+
+@end table
If you want to have one score file for the @samp{emacs} groups and
another for the @samp{comp} groups, while letting all other groups use
The kill to score conversion package isn't included in Gnus by default.
You can fetch it from
-@file{http://www.ifi.uio.no/~larsi/ding-other/gnus-kill-to-score}.
+@file{http://www.stud.ifi.uio.no/~larsi/ding-other/gnus-kill-to-score}.
If your old kill files are very complex---if they contain more
non-@code{gnus-kill} forms than not, you'll have to convert them by
@vindex gnus-decay-scores
@findex gnus-decay-score
-@vindex gnus-score-decay-function
+@vindex gnus-decay-score-function
Gnus provides a mechanism for decaying scores to help with this problem.
When score files are loaded and @code{gnus-decay-scores} is
non-@code{nil}, Gnus will run the score files through the decaying
mechanism thereby lowering the scores of all non-permanent score rules.
-The decay itself if performed by the @code{gnus-score-decay-function}
+The decay itself if performed by the @code{gnus-decay-score-function}
function, which is @code{gnus-decay-score} by default. Here's the
definition of that function:
@lisp
(defun gnus-decay-score (score)
- "Decay SCORE according to `gnus-score-decay-constant' and `gnus-score-decay-scale'."
+ "Decay SCORE.
+This is done according to `gnus-score-decay-constant'
+and `gnus-score-decay-scale'."
(floor
(- score
(* (if (< score 0) 1 -1)
@section Formatting Variables
@cindex formatting variables
-Throughout this manual you've probably noticed lots of variables called things like @code{gnus-group-line-format} and
+Throughout this manual you've probably noticed lots of variables called
+things like @code{gnus-group-line-format} and
@code{gnus-summary-mode-line-format}. These control how Gnus is to
output lines in the various buffers. There's quite a lot of them.
Fortunately, they all use the same syntax, so there's not that much to
@menu
* Formatting Basics:: A formatting variable is basically a format string.
+* Mode Line Formatting:: Some rules about mode line formatting variables.
* Advanced Formatting:: Modifying output in various ways.
* User-Defined Specs:: Having Gnus call your own functions.
* Formatting Fonts:: Making the formatting look colorful and nice.
less than 4 characters wide.
+@node Mode Line Formatting
+@subsection Mode Line Formatting
+
+Mode line formatting variables (e.g.,
+@code{gnus-summary-mode-line-format}) follow the same rules as other,
+buffer line oriented formatting variables (@pxref{Formatting Basics})
+with the following two differences:
+
+@enumerate
+
+@item
+There must be no newline (@samp{\n}) at the end.
+
+@item
+The special @samp{%%b} spec can be used to display the buffer name.
+Well, it's no spec at all, really---@samp{%%} is just a way to quote
+@samp{%} to allow it to pass through the formatting machinery unmangled,
+so that Emacs receives @samp{%b}, which is something the Emacs mode line
+display interprets to mean ``show the buffer name''. For a full list of
+mode line specs Emacs understands, see the documentation of the
+@code{mode-line-format} variable.
+
+@end enumerate
+
+
@node Advanced Formatting
@subsection Advanced Formatting
highlighted (with @code{gnus-mouse-face}) when you put the mouse pointer
over it.
-Text inside the @samp{%[} and @samp{%]} specifiers will have their
+Text inside the @samp{%@{} and @samp{%@}} specifiers will have their
normal faces set using @code{gnus-face-0}, which is @code{bold} by
-default. If you say @samp{%1[}, you'll get @code{gnus-face-1} instead,
+default. If you say @samp{%1@{}, you'll get @code{gnus-face-1} instead,
and so on. Create as many faces as you wish. The same goes for the
@code{mouse-face} specs---you can say @samp{%3(hello%)} to have
@samp{hello} mouse-highlighted with @code{gnus-mouse-face-3}.
@vindex gnus-picons-piconsearch-url
If you have a permanent connection to the Internet you can use Steve
Kinzler's Picons Search engine by setting
-@code{gnus-picons-piconsearch-url} to the string
+@code{gnus-picons-piconsearch-url} to the string @*
@file{http://www.cs.indiana.edu/picons/search.html}.
@vindex gnus-picons-database
Otherwise you need a local copy of his database. For instructions on
-obtaining and installing the picons databases, point your Web browser at
+obtaining and installing the picons databases, point your Web browser at @*
@file{http://www.cs.indiana.edu/picons/ftp/index.html}. Gnus expects
picons to be installed into a location pointed to by
@code{gnus-picons-database}.
@lisp
(setq gnus-use-picons t)
-(add-hook 'gnus-article-display-hook 'gnus-article-display-picons t)
-(add-hook 'gnus-article-display-hook 'gnus-picons-article-display-x-face)
+(add-hook 'gnus-article-display-hook
+ 'gnus-article-display-picons t)
+(add-hook 'gnus-article-display-hook
+ 'gnus-picons-article-display-x-face)
@end lisp
and make sure @code{gnus-picons-database} points to the directory
Alternatively if you want to use the web piconsearch engine add this:
@lisp
-(setq gnus-picons-piconsearch-url "http://www.cs.indiana.edu:800/piconsearch")
+(setq gnus-picons-piconsearch-url
+ "http://www.cs.indiana.edu:800/piconsearch")
@end lisp
@item gnus-xmas-logo-color-style
@vindex gnus-xmas-logo-color-style
This is the key used to look up the color in the alist described above.
-Legal values include @code{flame}, @code{pine}, @code{moss},
+Valid values include @code{flame}, @code{pine}, @code{moss},
@code{irish}, @code{sky}, @code{tin}, @code{velvet}, @code{grape},
@code{labia}, @code{berry}, @code{neutral}, and @code{september}.
If you are also a lazy net citizen, you will probably prefer complaining
automatically with the @file{gnus-junk.el} package, available FOR FREE
-at @file{<URL:http://stud2.tuwien.ac.at/~e9426626/gnus-junk.html>}.
+at @* @file{<URL:http://stud2.tuwien.ac.at/~e9426626/gnus-junk.html>}.
Since most e-mail spam is sent automatically, this may reconcile the
cosmic balance somewhat.
If you want to investigate the person responsible for this outrage, you
can point your (feh!) web browser to
-@file{http://www.ifi.uio.no/~larsi/}. This is also the primary
+@file{http://www.stud.ifi.uio.no/~larsi/}. This is also the primary
distribution point for the new and spiffy versions of Gnus, and is known
as The Site That Destroys Newsrcs And Drives People Mad.
releases)) was released under the name ``Gnus 5.2'' (40 releases).
On July 28th 1996 work on Red Gnus was begun, and it was released on
-January 25th 1997 (after 84 releases) as ``Gnus 5.4''.
+January 25th 1997 (after 84 releases) as ``Gnus 5.4'' (67 releases).
+
+On September 13th 1997, Quassia Gnus was started and lasted 37
+releases. If was released as ``Gnus 5.6 on March 8th 1998.
If you happen upon a version of Gnus that has a prefixed name --
``(ding) Gnus'', ``September Gnus'', ``Red Gnus'', ``Quassia Gnus'' --
Jari Aalto,
Adrian Aichner,
+Vladimir Alexiev,
Russ Allbery,
Peter Arius,
Matt Armstrong,
Joao Cachopo,
Zlatko Calusic,
Massimo Campostrini,
+Castor,
+David Charlap,
Dan Christensen,
+Kevin Christian,
Michael R. Cook,
Glenn Coombs,
Frank D. Cringle,
Sam Falkner,
Nelson Jose dos Santos Ferreira,
Sigbjorn Finne,
+Decklin Foster,
Gary D. Foster,
Paul Franklin,
Guy Geens,
Dan Schmidt,
Ralph Schleicher,
Philippe Schnoebelen,
+Andreas Schwab,
Randal L. Schwartz,
Justin Sheehy,
Danny Siu,
Darren Stalder,
Richard Stallman,
Greg Stark,
+Sam Steingold,
Paul Stodghill,
Kurt Swanson,
Samuel Tardieu,
* ding Gnus:: New things in Gnus 5.0/5.1, the first new Gnus.
* September Gnus:: The Thing Formally Known As Gnus 5.3/5.3.
* Red Gnus:: Third time best---Gnus 5.4/5.5.
-* Quassia Gnus:: Two times two is four, or Gnus 5.6.13.
+* Quassia Gnus:: Two times two is four, or Gnus 5.6.
@end menu
These lists are, of course, just @emph{short} overviews of the
Emphasized text can be properly fontisized:
@lisp
-(add-hook 'gnus-article-display-hook 'gnus-article-emphasize)
+(add-hook 'gnus-article-display-hook
+ 'gnus-article-emphasize)
@end lisp
@end itemize
@node Quassia Gnus
@subsubsection Quassia Gnus
-New features in Gnus 5.6.13:
+New features in Gnus 5.6:
@itemize @bullet
articles aren't displayed.
@item
nndoc should always allocate unique Message-IDs.
-@item
- implement gnus-score-thread
@item
If there are mail groups the first time you use Gnus, Gnus'll
make the mail groups killed.
problem is that archives are spread all over the net, unlike FAQs.
What would be best I suppose is to find the one closest to your site.
-In any case, there is a list of general news group archives at
+In any case, there is a list of general news group archives at @*
ftp://ftp.neosoft.com/pub/users/claird/news.lists/newsgroup_archives.html
Rething the Agent active file thing. `M-g' doesn't update the active
file, for instance.
+@item
+With dummy roots, `^' and then selecing the first article
+in any other dummy thread will make Gnus highlight the
+dummy root instead of the first article.
+
+@item
+Propagate all group properties (marks, article numbers, etc) up to the
+topics for displaying.
+
+@item
+`n' in the group buffer with topics should go to the next group
+with unread articles, even if that group is hidden in a topic.
+
+@item
+gnus-posting-styles doesn't work in drafts.
+
+@item
+gnus-summary-limit-include-cached is slow when there are
+many articles in the cache, since it regenerates big parts of the
+summary buffer for each article.
+
+@item
+Implement gnus-batch-brew-soup.
+
@item
Solve the halting problem.
Set this hook to all the available hiding commands:
@lisp
(setq gnus-article-display-hook
- '(gnus-article-hide-headers gnus-article-hide-signature
+ '(gnus-article-hide-headers
+ gnus-article-hide-signature
gnus-article-hide-citation))
@end lisp
@findex gnus-get-info
Returns the group info list for @var{group}.
+@item gnus-group-unread
+@findex gnus-group-unread
+The number of unread articles in @var{group}, or @code{t} if that is
+unknown.
+
+@item gnus-active
+@findex gnus-active
+The active entry for @var{group}.
+
+@item gnus-set-active
+@findex gnus-set-active
+Set the active entry for @var{group}.
+
@item gnus-add-current-to-buffer-list
@findex gnus-add-current-to-buffer-list
Adds the current buffer to the list of buffers to be killed on Gnus