@synindex fn cp
@synindex vr cp
@synindex pg cp
-@dircategory Editors
+@dircategory Emacs
@direntry
* Gnus: (gnus). The newsreader Gnus.
@end direntry
\thispagestyle{empty}
-Copyright \copyright{} 1995,96,97,98,99,2000 Free Software Foundation, Inc.
+Copyright \copyright{} 1995,96,97,98,99,2000,2001 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
This file documents Gnus, the GNU Emacs newsreader.
-Copyright (C) 1995,96,97,98,99,2000 Free Software Foundation, Inc.
+Copyright (C) 1995,96,97,98,99,2000,2001 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1 or
@page
@vskip 0pt plus 1filll
-Copyright @copyright{} 1995,96,97,98,99,2000 Free Software Foundation, Inc.
+Copyright @copyright{} 1995,96,97,98,99,2000,2001 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1 or
spool or your mbox file. All at the same time, if you want to push your
luck.
-This manual corresponds to Gnus 5.8.7.
+This manual corresponds to Gnus 5.9.0.
@end ifinfo
Composing Messages
* Mail:: Mailing and replying.
-* Post:: Posting and following up.
* 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.
* Group Mail Splitting:: Use group customize to drive mail splitting.
* Incorporating Old Mail:: What about the old mail you have?
* Expiring Mail:: Getting rid of unwanted mail.
-* Washing Mail:: Removing gruft from the mail you get.
+* Washing Mail:: Removing cruft from the mail you get.
* Duplicates:: Dealing with duplicated mail.
* Not Reading Mail:: Using mail backends for reading other files.
* Choosing a Mail Backend:: Gnus can read a variety of mail formats.
* Compilation:: How to speed Gnus up.
* Mode Lines:: Displaying information in the mode lines.
* Highlighting and Menus:: Making buffers look all nice and cozy.
-* Buttons:: Get tendonitis in ten easy steps!
+* Buttons:: Get tendinitis in ten easy steps!
* Daemons:: Gnus can do things behind your back.
* NoCeM:: How to avoid spam and other fatty foods.
* Undo:: Some actions can be undone.
* Gnus Development:: How Gnus is developed.
* Contributors:: Oodles of people.
* New Features:: Pointers to some of the new stuff in Gnus.
-* Newest Features:: Features so new that they haven't been written yet.
New Features
* 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.
+* September Gnus:: The Thing Formally Known As Gnus 5.2/5.3.
* Red Gnus:: Third time best---Gnus 5.4/5.5.
* Quassia Gnus:: Two times two is four, or Gnus 5.6/5.7.
+* Pterodactyl Gnus:: Pentad also starts with P, AKA Gnus 5.8/5.9.
Customization
server.)
@findex gnus-group-browse-foreign-server
-@kindex B (Group)
+@kindex B @r{(Group)}
However, if you use one @sc{nntp} server regularly and are just
interested in a couple of groups from a different server, you would be
better served by using the @kbd{B} command in the group buffer. It will
me. Usage of the patent (@dfn{Master/Slave Relationships In Computer
Applications}) will be much more expensive, of course.)
-Anyways, you start one Gnus up the normal way with @kbd{M-x gnus} (or
+Anyway, you start one Gnus up the normal way with @kbd{M-x gnus} (or
however you do it). Each subsequent slave Gnusae should be started with
@kbd{M-x gnus-slave}. These slaves won't save normal @file{.newsrc}
files, but instead save @dfn{slave files} that contain information only
at all. In any case, @code{some} should be faster than @code{nil}, and
is certainly faster than @code{t} over slow lines.
-Some news servers (Leafnode and old versions of INN, for instance) do
-not support the @code{LIST ACTIVE group}. For these servers, @code{nil}
-is probably the most efficient value for this variable.
+Some news servers (old versions of Leafnode and old versions of INN, for
+instance) do not support the @code{LIST ACTIVE group}. For these
+servers, @code{nil} is probably the most efficient value for this
+variable.
If this variable is @code{nil}, Gnus will ask for group info in total
lock-step, which isn't very fast. If it is @code{some} and you use an
@samp{%} (@code{gnus-new-mail-mark}) if there has arrived new mail to
the group lately.
+@item p
+@samp{#} (@code{gnus-process-mark}) if the group is process marked.
+
@item d
A string that says when you last read the group (@pxref{Group
Timestamp}).
@table @kbd
@item n
-@kindex n (Group)
+@kindex n @r{(Group)}
@findex gnus-group-next-unread-group
Go to the next group that has unread articles
(@code{gnus-group-next-unread-group}).
@item p
-@itemx DEL
-@kindex DEL (Group)
-@kindex p (Group)
+@itemx @key{DEL}
+@kindex @key{DEL} @r{(Group)}
+@kindex p @r{(Group)}
@findex gnus-group-prev-unread-group
Go to the previous group that has unread articles
(@code{gnus-group-prev-unread-group}).
@item N
-@kindex N (Group)
+@kindex N @r{(Group)}
@findex gnus-group-next-group
Go to the next group (@code{gnus-group-next-group}).
@item P
-@kindex P (Group)
+@kindex P @r{(Group)}
@findex gnus-group-prev-group
Go to the previous group (@code{gnus-group-prev-group}).
@item M-n
-@kindex M-n (Group)
+@kindex M-n @r{(Group)}
@findex gnus-group-next-unread-group-same-level
Go to the next unread group on the same (or lower) level
(@code{gnus-group-next-unread-group-same-level}).
@item M-p
-@kindex M-p (Group)
+@kindex M-p @r{(Group)}
@findex gnus-group-prev-unread-group-same-level
Go to the previous unread group on the same (or lower) level
(@code{gnus-group-prev-unread-group-same-level}).
@table @kbd
@item j
-@kindex j (Group)
+@kindex j @r{(Group)}
@findex gnus-group-jump-to-group
Jump to a group (and make it visible if it isn't already)
(@code{gnus-group-jump-to-group}). Killed groups can be jumped to, just
like living groups.
@item ,
-@kindex , (Group)
+@kindex , @r{(Group)}
@findex gnus-group-best-unread-group
Jump to the unread group with the lowest level
(@code{gnus-group-best-unread-group}).
@item .
-@kindex . (Group)
+@kindex . @r{(Group)}
@findex gnus-group-first-unread-group
Jump to the first group with unread articles
(@code{gnus-group-first-unread-group}).
@table @kbd
-@item SPACE
-@kindex SPACE (Group)
+@item @key{SPC}
+@kindex @key{SPC} @r{(Group)}
@findex gnus-group-read-group
Select the current group, switch to the summary buffer and display the
first unread article (@code{gnus-group-read-group}). If there are no
positive, Gnus fetches the @var{N} newest articles, if @var{N} is
negative, Gnus fetches the @code{abs(@var{N})} oldest articles.
-@item RET
-@kindex RET (Group)
+Thus, @kbd{SPC} enters the group normally, @kbd{C-u SPC} offers old
+articles, @kbd{C-u 4 2 SPC} fetches the 42 newest articles, and @kbd{C-u
+- 4 2 SPC} fetches the 42 oldest ones.
+
+When you are in the group (in the Summary buffer), you can type
+@kbd{M-g} to fetch new articles, or @kbd{C-u M-g} to also show the old
+ones.
+
+@item @key{RET}
+@kindex @key{RET} @r{(Group)}
+
@findex gnus-group-select-group
Select the current group and switch to the summary buffer
(@code{gnus-group-select-group}). Takes the same arguments as
does not display the first unread article automatically upon group
entry.
-@item M-RET
-@kindex M-RET (Group)
+@item M-@key{RET}
+@kindex M-@key{RET} @r{(Group)}
@findex gnus-group-quick-select-group
This does the same as the command above, but tries to do it with the
minimum amount of fuzz (@code{gnus-group-quick-select-group}). No
scoring/killing will be performed, there will be no highlights and no
expunging. This might be useful if you're in a real hurry and have to
enter some humongous group. If you give a 0 prefix to this command
-(i.e., @kbd{0 M-RET}), Gnus won't even generate the summary buffer,
+(i.e., @kbd{0 M-@key{RET}}), Gnus won't even generate the summary buffer,
which is useful if you want to toggle threading before generating the
summary buffer (@pxref{Summary Generation Commands}).
-@item M-SPACE
-@kindex M-SPACE (Group)
+@item M-@key{SPC}
+@kindex M-@key{SPC} @r{(Group)}
@findex gnus-group-visible-select-group
-This is yet one more command that does the same as the @kbd{RET}
+This is yet one more command that does the same as the @key{RET}
command, but this one does it without expunging and hiding dormants
(@code{gnus-group-visible-select-group}).
-@item M-C-RET
-@kindex M-C-RET (Group)
+@item M-C-@key{RET}
+@kindex M-C-@key{RET} @r{(Group)}
@findex gnus-group-select-group-ephemerally
Finally, this command selects the current group ephemerally without
doing any processing of its contents
@vindex gnus-select-group-hook
@vindex gnus-auto-select-first
@code{gnus-auto-select-first} control whether any articles are selected
-automatically when entering a group with the @kbd{SPACE} command.
+automatically when entering a group with the @key{SPC} command.
@table @code
@item S t
@itemx u
-@kindex S t (Group)
-@kindex u (Group)
+@kindex S t @r{(Group)}
+@kindex u @r{(Group)}
@findex gnus-group-unsubscribe-current-group
@c @icon{gnus-group-unsubscribe}
Toggle subscription to the current group
@item S s
@itemx U
-@kindex S s (Group)
-@kindex U (Group)
+@kindex S s @r{(Group)}
+@kindex U @r{(Group)}
@findex gnus-group-unsubscribe-group
Prompt for a group to subscribe, and then subscribe it. If it was
subscribed already, unsubscribe it instead
@item S k
@itemx C-k
-@kindex S k (Group)
-@kindex C-k (Group)
+@kindex S k @r{(Group)}
+@kindex C-k @r{(Group)}
@findex gnus-group-kill-group
@c @icon{gnus-group-kill-group}
Kill the current group (@code{gnus-group-kill-group}).
@item S y
@itemx C-y
-@kindex S y (Group)
-@kindex C-y (Group)
+@kindex S y @r{(Group)}
+@kindex C-y @r{(Group)}
@findex gnus-group-yank-group
Yank the last killed group (@code{gnus-group-yank-group}).
@item C-x C-t
-@kindex C-x C-t (Group)
+@kindex C-x C-t @r{(Group)}
@findex gnus-group-transpose-groups
Transpose two groups (@code{gnus-group-transpose-groups}). This isn't
really a subscription command, but you can use it instead of a
@item S w
@itemx C-w
-@kindex S w (Group)
-@kindex C-w (Group)
+@kindex S w @r{(Group)}
+@kindex C-w @r{(Group)}
@findex gnus-group-kill-region
Kill all groups in the region (@code{gnus-group-kill-region}).
@item S z
-@kindex S z (Group)
+@kindex S z @r{(Group)}
@findex gnus-group-kill-all-zombies
Kill all zombie groups (@code{gnus-group-kill-all-zombies}).
@item S C-k
-@kindex S C-k (Group)
+@kindex S C-k @r{(Group)}
@findex gnus-group-kill-level
Kill all groups on a certain level (@code{gnus-group-kill-level}).
These groups can't be yanked back after killing, so this command should
@table @kbd
@item c
-@kindex c (Group)
+@kindex c @r{(Group)}
@findex gnus-group-catchup-current
@vindex gnus-group-catchup-group-hook
@c @icon{gnus-group-catchup-current}
the group buffer.
@item C
-@kindex C (Group)
+@kindex C @r{(Group)}
@findex gnus-group-catchup-current-all
Mark all articles in this group, even the ticked ones, as read
(@code{gnus-group-catchup-current-all}).
@item M-c
-@kindex M-c (Group)
+@kindex M-c @r{(Group)}
@findex gnus-group-clear-data
Clear the data from the current group---nix out marks and the list of
read articles (@code{gnus-group-clear-data}).
@table @kbd
@item S l
-@kindex S l (Group)
+@kindex S l @r{(Group)}
@findex gnus-group-set-current-level
Set the level of the current group. If a numeric prefix is given, the
next @var{n} groups will have their levels set. The user will be
@table @kbd
@item #
-@kindex # (Group)
+@kindex # @r{(Group)}
@itemx M m
-@kindex M m (Group)
+@kindex M m @r{(Group)}
@findex gnus-group-mark-group
Set the mark on the current group (@code{gnus-group-mark-group}).
@item M-#
-@kindex M-# (Group)
+@kindex M-# @r{(Group)}
@itemx M u
-@kindex M u (Group)
+@kindex M u @r{(Group)}
@findex gnus-group-unmark-group
Remove the mark from the current group
(@code{gnus-group-unmark-group}).
@item M U
-@kindex M U (Group)
+@kindex M U @r{(Group)}
@findex gnus-group-unmark-all-groups
Remove the mark from all groups (@code{gnus-group-unmark-all-groups}).
@item M w
-@kindex M w (Group)
+@kindex M w @r{(Group)}
@findex gnus-group-mark-region
Mark all groups between point and mark (@code{gnus-group-mark-region}).
@item M b
-@kindex M b (Group)
+@kindex M b @r{(Group)}
@findex gnus-group-mark-buffer
Mark all groups in the buffer (@code{gnus-group-mark-buffer}).
@item M r
-@kindex M r (Group)
+@kindex M r @r{(Group)}
@findex gnus-group-mark-regexp
Mark all groups that match some regular expression
(@code{gnus-group-mark-regexp}).
@table @kbd
@item G m
-@kindex G m (Group)
+@kindex G m @r{(Group)}
@findex gnus-group-make-group
@cindex making groups
Make a new group (@code{gnus-group-make-group}). Gnus will prompt you
to subscribe to @sc{nntp} groups, @pxref{Browse Foreign Server}.
@item G r
-@kindex G r (Group)
+@kindex G r @r{(Group)}
@findex gnus-group-rename-group
@cindex renaming groups
Rename the current group to something else
on some backends.
@item G c
-@kindex G c (Group)
+@kindex G c @r{(Group)}
@cindex customizing
@findex gnus-group-customize
Customize the group parameters (@code{gnus-group-customize}).
@item G e
-@kindex G e (Group)
+@kindex G e @r{(Group)}
@findex gnus-group-edit-group-method
@cindex renaming groups
Enter a buffer where you can edit the select method of the current
group (@code{gnus-group-edit-group-method}).
@item G p
-@kindex G p (Group)
+@kindex G p @r{(Group)}
@findex gnus-group-edit-group-parameters
Enter a buffer where you can edit the group parameters
(@code{gnus-group-edit-group-parameters}).
@item G E
-@kindex G E (Group)
+@kindex G E @r{(Group)}
@findex gnus-group-edit-group
Enter a buffer where you can edit the group info
(@code{gnus-group-edit-group}).
@item G d
-@kindex G d (Group)
+@kindex G d @r{(Group)}
@findex gnus-group-make-directory-group
@cindex nndir
Make a directory group (@pxref{Directory Groups}). You will be prompted
for a directory name (@code{gnus-group-make-directory-group}).
@item G h
-@kindex G h (Group)
+@kindex G h @r{(Group)}
@cindex help group
@findex gnus-group-make-help-group
Make the Gnus help group (@code{gnus-group-make-help-group}).
@item G a
-@kindex G a (Group)
+@kindex G a @r{(Group)}
@cindex (ding) archive
@cindex archive group
@findex gnus-group-make-archive-group
group will be created from @code{gnus-group-archive-directory}.
@item G k
-@kindex G k (Group)
+@kindex G k @r{(Group)}
@findex gnus-group-make-kiboze-group
@cindex nnkiboze
Make a kiboze group. You will be prompted for a name, for a regexp to
@xref{Kibozed Groups}.
@item G D
-@kindex G D (Group)
+@kindex G D @r{(Group)}
@findex gnus-group-enter-directory
@cindex nneething
Read an arbitrary directory as if it were a newsgroup with the
@xref{Anything Groups}.
@item G f
-@kindex G f (Group)
+@kindex G f @r{(Group)}
@findex gnus-group-make-doc-group
@cindex ClariNet Briefs
@cindex nndoc
type. @xref{Document Groups}.
@item G u
-@kindex G u (Group)
+@kindex G u @r{(Group)}
@vindex gnus-useful-groups
@findex gnus-group-make-useful-group
Create one of the groups mentioned in @code{gnus-useful-groups}
(@code{gnus-group-make-useful-group}).
@item G w
-@kindex G w (Group)
+@kindex G w @r{(Group)}
@findex gnus-group-make-web-group
@cindex DejaNews
@cindex Alta Vista
to a particular group by using a match string like
@samp{~g alt.sysadmin.recovery shaving}.
-@item G DEL
-@kindex G DEL (Group)
+@item G @key{DEL}
+@kindex G @key{DEL} @r{(Group)}
@findex gnus-group-delete-group
This function will delete the current group
(@code{gnus-group-delete-group}). If given a prefix, this function will
read-only groups (like @code{nntp} group), though.
@item G V
-@kindex G V (Group)
+@kindex G V @r{(Group)}
@findex gnus-group-make-empty-virtual
Make a new, fresh, empty @code{nnvirtual} group
(@code{gnus-group-make-empty-virtual}). @xref{Virtual Groups}.
@item G v
-@kindex G v (Group)
+@kindex G v @r{(Group)}
@findex gnus-group-add-to-virtual
Add the current group to an @code{nnvirtual} group
(@code{gnus-group-add-to-virtual}). Uses the process/prefix convention.
group is therefore impossible---you have to send mail to the mailing
list address instead.
+Some parameters have corresponding customizable variables, each of which
+is an alist of regexps and values.
+
@item to-list
@cindex to-list
Address used when doing @kbd{a} in that group.
@code{to-list} group parameter, one will be added automatically upon
sending the message.
+See also @code{gnus-parameter-to-list-alist}.
+
@item visible
@cindex visible
If the group parameter list has the element @code{(visible . t)},
caution. Unread, ticked and dormant articles are not eligible for
expiry.
+See also @code{gnus-total-expirable-newsgroups}.
+
@item expiry-wait
@cindex expiry-wait
@vindex nnmail-expiry-wait-function
@code{iso-8859-1} the default charset; that is, the charset that will be
used for all articles that do not specify a charset.
-@item (@var{variable} @var{form})
-You can use the group parameters to set variables local to the group you
-are entering. If you want to turn threading off in @samp{news.answers},
-you could put @code{(gnus-show-threads nil)} in the group parameters of
-that group. @code{gnus-show-threads} will be made into a local variable
-in the summary buffer you enter, and the form @code{nil} will be
-@code{eval}ed there.
+See also @code{gnus-group-charset-alist}.
-This can also be used as a group-specific hook function, if you'd like.
-If you want to hear a beep when you enter a group, you could put
-something like @code{(dummy-variable (ding))} in the parameters of that
-group. @code{dummy-variable} will be set to the result of the
-@code{(ding)} form, but who cares?
+@item ignored-charsets
+Elements that look like @code{(ignored-charsets x-known iso-8859-1)}
+will make @code{iso-8859-1} and @code{x-unknown} ignored; that is, the
+default charset will be used for decoding articles.
+See also @code{gnus-group-ignored-charsets-alist}.
+
@item posting-style
You can store additional posting style information for this group only
here (@pxref{Posting Styles}). The format is that of an entry in the
(signature "Funky Signature"))
@end example
+@item banner
+An item like @code{(banner . "regex")} causes any part of an article
+that matches the regular expression "regex" to be stripped. Instead of
+"regex", you can also use the symbol @code{signature} which strips the
+last signature or any of the elements of the alist
+@code{gnus-article-banner-alist}.
+
+@item (@var{variable} @var{form})
+You can use the group parameters to set variables local to the group you
+are entering. If you want to turn threading off in @samp{news.answers},
+you could put @code{(gnus-show-threads nil)} in the group parameters of
+that group. @code{gnus-show-threads} will be made into a local variable
+in the summary buffer you enter, and the form @code{nil} will be
+@code{eval}ed there.
+
+This can also be used as a group-specific hook function, if you like.
+If you want to hear a beep when you enter a group, you could put
+something like @code{(dummy-variable (ding))} in the parameters of that
+group. @code{dummy-variable} will be set to the result of the
+@code{(ding)} form, but who cares?
+
@end table
-Use the @kbd{G p} command to edit group parameters of a group. You
-might also be interested in reading about topic parameters (@pxref{Topic
-Parameters}).
+Use the @kbd{G p} or the @kbd{G c} command to edit group parameters of a
+group. (@kbd{G p} presents you with a Lisp-based interface, @kbd{G c}
+presents you with a Customize-like interface. The latter helps avoid
+silly Lisp errors.) You might also be interested in reading about topic
+parameters (@pxref{Topic Parameters}).
@node Listing Groups
@item l
@itemx A s
-@kindex A s (Group)
-@kindex l (Group)
+@kindex A s @r{(Group)}
+@kindex l @r{(Group)}
@findex gnus-group-list-groups
List all groups that have unread articles
(@code{gnus-group-list-groups}). If the numeric prefix is used, this
@item L
@itemx A u
-@kindex A u (Group)
-@kindex L (Group)
+@kindex A u @r{(Group)}
+@kindex L @r{(Group)}
@findex gnus-group-list-all-groups
List all groups, whether they have unread articles or not
(@code{gnus-group-list-all-groups}). If the numeric prefix is used,
unsubscribed groups).
@item A l
-@kindex A l (Group)
+@kindex A l @r{(Group)}
@findex gnus-group-list-level
List all unread groups on a specific level
(@code{gnus-group-list-level}). If given a prefix, also list the groups
with no unread articles.
@item A k
-@kindex A k (Group)
+@kindex A k @r{(Group)}
@findex gnus-group-list-killed
List all killed groups (@code{gnus-group-list-killed}). If given a
prefix argument, really list all groups that are available, but aren't
from the server.
@item A z
-@kindex A z (Group)
+@kindex A z @r{(Group)}
@findex gnus-group-list-zombies
List all zombie groups (@code{gnus-group-list-zombies}).
@item A m
-@kindex A m (Group)
+@kindex A m @r{(Group)}
@findex gnus-group-list-matching
List all unread, subscribed groups with names that match a regexp
(@code{gnus-group-list-matching}).
@item A M
-@kindex A M (Group)
+@kindex A M @r{(Group)}
@findex gnus-group-list-all-matching
List groups that match a regexp (@code{gnus-group-list-all-matching}).
@item A A
-@kindex A A (Group)
+@kindex A A @r{(Group)}
@findex gnus-group-list-active
List absolutely all groups in the active file(s) of the
server(s) you are connected to (@code{gnus-group-list-active}). This
Take the output with some grains of salt.
@item A a
-@kindex A a (Group)
+@kindex A a @r{(Group)}
@findex gnus-group-apropos
List all groups that have names that match a regexp
(@code{gnus-group-apropos}).
@item A d
-@kindex A d (Group)
+@kindex A d @r{(Group)}
@findex gnus-group-description-apropos
List all groups that have names or descriptions that match a regexp
(@code{gnus-group-description-apropos}).
@item A c
-@kindex A c (Group)
+@kindex A c @r{(Group)}
@findex gnus-group-list-cached
List all groups with cached articles (@code{gnus-group-list-cached}).
@item A ?
-@kindex A ? (Group)
+@kindex A ? @r{(Group)}
@findex gnus-group-list-dormant
List all groups with dormant articles (@code{gnus-group-list-dormant}).
@section Sorting Groups
@cindex sorting groups
-@kindex C-c C-s (Group)
+@kindex C-c C-s @r{(Group)}
@findex gnus-group-sort-groups
@vindex gnus-group-sort-function
The @kbd{C-c C-s} (@code{gnus-group-sort-groups}) command sorts the
@table @kbd
@item G S a
-@kindex G S a (Group)
+@kindex G S a @r{(Group)}
@findex gnus-group-sort-groups-by-alphabet
Sort the group buffer alphabetically by group name
(@code{gnus-group-sort-groups-by-alphabet}).
@item G S u
-@kindex G S u (Group)
+@kindex G S u @r{(Group)}
@findex gnus-group-sort-groups-by-unread
Sort the group buffer by the number of unread articles
(@code{gnus-group-sort-groups-by-unread}).
@item G S l
-@kindex G S l (Group)
+@kindex G S l @r{(Group)}
@findex gnus-group-sort-groups-by-level
Sort the group buffer by group level
(@code{gnus-group-sort-groups-by-level}).
@item G S v
-@kindex G S v (Group)
+@kindex G S v @r{(Group)}
@findex gnus-group-sort-groups-by-score
Sort the group buffer by group score
(@code{gnus-group-sort-groups-by-score}). @xref{Group Score}.
@item G S r
-@kindex G S r (Group)
+@kindex G S r @r{(Group)}
@findex gnus-group-sort-groups-by-rank
Sort the group buffer by group rank
(@code{gnus-group-sort-groups-by-rank}). @xref{Group Score}.
@item G S m
-@kindex G S m (Group)
+@kindex G S m @r{(Group)}
@findex gnus-group-sort-groups-by-method
Sort the group buffer alphabetically by backend name
(@code{gnus-group-sort-groups-by-method}).
@table @kbd
@item G P a
-@kindex G P a (Group)
+@kindex G P a @r{(Group)}
@findex gnus-group-sort-selected-groups-by-alphabet
Sort the groups alphabetically by group name
(@code{gnus-group-sort-selected-groups-by-alphabet}).
@item G P u
-@kindex G P u (Group)
+@kindex G P u @r{(Group)}
@findex gnus-group-sort-selected-groups-by-unread
Sort the groups by the number of unread articles
(@code{gnus-group-sort-selected-groups-by-unread}).
@item G P l
-@kindex G P l (Group)
+@kindex G P l @r{(Group)}
@findex gnus-group-sort-selected-groups-by-level
Sort the groups by group level
(@code{gnus-group-sort-selected-groups-by-level}).
@item G P v
-@kindex G P v (Group)
+@kindex G P v @r{(Group)}
@findex gnus-group-sort-selected-groups-by-score
Sort the groups by group score
(@code{gnus-group-sort-selected-groups-by-score}). @xref{Group Score}.
@item G P r
-@kindex G P r (Group)
+@kindex G P r @r{(Group)}
@findex gnus-group-sort-selected-groups-by-rank
Sort the groups by group rank
(@code{gnus-group-sort-selected-groups-by-rank}). @xref{Group Score}.
@item G P m
-@kindex G P m (Group)
+@kindex G P m @r{(Group)}
@findex gnus-group-sort-selected-groups-by-method
Sort the groups alphabetically by backend name
(@code{gnus-group-sort-selected-groups-by-method}).
@table @kbd
@item b
-@kindex b (Group)
+@kindex b @r{(Group)}
@findex gnus-group-check-bogus-groups
Find bogus groups and delete them
(@code{gnus-group-check-bogus-groups}).
@item F
-@kindex F (Group)
+@kindex F @r{(Group)}
@findex gnus-group-find-new-groups
Find new groups and process them (@code{gnus-group-find-new-groups}).
With 1 @kbd{C-u}, use the @code{ask-server} method to query the server
zombies.
@item C-c C-x
-@kindex C-c C-x (Group)
+@kindex C-c C-x @r{(Group)}
@findex gnus-group-expire-articles
Run all expirable articles in the current group through the expiry
process (if any) (@code{gnus-group-expire-articles}).
@item C-c M-C-x
-@kindex C-c M-C-x (Group)
+@kindex C-c M-C-x @r{(Group)}
@findex gnus-group-expire-all-groups
Run all articles in all groups through the expiry process
(@code{gnus-group-expire-all-groups}).
@table @kbd
@item B
-@kindex B (Group)
+@kindex B @r{(Group)}
@findex gnus-group-browse-foreign-server
You will be queried for a select method and a server name. Gnus will
then attempt to contact this server and let you browse the groups there
@findex gnus-group-prev-group
Go to the previous group (@code{gnus-group-prev-group}).
-@item SPACE
-@kindex SPACE (Browse)
+@item @key{SPC}
+@kindex @key{SPC} (Browse)
@findex gnus-browse-read-group
Enter the current group and display the first article
(@code{gnus-browse-read-group}).
-@item RET
-@kindex RET (Browse)
+@item @key{RET}
+@kindex @key{RET} (Browse)
@findex gnus-browse-select-group
Enter the current group (@code{gnus-browse-select-group}).
@table @kbd
@item z
-@kindex z (Group)
+@kindex z @r{(Group)}
@findex gnus-group-suspend
Suspend Gnus (@code{gnus-group-suspend}). This doesn't really exit Gnus,
but it kills all buffers except the Group buffer. I'm not sure why this
is a gain, but then who am I to judge?
@item q
-@kindex q (Group)
+@kindex q @r{(Group)}
@findex gnus-group-exit
@c @icon{gnus-group-exit}
Quit Gnus (@code{gnus-group-exit}).
@item Q
-@kindex Q (Group)
+@kindex Q @r{(Group)}
@findex gnus-group-quit
Quit Gnus without saving the @file{.newsrc} files (@code{gnus-group-quit}).
The dribble file will be saved, though (@pxref{Auto Save}).
@end example
@findex gnus-topic-mode
-@kindex t (Group)
+@kindex t @r{(Group)}
To get this @emph{fab} functionality you simply turn on (ooh!) the
@code{gnus-topic} minor mode---type @kbd{t} in the group buffer. (This
is a toggling command.)
``Un-indent'' the current topic so that it becomes a sub-topic of the
parent of its current parent (@code{gnus-topic-unindent}).
-@item RET
-@kindex RET (Topic)
+@item @key{RET}
+@kindex @key{RET} (Topic)
@findex gnus-topic-select-group
-@itemx SPACE
+@itemx @key{SPC}
Either select a group or fold a topic (@code{gnus-topic-select-group}).
When you perform this command on a group, you'll enter the group, as
usual. When done on a topic line, the topic will be folded (if it was
@findex gnus-topic-rename
Rename a topic (@code{gnus-topic-rename}).
-@item T DEL
-@kindex T DEL (Topic)
+@item T @key{DEL}
+@kindex T @key{DEL} (Topic)
@findex gnus-topic-delete
Delete an empty topic (@code{gnus-topic-delete}).
@table @kbd
@item ^
-@kindex ^ (Group)
+@kindex ^ @r{(Group)}
@findex gnus-group-enter-server-mode
Enter the server buffer (@code{gnus-group-enter-server-mode}).
@xref{The Server Buffer}.
@item a
-@kindex a (Group)
+@kindex a @r{(Group)}
@findex gnus-group-post-news
Post an article to a group (@code{gnus-group-post-news}). If given a
prefix, the current group name will be used as the default.
@item m
-@kindex m (Group)
+@kindex m @r{(Group)}
@findex gnus-group-mail
Mail a message somewhere (@code{gnus-group-mail}).
@table @kbd
@item g
-@kindex g (Group)
+@kindex g @r{(Group)}
@findex gnus-group-get-new-news
@c @icon{gnus-group-get-new-news}
Check the server(s) for new articles. If the numerical prefix is used,
backend(s).
@item M-g
-@kindex M-g (Group)
+@kindex M-g @r{(Group)}
@findex gnus-group-get-new-news-this-group
@vindex gnus-goto-next-group-when-activating
@c @icon{gnus-group-get-new-news-this-group}
@findex gnus-activate-all-groups
@cindex activating groups
@item C-c M-g
-@kindex C-c M-g (Group)
+@kindex C-c M-g @r{(Group)}
Activate absolutely all groups (@code{gnus-activate-all-groups}).
@item R
-@kindex R (Group)
+@kindex R @r{(Group)}
@cindex restarting
@findex gnus-group-restart
Restart Gnus (@code{gnus-group-restart}). This saves the @file{.newsrc}
@item H f
-@kindex H f (Group)
+@kindex H f @r{(Group)}
@findex gnus-group-fetch-faq
@vindex gnus-group-faq-directory
@cindex FAQ
@item H d
@itemx C-c C-d
@c @icon{gnus-group-describe-group}
-@kindex H d (Group)
-@kindex C-c C-d (Group)
+@kindex H d @r{(Group)}
+@kindex C-c C-d @r{(Group)}
@cindex describing groups
@cindex group description
@findex gnus-group-describe-group
a prefix, force Gnus to re-read the description from the server.
@item M-d
-@kindex M-d (Group)
+@kindex M-d @r{(Group)}
@findex gnus-group-describe-all-groups
Describe all groups (@code{gnus-group-describe-all-groups}). If given a
prefix, force Gnus to re-read the description file from the server.
@item H v
@itemx V
-@kindex V (Group)
-@kindex H v (Group)
+@kindex V @r{(Group)}
+@kindex H v @r{(Group)}
@cindex version
@findex gnus-version
Display current Gnus version numbers (@code{gnus-version}).
@item ?
-@kindex ? (Group)
+@kindex ? @r{(Group)}
@findex gnus-group-describe-briefly
Give a very short help message (@code{gnus-group-describe-briefly}).
@item C-c C-i
-@kindex C-c C-i (Group)
+@kindex C-c C-i @r{(Group)}
@cindex info
@cindex manual
@findex gnus-info-find-node
@table @kbd
@item r
-@kindex r (Group)
+@kindex r @r{(Group)}
@findex gnus-group-read-init-file
@vindex gnus-init-file
@cindex reading init file
@file{~/.gnus}) (@code{gnus-group-read-init-file}).
@item s
-@kindex s (Group)
+@kindex s @r{(Group)}
@findex gnus-group-save-newsrc
@cindex saving .newsrc
Save the @file{.newsrc.eld} file (and @file{.newsrc} if wanted)
file(s) whether Gnus thinks it is necessary or not.
@c @item Z
-@c @kindex Z (Group)
+@c @kindex Z @r{(Group)}
@c @findex gnus-group-clear-dribble
@c Clear the dribble buffer (@code{gnus-group-clear-dribble}).
* Tree Display:: A more visual display of threads.
* Mail Group Commands:: Some commands can only be used in mail groups.
* Various Summary Stuff:: What didn't fit anywhere else.
-* Exiting the Summary Buffer:: Returning to the Group buffer.
+* Exiting the Summary Buffer:: Returning to the Group buffer,
+ or reselecting the current group.
* Crosspost Handling:: How crossposted articles are dealt with.
* Duplicate Suppression:: An alternative when crosspost handling fails.
@end menu
@table @kbd
@item G M-n
@itemx M-n
-@kindex M-n (Summary)
-@kindex G M-n (Summary)
+@kindex M-n @r{(Summary)}
+@kindex G M-n @r{(Summary)}
@findex gnus-summary-next-unread-subject
Go to the next summary line of an unread article
(@code{gnus-summary-next-unread-subject}).
@item G M-p
@itemx M-p
-@kindex M-p (Summary)
-@kindex G M-p (Summary)
+@kindex M-p @r{(Summary)}
+@kindex G M-p @r{(Summary)}
@findex gnus-summary-prev-unread-subject
Go to the previous summary line of an unread article
(@code{gnus-summary-prev-unread-subject}).
-@item G j
-@itemx j
-@kindex j (Summary)
-@kindex G j (Summary)
-@findex gnus-summary-goto-article
-Ask for an article number or @code{Message-ID}, and then go to that
-article (@code{gnus-summary-goto-article}).
-
@item G g
-@kindex G g (Summary)
+@kindex G g @r{(Summary)}
@findex gnus-summary-goto-subject
Ask for an article number and then go to the summary line of that article
without displaying the article (@code{gnus-summary-goto-subject}).
None of the following movement commands understand the numeric prefix,
and they all select and display an article.
+If you want to fetch new articles or redisplay the group, see
+@ref{Exiting the Summary Buffer}.
+
@table @kbd
-@item SPACE
-@kindex SPACE (Summary)
+@item @key{SPC}
+@kindex @key{SPC} @r{(Summary)}
@findex gnus-summary-next-page
Select the current article, or, if that one's read already, the next
unread article (@code{gnus-summary-next-page}).
@item G n
@itemx n
-@kindex n (Summary)
-@kindex G n (Summary)
+@kindex n @r{(Summary)}
+@kindex G n @r{(Summary)}
@findex gnus-summary-next-unread-article
@c @icon{gnus-summary-next-unread}
Go to next unread article (@code{gnus-summary-next-unread-article}).
@item G p
@itemx p
-@kindex p (Summary)
+@kindex p @r{(Summary)}
@findex gnus-summary-prev-unread-article
@c @icon{gnus-summary-prev-unread}
Go to previous unread article (@code{gnus-summary-prev-unread-article}).
@item G N
@itemx N
-@kindex N (Summary)
-@kindex G N (Summary)
+@kindex N @r{(Summary)}
+@kindex G N @r{(Summary)}
@findex gnus-summary-next-article
Go to the next article (@code{gnus-summary-next-article}).
@item G P
@itemx P
-@kindex P (Summary)
-@kindex G P (Summary)
+@kindex P @r{(Summary)}
+@kindex G P @r{(Summary)}
@findex gnus-summary-prev-article
Go to the previous article (@code{gnus-summary-prev-article}).
@item G C-n
-@kindex G C-n (Summary)
+@kindex G C-n @r{(Summary)}
@findex gnus-summary-next-same-subject
Go to the next article with the same subject
(@code{gnus-summary-next-same-subject}).
@item G C-p
-@kindex G C-p (Summary)
+@kindex G C-p @r{(Summary)}
@findex gnus-summary-prev-same-subject
Go to the previous article with the same subject
(@code{gnus-summary-prev-same-subject}).
@item G f
@itemx .
-@kindex G f (Summary)
-@kindex . (Summary)
+@kindex G f @r{(Summary)}
+@kindex . @r{(Summary)}
@findex gnus-summary-first-unread-article
Go to the first unread article
(@code{gnus-summary-first-unread-article}).
@item G b
@itemx ,
-@kindex G b (Summary)
-@kindex , (Summary)
+@kindex G b @r{(Summary)}
+@kindex , @r{(Summary)}
@findex gnus-summary-best-unread-article
Go to the article with the highest score
(@code{gnus-summary-best-unread-article}).
@item G l
@itemx l
-@kindex l (Summary)
-@kindex G l (Summary)
+@kindex l @r{(Summary)}
+@kindex G l @r{(Summary)}
@findex gnus-summary-goto-last-article
Go to the previous article read (@code{gnus-summary-goto-last-article}).
@item G o
-@kindex G o (Summary)
+@kindex G o @r{(Summary)}
@findex gnus-summary-pop-article
@cindex history
@cindex article history
history as you like, while @kbd{l} toggles the two last read articles.
For a somewhat related issue (if you use these commands a lot),
@pxref{Article Backlog}.
+
+@item G j
+@itemx j
+@kindex j @r{(Summary)}
+@kindex G j @r{(Summary)}
+@findex gnus-summary-goto-article
+Ask for an article number or @code{Message-ID}, and then go to that
+article (@code{gnus-summary-goto-article}).
@end table
@table @kbd
-@item SPACE
-@kindex SPACE (Summary)
+@item @key{SPC}
+@kindex @key{SPC} @r{(Summary)}
@findex gnus-summary-next-page
-Pressing @kbd{SPACE} will scroll the current article forward one page,
+Pressing @key{SPC} will scroll the current article forward one page,
or, if you have come to the end of the current article, will choose the
next article (@code{gnus-summary-next-page}).
-@item DEL
-@kindex DEL (Summary)
+@item @key{DEL}
+@kindex @key{DEL} @r{(Summary)}
@findex gnus-summary-prev-page
Scroll the current article back one page (@code{gnus-summary-prev-page}).
-@item RET
-@kindex RET (Summary)
+@item @key{RET}
+@kindex @key{RET} @r{(Summary)}
@findex gnus-summary-scroll-up
Scroll the current article one line forward
(@code{gnus-summary-scroll-up}).
-@item M-RET
-@kindex M-RET (Summary)
+@item M-@key{RET}
+@kindex M-@key{RET} @r{(Summary)}
@findex gnus-summary-scroll-down
Scroll the current article one line backward
(@code{gnus-summary-scroll-down}).
@item A g
@itemx g
-@kindex A g (Summary)
-@kindex g (Summary)
+@kindex A g @r{(Summary)}
+@kindex g @r{(Summary)}
@findex gnus-summary-show-article
@vindex gnus-summary-show-article-charset-alist
(Re)fetch the current article (@code{gnus-summary-show-article}). If
the way it came from the server.
If given a numerical prefix, you can do semi-manual charset stuff.
-@kbd{C-u 0 g cn-gb-2312 RET} will decode the message as if it were
+@kbd{C-u 0 g cn-gb-2312 @key{RET}} will decode the message as if it were
encoded in the @code{cn-gb-2312} charset. If you have
@lisp
@item A <
@itemx <
-@kindex < (Summary)
-@kindex A < (Summary)
+@kindex < @r{(Summary)}
+@kindex A < @r{(Summary)}
@findex gnus-summary-beginning-of-article
Scroll to the beginning of the article
(@code{gnus-summary-beginning-of-article}).
@item A >
@itemx >
-@kindex > (Summary)
-@kindex A > (Summary)
+@kindex > @r{(Summary)}
+@kindex A > @r{(Summary)}
@findex gnus-summary-end-of-article
Scroll to the end of the article (@code{gnus-summary-end-of-article}).
@item A s
@itemx s
-@kindex A s (Summary)
-@kindex s (Summary)
+@kindex A s @r{(Summary)}
+@kindex s @r{(Summary)}
@findex gnus-summary-isearch-article
Perform an isearch in the article buffer
(@code{gnus-summary-isearch-article}).
@item h
-@kindex h (Summary)
+@kindex h @r{(Summary)}
@findex gnus-summary-select-article-buffer
Select the article buffer (@code{gnus-summary-select-article-buffer}).
@item S r
@itemx r
-@kindex S r (Summary)
-@kindex r (Summary)
+@kindex S r @r{(Summary)}
+@kindex r @r{(Summary)}
@findex gnus-summary-reply
@c @icon{gnus-summary-mail-reply}
@c @icon{gnus-summary-reply}
@item S R
@itemx R
-@kindex R (Summary)
-@kindex S R (Summary)
+@kindex R @r{(Summary)}
+@kindex S R @r{(Summary)}
@findex gnus-summary-reply-with-original
@c @icon{gnus-summary-reply-with-original}
Mail a reply to the author of the current article and include the
command uses the process/prefix convention.
@item S w
-@kindex S w (Summary)
+@kindex S w @r{(Summary)}
@findex gnus-summary-wide-reply
Mail a wide reply to the author of the current article
(@code{gnus-summary-wide-reply}). A @dfn{wide reply} is a reply that
@code{Reply-to}) and @code{Cc} headers.
@item S W
-@kindex S W (Summary)
+@kindex S W @r{(Summary)}
@findex gnus-summary-wide-reply-with-original
Mail a wide reply to the current article and include the original
message (@code{gnus-summary-wide-reply-with-original}). This command uses
@item S o m
@itemx C-c C-f
-@kindex S o m (Summary)
-@kindex C-c C-f (Summary)
+@kindex S o m @r{(Summary)}
+@kindex C-c C-f @r{(Summary)}
@findex gnus-summary-mail-forward
@c @icon{gnus-summary-mail-forward}
Forward the current article to some other person
(@code{gnus-summary-mail-forward}). If no prefix is given, the message
is forwarded according to the value of (@code{message-forward-as-mime})
and (@code{message-forward-show-mml}); if the prefix is 1, decode the
-message and forward directly inline; if the prefix is 2, foward message
+message and forward directly inline; if the prefix is 2, forward message
as an rfc822 MIME section; if the prefix is 3, decode message and
-forward as an rfc822 MIME section; if the prefix is 4, foward message
+forward as an rfc822 MIME section; if the prefix is 4, forward message
directly inline; otherwise, the message is forwarded as no prefix given
but use the flipped value of (@code{message-forward-as-mime}). By
default, the message is decoded and forwarded as an rfc822 MIME section.
@item S m
@itemx m
-@kindex m (Summary)
-@kindex S m (Summary)
+@kindex m @r{(Summary)}
+@kindex S m @r{(Summary)}
@findex gnus-summary-mail-other-window
@c @icon{gnus-summary-mail-originate}
Send a mail to some other person
(@code{gnus-summary-mail-other-window}).
@item S D b
-@kindex S D b (Summary)
+@kindex S D b @r{(Summary)}
@findex gnus-summary-resend-bounced-mail
@cindex bouncing mail
If you have sent a mail, but the mail was bounced back to you for some
very well fail, though.
@item S D r
-@kindex S D r (Summary)
+@kindex S D r @r{(Summary)}
@findex gnus-summary-resend-message
Not to be confused with the previous command,
@code{gnus-summary-resend-message} will prompt you for an address to
(@pxref{Process/Prefix}).
@item S O m
-@kindex S O m (Summary)
+@kindex S O m @r{(Summary)}
@findex gnus-uu-digest-mail-forward
Digest the current series (@pxref{Decoding Articles}) and forward the
result using mail (@code{gnus-uu-digest-mail-forward}). This command
uses the process/prefix convention (@pxref{Process/Prefix}).
@item S M-c
-@kindex S M-c (Summary)
+@kindex S M-c @r{(Summary)}
@findex gnus-summary-mail-crosspost-complaint
@cindex crossposting
@cindex excessive crossposting
@table @kbd
@item S p
@itemx a
-@kindex a (Summary)
-@kindex S p (Summary)
+@kindex a @r{(Summary)}
+@kindex S p @r{(Summary)}
@findex gnus-summary-post-news
@c @icon{gnus-summary-post-news}
Post an article to the current group
@item S f
@itemx f
-@kindex f (Summary)
-@kindex S f (Summary)
+@kindex f @r{(Summary)}
+@kindex S f @r{(Summary)}
@findex gnus-summary-followup
@c @icon{gnus-summary-followup}
Post a followup to the current article (@code{gnus-summary-followup}).
@item S F
@itemx F
-@kindex S F (Summary)
-@kindex F (Summary)
+@kindex S F @r{(Summary)}
+@kindex F @r{(Summary)}
@c @icon{gnus-summary-followup-with-original}
@findex gnus-summary-followup-with-original
Post a followup to the current article and include the original message
process/prefix convention.
@item S n
-@kindex S n (Summary)
+@kindex S n @r{(Summary)}
@findex gnus-summary-followup-to-mail
Post a followup to the current article via news, even if you got the
message through mail (@code{gnus-summary-followup-to-mail}).
@item S N
-@kindex S N (Summary)
+@kindex S N @r{(Summary)}
@findex gnus-summary-followup-to-mail-with-original
Post a followup to the current article via news, even if you got the
message through mail and include the original message
the process/prefix convention.
@item S o p
-@kindex S o p (Summary)
+@kindex S o p @r{(Summary)}
@findex gnus-summary-post-forward
Forward the current article to a newsgroup
(@code{gnus-summary-post-forward}).
If no prefix is given, the message is forwarded according to the value
of (@code{message-forward-as-mime}) and
(@code{message-forward-show-mml}); if the prefix is 1, decode the
-message and forward directly inline; if the prefix is 2, foward message
+message and forward directly inline; if the prefix is 2, forward message
as an rfc822 MIME section; if the prefix is 3, decode message and
-forward as an rfc822 MIME section; if the prefix is 4, foward message
+forward as an rfc822 MIME section; if the prefix is 4, forward message
directly inline; otherwise, the message is forwarded as no prefix given
but use the flipped value of (@code{message-forward-as-mime}). By
default, the message is decoded and forwarded as an rfc822 MIME section.
@item S O p
-@kindex S O p (Summary)
+@kindex S O p @r{(Summary)}
@findex gnus-uu-digest-post-forward
@cindex digests
@cindex making digests
process/prefix convention.
@item S u
-@kindex S u (Summary)
+@kindex S u @r{(Summary)}
@findex gnus-uu-post-news
@c @icon{gnus-uu-post-news}
Uuencode a file, split it into parts, and post it as a series
@table @kbd
@item S y
-@kindex S y (Summary)
+@kindex S y @r{(Summary)}
@findex gnus-summary-yank-message
Yank the current article into an already existing Message composition
buffer (@code{gnus-summary-yank-message}). This command prompts for
Well, you can't cancel mail, but you can cancel posts.
@findex gnus-summary-cancel-article
-@kindex C (Summary)
+@kindex C @r{(Summary)}
@c @icon{gnus-summary-cancel-article}
Find the article you wish to cancel (you can only cancel your own
articles, so don't try any funny stuff). Then press @kbd{C} or @kbd{S
your original article.
@findex gnus-summary-supersede-article
-@kindex S (Summary)
+@kindex S @r{(Summary)}
Go to the original article and press @kbd{S s}
(@code{gnus-summary-supersede-article}). You will be put in a buffer
where you can edit the article all you want before sending it off the
are followups to it. If you want to see them even if they don't have
followups, you can use the @kbd{/ D} command (@pxref{Limiting}).
-@item SPACE
+@item @key{SPC}
@vindex gnus-unread-mark
Marked as unread (@code{gnus-unread-mark}).
@table @kbd
@item M c
@itemx M-u
-@kindex M c (Summary)
-@kindex M-u (Summary)
+@kindex M c @r{(Summary)}
+@kindex M-u @r{(Summary)}
@findex gnus-summary-clear-mark-forward
@cindex mark as unread
Clear all readedness-marks from the current article
@item M t
@itemx !
-@kindex ! (Summary)
-@kindex M t (Summary)
+@kindex ! @r{(Summary)}
+@kindex M t @r{(Summary)}
@findex gnus-summary-tick-article-forward
Tick the current article (@code{gnus-summary-tick-article-forward}).
@xref{Article Caching}.
@item M ?
@itemx ?
-@kindex ? (Summary)
-@kindex M ? (Summary)
+@kindex ? @r{(Summary)}
+@kindex M ? @r{(Summary)}
@findex gnus-summary-mark-as-dormant
Mark the current article as dormant
(@code{gnus-summary-mark-as-dormant}). @xref{Article Caching}.
@item M d
@itemx d
-@kindex M d (Summary)
-@kindex d (Summary)
+@kindex M d @r{(Summary)}
+@kindex d @r{(Summary)}
@findex gnus-summary-mark-as-read-forward
Mark the current article as read
(@code{gnus-summary-mark-as-read-forward}).
@item D
-@kindex D (Summary)
+@kindex D @r{(Summary)}
@findex gnus-summary-mark-as-read-backward
Mark the current article as read and move point to the previous line
(@code{gnus-summary-mark-as-read-backward}).
@item M k
@itemx k
-@kindex k (Summary)
-@kindex M k (Summary)
+@kindex k @r{(Summary)}
+@kindex M k @r{(Summary)}
@findex gnus-summary-kill-same-subject-and-select
Mark all articles that have the same subject as the current one as read,
and then select the next unread article
@item M K
@itemx C-k
-@kindex M K (Summary)
-@kindex C-k (Summary)
+@kindex M K @r{(Summary)}
+@kindex C-k @r{(Summary)}
@findex gnus-summary-kill-same-subject
Mark all articles that have the same subject as the current one as read
(@code{gnus-summary-kill-same-subject}).
@item M C
-@kindex M C (Summary)
+@kindex M C @r{(Summary)}
@findex gnus-summary-catchup
@c @icon{gnus-summary-catchup}
Mark all unread articles as read (@code{gnus-summary-catchup}).
@item M C-c
-@kindex M C-c (Summary)
+@kindex M C-c @r{(Summary)}
@findex gnus-summary-catchup-all
Mark all articles in the group as read---even the ticked and dormant
articles (@code{gnus-summary-catchup-all}).
@item M H
-@kindex M H (Summary)
+@kindex M H @r{(Summary)}
@findex gnus-summary-catchup-to-here
Catchup the current group to point
(@code{gnus-summary-catchup-to-here}).
@item C-w
-@kindex C-w (Summary)
+@kindex C-w @r{(Summary)}
@findex gnus-summary-mark-region-as-read
Mark all articles between point and mark as read
(@code{gnus-summary-mark-region-as-read}).
@item M V k
-@kindex M V k (Summary)
+@kindex M V k @r{(Summary)}
@findex gnus-summary-kill-below
Kill all articles with scores below the default score (or below the
numeric prefix) (@code{gnus-summary-kill-below}).
@item M e
@itemx E
-@kindex M e (Summary)
-@kindex E (Summary)
+@kindex M e @r{(Summary)}
+@kindex E @r{(Summary)}
@findex gnus-summary-mark-as-expirable
Mark the current article as expirable
(@code{gnus-summary-mark-as-expirable}).
@item M b
-@kindex M b (Summary)
+@kindex M b @r{(Summary)}
@findex gnus-summary-set-bookmark
Set a bookmark in the current article
(@code{gnus-summary-set-bookmark}).
@item M B
-@kindex M B (Summary)
+@kindex M B @r{(Summary)}
@findex gnus-summary-remove-bookmark
Remove the bookmark from the current article
(@code{gnus-summary-remove-bookmark}).
@item M V c
-@kindex M V c (Summary)
+@kindex M V c @r{(Summary)}
@findex gnus-summary-clear-above
Clear all marks from articles with scores over the default score (or
over the numeric prefix) (@code{gnus-summary-clear-above}).
@item M V u
-@kindex M V u (Summary)
+@kindex M V u @r{(Summary)}
@findex gnus-summary-tick-above
Tick all articles with scores over the default score (or over the
numeric prefix) (@code{gnus-summary-tick-above}).
@item M V m
-@kindex M V m (Summary)
+@kindex M V m @r{(Summary)}
@findex gnus-summary-mark-above
Prompt for a mark, and mark all articles with scores over the default
score (or over the numeric prefix) with this mark
the next/previous unread article. If @code{nil}, point will just move
one line up or down. As a special case, if this variable is
@code{never}, all the marking commands as well as other commands (like
-@kbd{SPACE}) will move to the next article, whether it is unread or not.
+@key{SPC}) will move to the next article, whether it is unread or not.
The default is @code{t}.
previous (unread) article, I'm sure there are people that want that as
well.
-Multiply these five behaviours with five different marking commands, and
+Multiply these five behaviors by five different marking commands, and
you get a potentially complex set of variable to control what each
command should do.
@item M P p
@itemx #
-@kindex # (Summary)
-@kindex M P p (Summary)
+@kindex # @r{(Summary)}
+@kindex M P p @r{(Summary)}
@findex gnus-summary-mark-as-processable
Mark the current article with the process mark
(@code{gnus-summary-mark-as-processable}).
@item M P u
@itemx M-#
-@kindex M P u (Summary)
-@kindex M-# (Summary)
+@kindex M P u @r{(Summary)}
+@kindex M-# @r{(Summary)}
Remove the process mark, if any, from the current article
(@code{gnus-summary-unmark-as-processable}).
@item M P U
-@kindex M P U (Summary)
+@kindex M P U @r{(Summary)}
@findex gnus-summary-unmark-all-processable
Remove the process mark from all articles
(@code{gnus-summary-unmark-all-processable}).
@item M P i
-@kindex M P i (Summary)
+@kindex M P i @r{(Summary)}
@findex gnus-uu-invert-processable
Invert the list of process marked articles
(@code{gnus-uu-invert-processable}).
@item M P R
-@kindex M P R (Summary)
+@kindex M P R @r{(Summary)}
@findex gnus-uu-mark-by-regexp
Mark articles that have a @code{Subject} header that matches a regular
expression (@code{gnus-uu-mark-by-regexp}).
@item M P G
-@kindex M P G (Summary)
+@kindex M P G @r{(Summary)}
@findex gnus-uu-unmark-by-regexp
Unmark articles that have a @code{Subject} header that matches a regular
expression (@code{gnus-uu-unmark-by-regexp}).
@item M P r
-@kindex M P r (Summary)
+@kindex M P r @r{(Summary)}
@findex gnus-uu-mark-region
Mark articles in region (@code{gnus-uu-mark-region}).
@item M P t
-@kindex M P t (Summary)
+@kindex M P t @r{(Summary)}
@findex gnus-uu-mark-thread
Mark all articles in the current (sub)thread
(@code{gnus-uu-mark-thread}).
@item M P T
-@kindex M P T (Summary)
+@kindex M P T @r{(Summary)}
@findex gnus-uu-unmark-thread
Unmark all articles in the current (sub)thread
(@code{gnus-uu-unmark-thread}).
@item M P v
-@kindex M P v (Summary)
+@kindex M P v @r{(Summary)}
@findex gnus-uu-mark-over
Mark all articles that have a score above the prefix argument
(@code{gnus-uu-mark-over}).
@item M P s
-@kindex M P s (Summary)
+@kindex M P s @r{(Summary)}
@findex gnus-uu-mark-series
Mark all articles in the current series (@code{gnus-uu-mark-series}).
@item M P S
-@kindex M P S (Summary)
+@kindex M P S @r{(Summary)}
@findex gnus-uu-mark-sparse
Mark all series that have already had some articles marked
(@code{gnus-uu-mark-sparse}).
@item M P a
-@kindex M P a (Summary)
+@kindex M P a @r{(Summary)}
@findex gnus-uu-mark-all
Mark all articles in series order (@code{gnus-uu-mark-series}).
@item M P b
-@kindex M P b (Summary)
+@kindex M P b @r{(Summary)}
@findex gnus-uu-mark-buffer
Mark all articles in the buffer in the order they appear
(@code{gnus-uu-mark-buffer}).
@item M P k
-@kindex M P k (Summary)
+@kindex M P k @r{(Summary)}
@findex gnus-summary-kill-process-mark
Push the current process mark set onto the stack and unmark all articles
(@code{gnus-summary-kill-process-mark}).
@item M P y
-@kindex M P y (Summary)
+@kindex M P y @r{(Summary)}
@findex gnus-summary-yank-process-mark
Pop the previous process mark set from the stack and restore it
(@code{gnus-summary-yank-process-mark}).
@item M P w
-@kindex M P w (Summary)
+@kindex M P w @r{(Summary)}
@findex gnus-summary-save-process-mark
Push the current process mark set onto the stack
(@code{gnus-summary-save-process-mark}).
@item / /
@itemx / s
-@kindex / / (Summary)
+@kindex / / @r{(Summary)}
@findex gnus-summary-limit-to-subject
Limit the summary buffer to articles that match some subject
(@code{gnus-summary-limit-to-subject}).
@item / a
-@kindex / a (Summary)
+@kindex / a @r{(Summary)}
@findex gnus-summary-limit-to-author
Limit the summary buffer to articles that match some author
(@code{gnus-summary-limit-to-author}).
@item / x
-@kindex / x (Summary)
+@kindex / x @r{(Summary)}
@findex gnus-summary-limit-to-extra
Limit the summary buffer to articles that match one of the ``extra''
headers (@pxref{To From Newsgroups})
@item / u
@itemx x
-@kindex / u (Summary)
-@kindex x (Summary)
+@kindex / u @r{(Summary)}
+@kindex x @r{(Summary)}
@findex gnus-summary-limit-to-unread
Limit the summary buffer to articles not marked as read
(@code{gnus-summary-limit-to-unread}). If given a prefix, limit the
dormant articles will also be excluded.
@item / m
-@kindex / m (Summary)
+@kindex / m @r{(Summary)}
@findex gnus-summary-limit-to-marks
Ask for a mark and then limit to all articles that have been marked
with that mark (@code{gnus-summary-limit-to-marks}).
@item / t
-@kindex / t (Summary)
+@kindex / t @r{(Summary)}
@findex gnus-summary-limit-to-age
Ask for a number and then limit the summary buffer to articles older than (or equal to) that number of days
(@code{gnus-summary-limit-to-age}). If given a prefix, limit to
articles younger than that number of days.
@item / n
-@kindex / n (Summary)
+@kindex / n @r{(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}).
@item / w
-@kindex / w (Summary)
+@kindex / w @r{(Summary)}
@findex gnus-summary-pop-limit
Pop the previous limit off the stack and restore it
(@code{gnus-summary-pop-limit}). If given a prefix, pop all limits off
the stack.
@item / v
-@kindex / v (Summary)
+@kindex / v @r{(Summary)}
@findex gnus-summary-limit-to-score
Limit the summary buffer to articles that have a score at or above some
score (@code{gnus-summary-limit-to-score}).
@item / E
@itemx M S
-@kindex M S (Summary)
-@kindex / E (Summary)
+@kindex M S @r{(Summary)}
+@kindex / E @r{(Summary)}
@findex gnus-summary-limit-include-expunged
Include all expunged articles in the limit
(@code{gnus-summary-limit-include-expunged}).
@item / D
-@kindex / D (Summary)
+@kindex / D @r{(Summary)}
@findex gnus-summary-limit-include-dormant
Include all dormant articles in the limit
(@code{gnus-summary-limit-include-dormant}).
@item / *
-@kindex / * (Summary)
+@kindex / * @r{(Summary)}
@findex gnus-summary-limit-include-cached
Include all cached articles in the limit
(@code{gnus-summary-limit-include-cached}).
@item / d
-@kindex / d (Summary)
+@kindex / d @r{(Summary)}
@findex gnus-summary-limit-exclude-dormant
Exclude all dormant articles from the limit
(@code{gnus-summary-limit-exclude-dormant}).
@item / M
-@kindex / M (Summary)
+@kindex / M @r{(Summary)}
@findex gnus-summary-limit-exclude-marks
Exclude all marked articles (@code{gnus-summary-limit-exclude-marks}).
@item / T
-@kindex / T (Summary)
+@kindex / T @r{(Summary)}
@findex gnus-summary-limit-include-thread
Include all the articles in the current thread in the limit.
@item / c
-@kindex / c (Summary)
+@kindex / c @r{(Summary)}
@findex gnus-summary-limit-exclude-childless-dormant
Exclude all dormant articles that have no children from the limit
(@code{gnus-summary-limit-exclude-childless-dormant}).
@item / C
-@kindex / C (Summary)
+@kindex / C @r{(Summary)}
@findex gnus-summary-limit-mark-excluded-as-read
Mark all excluded unread articles as read
(@code{gnus-summary-limit-mark-excluded-as-read}). If given a prefix,
Threading is done by looking at the @code{References} headers of the
articles. In a perfect world, this would be enough to build pretty
trees, but unfortunately, the @code{References} header is often broken
-or simply missing. Weird news propagation excarcerbates the problem,
+or simply missing. Weird news propagation exacerbates the problem,
so one has to employ other heuristics to get pleasing results. A
plethora of approaches exists, as detailed in horrible detail in
@pxref{Customizing Threading}.
@item T k
@itemx M-C-k
-@kindex T k (Summary)
-@kindex M-C-k (Summary)
+@kindex T k @r{(Summary)}
+@kindex M-C-k @r{(Summary)}
@findex gnus-summary-kill-thread
Mark all articles in the current (sub-)thread as read
(@code{gnus-summary-kill-thread}). If the prefix argument is positive,
@item T l
@itemx M-C-l
-@kindex T l (Summary)
-@kindex M-C-l (Summary)
+@kindex T l @r{(Summary)}
+@kindex M-C-l @r{(Summary)}
@findex gnus-summary-lower-thread
Lower the score of the current (sub-)thread
(@code{gnus-summary-lower-thread}).
@item T i
-@kindex T i (Summary)
+@kindex T i @r{(Summary)}
@findex gnus-summary-raise-thread
Increase the score of the current (sub-)thread
(@code{gnus-summary-raise-thread}).
@item T #
-@kindex T # (Summary)
+@kindex T # @r{(Summary)}
@findex gnus-uu-mark-thread
Set the process mark on the current (sub-)thread
(@code{gnus-uu-mark-thread}).
@item T M-#
-@kindex T M-# (Summary)
+@kindex T M-# @r{(Summary)}
@findex gnus-uu-unmark-thread
Remove the process mark from the current (sub-)thread
(@code{gnus-uu-unmark-thread}).
@item T T
-@kindex T T (Summary)
+@kindex T T @r{(Summary)}
@findex gnus-summary-toggle-threads
Toggle threading (@code{gnus-summary-toggle-threads}).
@item T s
-@kindex T s (Summary)
+@kindex T s @r{(Summary)}
@findex gnus-summary-show-thread
Expose the (sub-)thread hidden under the current article, if any
(@code{gnus-summary-show-thread}).
@item T h
-@kindex T h (Summary)
+@kindex T h @r{(Summary)}
@findex gnus-summary-hide-thread
Hide the current (sub-)thread (@code{gnus-summary-hide-thread}).
@item T S
-@kindex T S (Summary)
+@kindex T S @r{(Summary)}
@findex gnus-summary-show-all-threads
Expose all hidden threads (@code{gnus-summary-show-all-threads}).
@item T H
-@kindex T H (Summary)
+@kindex T H @r{(Summary)}
@findex gnus-summary-hide-all-threads
Hide all threads (@code{gnus-summary-hide-all-threads}).
@item T t
-@kindex T t (Summary)
+@kindex T t @r{(Summary)}
@findex gnus-summary-rethread-current
Re-thread the current article's thread
(@code{gnus-summary-rethread-current}). This works even when the
summary buffer is otherwise unthreaded.
@item T ^
-@kindex T ^ (Summary)
+@kindex T ^ @r{(Summary)}
@findex gnus-summary-reparent-thread
Make the current article the child of the marked (or previous) article
(@code{gnus-summary-reparent-thread}).
@table @kbd
@item T n
-@kindex T n (Summary)
+@kindex T n @r{(Summary)}
@itemx M-C-n
-@kindex M-C-n (Summary)
+@kindex M-C-n @r{(Summary)}
@itemx M-down
-@kindex M-down (Summary)
+@kindex M-down @r{(Summary)}
@findex gnus-summary-next-thread
Go to the next thread (@code{gnus-summary-next-thread}).
@item T p
-@kindex T p (Summary)
+@kindex T p @r{(Summary)}
@itemx M-C-p
-@kindex M-C-p (Summary)
+@kindex M-C-p @r{(Summary)}
@itemx M-up
-@kindex M-up (Summary)
+@kindex M-up @r{(Summary)}
@findex gnus-summary-prev-thread
Go to the previous thread (@code{gnus-summary-prev-thread}).
@item T d
-@kindex T d (Summary)
+@kindex T d @r{(Summary)}
@findex gnus-summary-down-thread
Descend the thread (@code{gnus-summary-down-thread}).
@item T u
-@kindex T u (Summary)
+@kindex T u @r{(Summary)}
@findex gnus-summary-up-thread
Ascend the thread (@code{gnus-summary-up-thread}).
@item T o
-@kindex T o (Summary)
+@kindex T o @r{(Summary)}
@findex gnus-summary-top-thread
Go to the top of the thread (@code{gnus-summary-top-thread}).
@end table
@vindex gnus-thread-operation-ignore-subject
If you ignore subject while threading, you'll naturally end up with
threads that have several different subjects in them. If you then issue
-a command like `T k' (@code{gnus-summary-kill-thread}) you might not
+a command like @kbd{T k} (@code{gnus-summary-kill-thread}) you might not
wish to kill the entire thread, but just those parts of the thread that
have the same subject as the current article. If you like this idea,
you can fiddle with @code{gnus-thread-operation-ignore-subject}. If it
To turn caching on, set @code{gnus-use-cache} to @code{t}. By default,
all articles ticked or marked as dormant will then be copied
over to your local cache (@code{gnus-cache-directory}). Whether this
-cache is flat or hierarchal is controlled by the
+cache is flat or hierarchical is controlled by the
@code{gnus-use-long-file-name} variable, as usual.
When re-selecting a ticked or dormant article, it will be fetched from the
@table @kbd
@item *
-@kindex * (Summary)
+@kindex * @r{(Summary)}
@findex gnus-cache-enter-article
Make the current article persistent (@code{gnus-cache-enter-article}).
@item M-*
-@kindex M-* (Summary)
+@kindex M-* @r{(Summary)}
@findex gnus-cache-remove-article
Remove the current article from the persistent articles
(@code{gnus-cache-remove-article}). This will normally delete the
@item O o
@itemx o
-@kindex O o (Summary)
-@kindex o (Summary)
+@kindex O o @r{(Summary)}
+@kindex o @r{(Summary)}
@findex gnus-summary-save-article
@c @icon{gnus-summary-save-article}
Save the current article using the default article saver
(@code{gnus-summary-save-article}).
@item O m
-@kindex O m (Summary)
+@kindex O m @r{(Summary)}
@findex gnus-summary-save-article-mail
Save the current article in mail format
(@code{gnus-summary-save-article-mail}).
@item O r
-@kindex O r (Summary)
+@kindex O r @r{(Summary)}
@findex gnus-summary-save-article-rmail
Save the current article in rmail format
(@code{gnus-summary-save-article-rmail}).
@item O f
-@kindex O f (Summary)
+@kindex O f @r{(Summary)}
@findex gnus-summary-save-article-file
@c @icon{gnus-summary-save-article-file}
Save the current article in plain file format
(@code{gnus-summary-save-article-file}).
@item O F
-@kindex O F (Summary)
+@kindex O F @r{(Summary)}
@findex gnus-summary-write-article-file
Write the current article in plain file format, overwriting any previous
file contents (@code{gnus-summary-write-article-file}).
@item O b
-@kindex O b (Summary)
+@kindex O b @r{(Summary)}
@findex gnus-summary-save-article-body-file
Save the current article body in plain file format
(@code{gnus-summary-save-article-body-file}).
@item O h
-@kindex O h (Summary)
+@kindex O h @r{(Summary)}
@findex gnus-summary-save-article-folder
Save the current article in mh folder format
(@code{gnus-summary-save-article-folder}).
@item O v
-@kindex O v (Summary)
+@kindex O v @r{(Summary)}
@findex gnus-summary-save-article-vm
Save the current article in a VM folder
(@code{gnus-summary-save-article-vm}).
@item O p
-@kindex O p (Summary)
+@kindex O p @r{(Summary)}
@findex gnus-summary-pipe-output
Save the current article in a pipe. Uhm, like, what I mean is---Pipe
the current article to a process (@code{gnus-summary-pipe-output}).
@lisp
(setq gnus-use-long-file-name '(not-save)) ; to get a hierarchy
-(setq gnus-default-article-saver 'gnus-summary-save-in-file) ; no encoding
+(setq gnus-default-article-saver
+ 'gnus-summary-save-in-file) ; no encoding
@end lisp
Then just save with @kbd{o}. You'd then read this hierarchy with
@table @kbd
@item X u
-@kindex X u (Summary)
+@kindex X u @r{(Summary)}
@findex gnus-uu-decode-uu
@c @icon{gnus-uu-decode-uu}
Uudecodes the current series (@code{gnus-uu-decode-uu}).
@item X U
-@kindex X U (Summary)
+@kindex X U @r{(Summary)}
@findex gnus-uu-decode-uu-and-save
Uudecodes and saves the current series
(@code{gnus-uu-decode-uu-and-save}).
@item X v u
-@kindex X v u (Summary)
+@kindex X v u @r{(Summary)}
@findex gnus-uu-decode-uu-view
Uudecodes and views the current series (@code{gnus-uu-decode-uu-view}).
@item X v U
-@kindex X v U (Summary)
+@kindex X v U @r{(Summary)}
@findex gnus-uu-decode-uu-and-save-view
Uudecodes, views and saves the current series
(@code{gnus-uu-decode-uu-and-save-view}).
@table @kbd
@item X s
-@kindex X s (Summary)
+@kindex X s @r{(Summary)}
@findex gnus-uu-decode-unshar
Unshars the current series (@code{gnus-uu-decode-unshar}).
@item X S
-@kindex X S (Summary)
+@kindex X S @r{(Summary)}
@findex gnus-uu-decode-unshar-and-save
Unshars and saves the current series (@code{gnus-uu-decode-unshar-and-save}).
@item X v s
-@kindex X v s (Summary)
+@kindex X v s @r{(Summary)}
@findex gnus-uu-decode-unshar-view
Unshars and views the current series (@code{gnus-uu-decode-unshar-view}).
@item X v S
-@kindex X v S (Summary)
+@kindex X v S @r{(Summary)}
@findex gnus-uu-decode-unshar-and-save-view
Unshars, views and saves the current series
(@code{gnus-uu-decode-unshar-and-save-view}).
@table @kbd
@item X p
-@kindex X p (Summary)
+@kindex X p @r{(Summary)}
@findex gnus-uu-decode-postscript
Unpack the current PostScript series (@code{gnus-uu-decode-postscript}).
@item X P
-@kindex X P (Summary)
+@kindex X P @r{(Summary)}
@findex gnus-uu-decode-postscript-and-save
Unpack and save the current PostScript series
(@code{gnus-uu-decode-postscript-and-save}).
@item X v p
-@kindex X v p (Summary)
+@kindex X v p @r{(Summary)}
@findex gnus-uu-decode-postscript-view
View the current PostScript series
(@code{gnus-uu-decode-postscript-view}).
@item X v P
-@kindex X v P (Summary)
+@kindex X v P @r{(Summary)}
@findex gnus-uu-decode-postscript-and-save-view
View and save the current PostScript series
(@code{gnus-uu-decode-postscript-and-save-view}).
@table @kbd
@item X o
-@kindex X o (Summary)
+@kindex X o @r{(Summary)}
@findex gnus-uu-decode-save
Save the current series
(@code{gnus-uu-decode-save}).
@item X b
-@kindex X b (Summary)
+@kindex X b @r{(Summary)}
@findex gnus-uu-decode-binhex
Unbinhex the current series (@code{gnus-uu-decode-binhex}). This
doesn't really work yet.
@table @kbd
@item W H a
-@kindex W H a (Summary)
+@kindex W H a @r{(Summary)}
@findex gnus-article-highlight
@findex gnus-article-maybe-highlight
Do much highlighting of the current article
text, the signature, and adds buttons to the body and the head.
@item W H h
-@kindex W H h (Summary)
+@kindex W H h @r{(Summary)}
@findex gnus-article-highlight-headers
@vindex gnus-header-face-alist
Highlight the headers (@code{gnus-article-highlight-headers}). The
@var{regexp} shouldn't have @samp{^} prepended---Gnus will add one.
@item W H c
-@kindex W H c (Summary)
+@kindex W H c @r{(Summary)}
@findex gnus-article-highlight-citation
Highlight cited text (@code{gnus-article-highlight-citation}).
@item W H s
-@kindex W H s (Summary)
+@kindex W H s @r{(Summary)}
@vindex gnus-signature-separator
@vindex gnus-signature-face
@findex gnus-article-highlight-signature
@cindex article emphasis
@findex gnus-article-emphasize
-@kindex W e (Summary)
+@kindex W e @r{(Summary)}
People commonly add emphasis to words in news articles by writing things
like @samp{_this_} or @samp{*this*} or @samp{/this/}. Gnus can make
this look nicer by running the article through the @kbd{W e}
@table @kbd
@item W W a
-@kindex W W a (Summary)
+@kindex W W a @r{(Summary)}
@findex 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)
+@kindex W W h @r{(Summary)}
@findex gnus-article-hide-headers
Hide headers (@code{gnus-article-hide-headers}). @xref{Hiding
Headers}.
@item W W b
-@kindex W W b (Summary)
+@kindex W W b @r{(Summary)}
@findex gnus-article-hide-boring-headers
Hide headers that aren't particularly interesting
(@code{gnus-article-hide-boring-headers}). @xref{Hiding Headers}.
@item W W s
-@kindex W W s (Summary)
+@kindex W W s @r{(Summary)}
@findex gnus-article-hide-signature
Hide signature (@code{gnus-article-hide-signature}). @xref{Article
Signature}.
@item W W l
-@kindex W W l (Summary)
+@kindex W W l @r{(Summary)}
@findex gnus-article-hide-list-identifiers
@vindex gnus-list-identifiers
Strip list identifiers specified in @code{gnus-list-identifiers}. These
@end table
@item W W p
-@kindex W W p (Summary)
+@kindex W W p @r{(Summary)}
@findex gnus-article-hide-pgp
@vindex gnus-article-hide-pgp-hook
Hide @sc{pgp} signatures (@code{gnus-article-hide-pgp}). The
@end lisp
@item W W P
-@kindex W W P (Summary)
+@kindex W W P @r{(Summary)}
@findex gnus-article-hide-pem
Hide @sc{pem} (privacy enhanced messages) cruft
(@code{gnus-article-hide-pem}).
@item W W B
-@kindex W W B (Summary)
+@kindex W W B @r{(Summary)}
@findex gnus-article-strip-banner
@cindex banner
@cindex OneList
-@cindex stripping advertisments
-@cindex advertisments
+@cindex stripping advertisements
+@cindex advertisements
Strip the banner specified by the @code{banner} group parameter
(@code{gnus-article-strip-banner}). This is mainly used to hide those
annoying banners and/or signatures that some mailing lists and moderated
used.
@item W W c
-@kindex W W c (Summary)
+@kindex W W c @r{(Summary)}
@findex gnus-article-hide-citation
Hide citation (@code{gnus-article-hide-citation}). Some variables for
customizing the hiding:
@end table
@item W W C-c
-@kindex W W C-c (Summary)
+@kindex W W C-c @r{(Summary)}
@findex gnus-article-hide-citation-maybe
Hide citation (@code{gnus-article-hide-citation-maybe}) depending on the
@end table
@item W W C
-@kindex W W C (Summary)
+@kindex W W C @r{(Summary)}
@findex gnus-article-hide-citation-in-followups
Hide cited text in articles that aren't roots
(@code{gnus-article-hide-citation-in-followups}). This isn't very
something else'', but normally results in something looking better.
Cleaner, perhaps.
+@xref{Customizing Articles}, if you want to change how Gnus displays
+articles by default.
+
@table @kbd
+@item C-u g
+This is not really washing, it's sort of the opposite of washing. If
+you type this, you see the article exactly as it exists on disk or on
+the server.
+
@item W l
-@kindex W l (Summary)
+@kindex W l @r{(Summary)}
@findex gnus-summary-stop-page-breaking
Remove page breaks from the current article
(@code{gnus-summary-stop-page-breaking}). @xref{Misc Article}, for page
delimiters.
@item W r
-@kindex W r (Summary)
+@kindex W r @r{(Summary)}
@findex gnus-summary-caesar-message
@c @icon{gnus-summary-caesar-message}
Do a Caesar rotate (rot13) on the article buffer
Unreadable articles that tell you to read them with Caesar rotate or rot13.
(Typically offensive jokes and such.)
-It's commonly called ``rot13'' because each letter is rotated 13
+It's commonly called @dfn{rot13} because each letter is rotated 13
positions in the alphabet, e. g. @samp{B} (letter #2) -> @samp{O} (letter
#15). It is sometimes referred to as ``Caesar rotate'' because Caesar
is rumored to have employed this form of, uh, somewhat weak encryption.
@item W t
@item t
-@kindex W t (Summary)
-@kindex t (Summary)
+@kindex W t @r{(Summary)}
+@kindex t @r{(Summary)}
@findex gnus-summary-toggle-header
Toggle whether to display all headers in the article buffer
(@code{gnus-summary-toggle-header}).
@item W v
-@kindex W v (Summary)
+@kindex W v @r{(Summary)}
@findex gnus-summary-verbose-header
Toggle whether to display all headers in the article buffer permanently
(@code{gnus-summary-verbose-header}).
@item W o
-@kindex W o (Summary)
+@kindex W o @r{(Summary)}
@findex gnus-article-treat-overstrike
Treat overstrike (@code{gnus-article-treat-overstrike}).
@item W d
-@kindex W d (Summary)
+@kindex W d @r{(Summary)}
@findex gnus-article-treat-dumbquotes
@vindex gnus-article-dumbquotes-map
@cindex Smartquotes
whether a character is a sm*rtq**t* or not, so it should only be used
interactively.
+In reality, this function is translates a subset of the subset of the
+@code{cp1252} (or @code{Windows-1252}) character set that isn't in ISO
+Latin-1, including the quote characters @code{\222} and @code{\264}.
+Messages in this character set often have a MIME header saying that
+they are Latin-1.
+
@item W w
-@kindex W w (Summary)
+@kindex W w @r{(Summary)}
@findex gnus-article-fill-cited-article
Do word wrap (@code{gnus-article-fill-cited-article}).
when filling.
@item W Q
-@kindex W Q (Summary)
+@kindex W Q @r{(Summary)}
@findex gnus-article-fill-long-lines
Fill long lines (@code{gnus-article-fill-long-lines}).
@item W C
-@kindex W C (Summary)
+@kindex W C @r{(Summary)}
@findex gnus-article-capitalize-sentences
Capitalize the first word in each sentence
(@code{gnus-article-capitalize-sentences}).
@item W c
-@kindex W c (Summary)
+@kindex W c @r{(Summary)}
@findex gnus-article-remove-cr
Translate CRLF pairs (i. e., @samp{^M}s on the end of the lines) into LF
(this takes care of DOS line endings), and then translate any remaining
(@code{gnus-article-remove-cr}).
@item W q
-@kindex W q (Summary)
+@kindex W q @r{(Summary)}
@findex gnus-article-de-quoted-unreadable
Treat quoted-printable (@code{gnus-article-de-quoted-unreadable}).
Quoted-Printable is one common @sc{mime} encoding employed when sending
header that says that this encoding has been done.
@item W 6
-@kindex W 6 (Summary)
+@kindex W 6 @r{(Summary)}
@findex gnus-article-de-base64-unreadable
Treat base64 (@code{gnus-article-de-base64-unreadable}).
Base64 is one common @sc{mime} encoding employed when sending non-ASCII
been done.
@item W Z
-@kindex W Z (Summary)
+@kindex W Z @r{(Summary)}
@findex gnus-article-decode-HZ
Treat HZ or HZP (@code{gnus-article-decode-HZ}). HZ (or HZP) is one
common encoding employed when sending Chinese articles. It typically
makes strings look like @samp{~@{<:Ky2;S@{#,NpJ)l6HK!#~@}}.
@item W h
-@kindex W h (Summary)
+@kindex W h @r{(Summary)}
@findex gnus-article-wash-html
Treat HTML (@code{gnus-article-wash-html}).
Note that the this is usually done automatically by Gnus if the message
has been done.
@item W f
-@kindex W f (Summary)
+@kindex W f @r{(Summary)}
@cindex x-face
@findex gnus-article-display-x-face
@findex gnus-article-x-face-command
\include{xface}
@end iflatex
@end iftex
+@anchor{X-Face}
Look for and display any X-Face headers
(@code{gnus-article-display-x-face}). The command executed by this
function is given by the @code{gnus-article-x-face-command} variable.
last.
@item W b
-@kindex W b (Summary)
+@kindex W b @r{(Summary)}
@findex gnus-article-add-buttons
Add clickable buttons to the article (@code{gnus-article-add-buttons}).
@xref{Article Buttons}.
@item W B
-@kindex W B (Summary)
+@kindex W B @r{(Summary)}
@findex gnus-article-add-buttons-to-head
Add clickable buttons to the article headers
(@code{gnus-article-add-buttons-to-head}).
@item W W H
-@kindex W W H (Summary)
+@kindex W W H @r{(Summary)}
@findex gnus-article-strip-headers-from-body
Strip headers like the @code{X-No-Archive} header from the beginning of
article bodies (@code{gnus-article-strip-headers-from-body}).
@item W E l
-@kindex W E l (Summary)
+@kindex W E l @r{(Summary)}
@findex gnus-article-strip-leading-blank-lines
Remove all blank lines from the beginning of the article
(@code{gnus-article-strip-leading-blank-lines}).
@item W E m
-@kindex W E m (Summary)
+@kindex W E m @r{(Summary)}
@findex gnus-article-strip-multiple-blank-lines
Replace all blank lines with empty lines and then all multiple empty
lines with a single empty line.
(@code{gnus-article-strip-multiple-blank-lines}).
@item W E t
-@kindex W E t (Summary)
+@kindex W E t @r{(Summary)}
@findex gnus-article-remove-trailing-blank-lines
Remove all blank lines at the end of the article
(@code{gnus-article-remove-trailing-blank-lines}).
@item W E a
-@kindex W E a (Summary)
+@kindex W E a @r{(Summary)}
@findex gnus-article-strip-blank-lines
Do all the three commands above
(@code{gnus-article-strip-blank-lines}).
@item W E A
-@kindex W E A (Summary)
+@kindex W E A @r{(Summary)}
@findex gnus-article-strip-all-blank-lines
Remove all blank lines
(@code{gnus-article-strip-all-blank-lines}).
@item W E s
-@kindex W E s (Summary)
+@kindex W E s @r{(Summary)}
@findex gnus-article-strip-leading-space
Remove all white space from the beginning of all lines of the article
body (@code{gnus-article-strip-leading-space}).
@item W E e
-@kindex W E e (Summary)
+@kindex W E e @r{(Summary)}
@findex gnus-article-strip-trailing-space
Remove all white space from the end of all lines of the article
body (@code{gnus-article-strip-trailing-space}).
People often include references to other stuff in articles, and it would
be nice if Gnus could just fetch whatever it is that people talk about
-with the minimum of fuzz when you hit @kbd{RET} or use the middle mouse
+with the minimum of fuzz when you hit @key{RET} or use the middle mouse
button on these references.
Gnus adds @dfn{buttons} to certain standard references by default:
@table @kbd
@item W T u
-@kindex W T u (Summary)
+@kindex W T u @r{(Summary)}
@findex gnus-article-date-ut
Display the date in UT (aka. GMT, aka ZULU)
(@code{gnus-article-date-ut}).
@item W T i
-@kindex W T i (Summary)
+@kindex W T i @r{(Summary)}
@findex gnus-article-date-iso8601
@cindex ISO 8601
Display the date in international format, aka. ISO 8601
(@code{gnus-article-date-iso8601}).
@item W T l
-@kindex W T l (Summary)
+@kindex W T l @r{(Summary)}
@findex gnus-article-date-local
Display the date in the local timezone (@code{gnus-article-date-local}).
@item W T s
-@kindex W T s (Summary)
+@kindex W T s @r{(Summary)}
@vindex gnus-article-time-format
@findex gnus-article-date-user
@findex format-time-string
for a list of possible format specs.
@item W T e
-@kindex W T e (Summary)
+@kindex W T e @r{(Summary)}
@findex gnus-article-date-lapsed
@findex gnus-start-date-timer
@findex gnus-stop-date-timer
(@code{gnus-article-date-lapsed}). It looks something like:
@example
-X-Sent: 9 years, 6 weeks, 4 days, 9 hours, 3 minutes, 28 seconds ago
+X-Sent: 6 weeks, 4 days, 1 hour, 3 minutes, 8 seconds ago
@end example
The value of @code{gnus-article-date-lapsed-new-header} determines
command.
@item W T o
-@kindex W T o (Summary)
+@kindex W T o @r{(Summary)}
@findex gnus-article-date-original
Display the original date (@code{gnus-article-date-original}). This can
be useful if you normally use some other conversion function and are
@table @kbd
@item A t
-@kindex A t (Summary)
+@kindex A t @r{(Summary)}
@findex gnus-article-babel
Translate the article from one language to another
(@code{gnus-article-babel}).
@table @kbd
@item b
@itemx K v
-@kindex b (Summary)
-@kindex K v (Summary)
+@kindex b @r{(Summary)}
+@kindex K v @r{(Summary)}
View the @sc{mime} part.
@item K o
-@kindex K o (Summary)
+@kindex K o @r{(Summary)}
Save the @sc{mime} part.
@item K c
-@kindex K c (Summary)
+@kindex K c @r{(Summary)}
Copy the @sc{mime} part.
@item K e
-@kindex K e (Summary)
+@kindex K e @r{(Summary)}
View the @sc{mime} part externally.
@item K i
-@kindex K i (Summary)
+@kindex K i @r{(Summary)}
View the @sc{mime} part internally.
@item K |
-@kindex K | (Summary)
+@kindex K | @r{(Summary)}
Pipe the @sc{mime} part to an external command.
@end table
@table @kbd
@item K b
-@kindex K b (Summary)
+@kindex K b @r{(Summary)}
Make all the @sc{mime} parts have buttons in front of them. This is
mostly useful if you wish to save (or perform other actions) on inlined
parts.
@item K m
-@kindex K m (Summary)
+@kindex K m @r{(Summary)}
@findex gnus-summary-repair-multipart
Some multipart messages are transmitted with missing or faulty headers.
This command will attempt to ``repair'' these messages so that they can
(@code{gnus-summary-repair-multipart}).
@item X m
-@kindex X m (Summary)
+@kindex X m @r{(Summary)}
@findex gnus-summary-save-parts
Save all parts matching a @sc{mime} type to a directory
(@code{gnus-summary-save-parts}). Understands the process/prefix
convention (@pxref{Process/Prefix}).
@item M-t
-@kindex M-t (Summary)
+@kindex M-t @r{(Summary)}
@findex gnus-summary-display-buttonized
Toggle the buttonized display of the article buffer
(@code{gnus-summary-toggle-display-buttonized}).
@item W M w
-@kindex W M w (Summary)
+@kindex W M w @r{(Summary)}
Decode RFC 2047-encoded words in the article headers
(@code{gnus-article-decode-mime-words}).
@item W M c
-@kindex W M c (Summary)
+@kindex W M c @r{(Summary)}
Decode encoded article bodies as well as charsets
(@code{gnus-article-decode-charset}).
the required charset (@pxref{Group Parameters}).
@item W M v
-@kindex W M v (Summary)
+@kindex W M v @r{(Summary)}
View all the @sc{mime} parts in the current article
(@code{gnus-mime-view-all-parts}).
default charsets to be used when reading these groups.
In addition, some people do use soi-disant @sc{mime}-aware agents that
-aren't. These blitely mark messages as being in @code{iso-8859-1} even
+aren't. These blithely mark messages as being in @code{iso-8859-1} even
if they really are in @code{koi-8}. To help here, the
@code{gnus-newsgroup-ignored-charsets} variable can be used. The
charsets that are listed here will be ignored. The variable can be set
(define-coding-system-alias 'windows-1251 'cp1251)
@end lisp
+while if you use a non-Latin-1 language environment you could see the
+Latin-1 subset of @code{windows-1252} using:
+
+@lisp
+(define-coding-system-alias 'windows-1252 'latin-1)
+@end lisp
+
@node Article Commands
@section Article Commands
@item A P
@cindex PostScript
@cindex printing
-@kindex A P (Summary)
+@kindex A P @r{(Summary)}
@vindex gnus-ps-print-hook
@findex gnus-summary-print-article
Generate and print a PostScript image of the article buffer
@table @kbd
@item C-c C-s C-n
-@kindex C-c C-s C-n (Summary)
+@kindex C-c C-s C-n @r{(Summary)}
@findex gnus-summary-sort-by-number
Sort by article number (@code{gnus-summary-sort-by-number}).
@item C-c C-s C-a
-@kindex C-c C-s C-a (Summary)
+@kindex C-c C-s C-a @r{(Summary)}
@findex gnus-summary-sort-by-author
Sort by author (@code{gnus-summary-sort-by-author}).
@item C-c C-s C-s
-@kindex C-c C-s C-s (Summary)
+@kindex C-c C-s C-s @r{(Summary)}
@findex gnus-summary-sort-by-subject
Sort by subject (@code{gnus-summary-sort-by-subject}).
@item C-c C-s C-d
-@kindex C-c C-s C-d (Summary)
+@kindex C-c C-s C-d @r{(Summary)}
@findex gnus-summary-sort-by-date
Sort by date (@code{gnus-summary-sort-by-date}).
@item C-c C-s C-l
-@kindex C-c C-s C-l (Summary)
+@kindex C-c C-s C-l @r{(Summary)}
@findex gnus-summary-sort-by-lines
Sort by lines (@code{gnus-summary-sort-by-lines}).
@item C-c C-s C-c
-@kindex C-c C-s C-c (Summary)
+@kindex C-c C-s C-c @r{(Summary)}
@findex gnus-summary-sort-by-chars
Sort by article length (@code{gnus-summary-sort-by-chars}).
@item C-c C-s C-i
-@kindex C-c C-s C-i (Summary)
+@kindex C-c C-s C-i @r{(Summary)}
@findex gnus-summary-sort-by-score
Sort by score (@code{gnus-summary-sort-by-score}).
@end table
@table @kbd
@item ^
-@kindex ^ (Summary)
+@kindex ^ @r{(Summary)}
@findex gnus-summary-refer-parent-article
If you'd like to read the parent of the current article, and it is not
displayed in the summary buffer, you might still be able to. That is,
@kbd{-3 ^}, Gnus will only fetch the grandgrandparent of the current
article.
-@item A R (Summary)
+@item A R @r{(Summary)}
@findex gnus-summary-refer-references
-@kindex A R (Summary)
+@kindex A R @r{(Summary)}
Fetch all articles mentioned in the @code{References} header of the
article (@code{gnus-summary-refer-references}).
-@item A T (Summary)
+@item A T @r{(Summary)}
@findex gnus-summary-refer-thread
-@kindex A T (Summary)
+@kindex A T @r{(Summary)}
Display the full thread where the current article appears
(@code{gnus-summary-refer-thread}). This command has to fetch all the
headers in the current group to work, so it usually takes a while. If
the available headers will be fetched. This variable can be overridden
by giving the @kbd{A T} command a numerical prefix.
-@item M-^ (Summary)
+@item M-^ @r{(Summary)}
@findex gnus-summary-refer-article
-@kindex M-^ (Summary)
+@kindex M-^ @r{(Summary)}
@cindex Message-ID
@cindex fetching by Message-ID
You can also ask the @sc{nntp} server for an arbitrary article, no
thread or article and pick it. (The line number is normally displayed
at the beginning of the summary pick lines.)
-@item SPACE
-@kindex SPACE (Pick)
+@item @key{SPC}
+@kindex @key{SPC} (Pick)
@findex gnus-pick-next-page
Scroll the summary buffer up one page (@code{gnus-pick-next-page}). If
at the end of the buffer, start reading the picked articles.
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)
+@item @key{RET}
+@kindex @key{RET} (Pick)
@findex gnus-pick-start-reading
@vindex gnus-pick-display-summary
Start reading the picked articles (@code{gnus-pick-start-reading}). If
@findex gnus-binary-mode
@kindex M-x gnus-binary-mode
If you spend much time in binary groups, you may grow tired of hitting
-@kbd{X u}, @kbd{n}, @kbd{RET} all the time. @kbd{M-x gnus-binary-mode}
+@kbd{X u}, @kbd{n}, @key{RET} all the time. @kbd{M-x gnus-binary-mode}
is a minor mode for summary buffers that makes all ordinary Gnus article
selection functions uudecode series of articles and display the result
instead of just displaying the articles the normal way.
@table @kbd
@item B e
-@kindex B e (Summary)
+@kindex B e @r{(Summary)}
@findex gnus-summary-expire-articles
Expire all expirable articles in the group
(@code{gnus-summary-expire-articles}).
@item B M-C-e
-@kindex B M-C-e (Summary)
+@kindex B M-C-e @r{(Summary)}
@findex gnus-summary-expire-articles-now
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
disappear forever into that big @file{/dev/null} in the sky.
-@item B DEL
-@kindex B DEL (Summary)
+@item B @key{DEL}
+@kindex B @key{DEL} @r{(Summary)}
@findex gnus-summary-delete-article
@c @icon{gnus-summary-mail-delete}
Delete the mail article. This is ``delete'' as in ``delete it from your
(@code{gnus-summary-delete-article}).
@item B m
-@kindex B m (Summary)
+@kindex B m @r{(Summary)}
@cindex move mail
@findex gnus-summary-move-article
@vindex gnus-preserve-marks
@var{gnus-preserve-marks} is non-@code{nil} (which is the default).
@item B c
-@kindex B c (Summary)
+@kindex B c @r{(Summary)}
@cindex copy mail
@findex gnus-summary-copy-article
@c @icon{gnus-summary-mail-copy}
@var{gnus-preserve-marks} is non-@code{nil} (which is the default).
@item B B
-@kindex B B (Summary)
+@kindex B B @r{(Summary)}
@cindex crosspost mail
@findex gnus-summary-crosspost-article
Crosspost the current article to some other group
be properly updated.
@item B i
-@kindex B i (Summary)
+@kindex B i @r{(Summary)}
@findex gnus-summary-import-article
Import an arbitrary file into the current mail newsgroup
(@code{gnus-summary-import-article}). You will be prompted for a file
name, a @code{From} header and a @code{Subject} header.
@item B r
-@kindex B r (Summary)
+@kindex B r @r{(Summary)}
@findex gnus-summary-respool-article
Respool the mail article (@code{gnus-summary-respool-article}).
@code{gnus-summary-respool-default-method} will be used as the default
@item B w
@itemx e
-@kindex B w (Summary)
-@kindex e (Summary)
+@kindex B w @r{(Summary)}
+@kindex e @r{(Summary)}
@findex gnus-summary-edit-article
-@kindex C-c C-c (Article)
+@kindex C-c C-c @r{(Article)}
Edit the current article (@code{gnus-summary-edit-article}). To finish
editing and make the changes permanent, type @kbd{C-c C-c}
(@kbd{gnus-summary-edit-article-done}). If you give a prefix to the
@kbd{C-c C-c} command, Gnus won't re-highlight the article.
@item B q
-@kindex B q (Summary)
+@kindex B q @r{(Summary)}
@findex gnus-summary-respool-query
If you want to re-spool an article, you might be curious as to what group
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)
+@kindex B t @r{(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)
+@kindex B p @r{(Summary)}
@findex gnus-summary-article-posted-p
Some people have a tendency to send you "courtesy" copies when they
follow up to articles you have posted. These usually have a
suggest where to put the articles. @code{gnus-move-split-methods} is a
variable that uses the same syntax as @code{gnus-split-methods}
(@pxref{Saving Articles}). You may customize that variable to create
-suggestions you find reasonable.
+suggestions you find reasonable. (Note that
+@code{gnus-move-split-methods} uses group names where
+@code{gnus-split-methods} uses file names.)
@lisp
(setq gnus-move-split-methods
@table @kbd
@item H f
-@kindex H f (Summary)
+@kindex H f @r{(Summary)}
@findex gnus-summary-fetch-faq
@vindex gnus-group-faq-directory
Try to fetch the FAQ (list of frequently asked questions) for the
be used for fetching the file.
@item H d
-@kindex H d (Summary)
+@kindex H d @r{(Summary)}
@findex gnus-summary-describe-group
Give a brief description of the current group
(@code{gnus-summary-describe-group}). If given a prefix, force
rereading the description from the server.
@item H h
-@kindex H h (Summary)
+@kindex H h @r{(Summary)}
@findex gnus-summary-describe-briefly
Give an extremely brief description of the most important summary
keystrokes (@code{gnus-summary-describe-briefly}).
@item H i
-@kindex H i (Summary)
+@kindex H i @r{(Summary)}
@findex gnus-info-find-node
Go to the Gnus info node (@code{gnus-info-find-node}).
@end table
@table @kbd
@item M-s
-@kindex M-s (Summary)
+@kindex M-s @r{(Summary)}
@findex gnus-summary-search-article-forward
Search through all subsequent articles for a regexp
(@code{gnus-summary-search-article-forward}).
@item M-r
-@kindex M-r (Summary)
+@kindex M-r @r{(Summary)}
@findex gnus-summary-search-article-backward
Search through all previous articles for a regexp
(@code{gnus-summary-search-article-backward}).
@item &
-@kindex & (Summary)
+@kindex & @r{(Summary)}
@findex gnus-summary-execute-command
This command will prompt you for a header, a regular expression to match
on this field, and a command to be executed if the match is made
string, the match is done on the entire article. If given a prefix,
search backward instead.
-For instance, @kbd{& RET some.*string #} will put the process mark on
+For instance, @kbd{& @key{RET} some.*string #} will put the process mark on
all articles that have heads or bodies that match @samp{some.*string}.
@item M-&
-@kindex M-& (Summary)
+@kindex M-& @r{(Summary)}
@findex gnus-summary-universal-argument
Perform any operation on all articles that have been marked with
the process mark (@code{gnus-summary-universal-argument}).
@table @kbd
@item Y g
-@kindex Y g (Summary)
+@kindex Y g @r{(Summary)}
@findex gnus-summary-prepare
Regenerate the current summary buffer (@code{gnus-summary-prepare}).
@item Y c
-@kindex Y c (Summary)
+@kindex Y c @r{(Summary)}
@findex gnus-summary-insert-cached-articles
Pull all cached articles (for the current group) into the summary buffer
(@code{gnus-summary-insert-cached-articles}).
@item A D
@itemx C-d
-@kindex C-d (Summary)
-@kindex A D (Summary)
+@kindex C-d @r{(Summary)}
+@kindex A D @r{(Summary)}
@findex gnus-summary-enter-digest-group
If the current article is a collection of other articles (for instance,
a digest), you might use this command to enter a group based on the that
fashion.
@item M-C-d
-@kindex M-C-d (Summary)
+@kindex M-C-d @r{(Summary)}
@findex gnus-summary-read-document
This command is very similar to the one above, but lets you gather
several documents into one biiig group
(@pxref{Process/Prefix}).
@item C-t
-@kindex C-t (Summary)
+@kindex C-t @r{(Summary)}
@findex gnus-summary-toggle-truncation
Toggle truncation of summary lines
(@code{gnus-summary-toggle-truncation}). This will probably confuse the
to have truncation switched off while reading articles.
@item =
-@kindex = (Summary)
+@kindex = @r{(Summary)}
@findex gnus-summary-expand-window
Expand the summary buffer window (@code{gnus-summary-expand-window}).
If given a prefix, force an @code{article} window configuration.
@item M-C-e
-@kindex M-C-e (Summary)
+@kindex M-C-e @r{(Summary)}
@findex gnus-summary-edit-parameters
Edit the group parameters (@pxref{Group Parameters}) of the current
group (@code{gnus-summary-edit-parameters}).
@item M-C-a
-@kindex M-C-a (Summary)
+@kindex M-C-a @r{(Summary)}
@findex gnus-summary-customize-parameters
Customize the group parameters (@pxref{Group Parameters}) of the current
group (@code{gnus-summary-customize-parameters}).
@item Z Z
@itemx q
-@kindex Z Z (Summary)
-@kindex q (Summary)
+@kindex Z Z @r{(Summary)}
+@kindex q @r{(Summary)}
@findex gnus-summary-exit
@vindex gnus-summary-exit-hook
@vindex gnus-summary-prepare-exit-hook
@item Z E
@itemx Q
-@kindex Z E (Summary)
-@kindex Q (Summary)
+@kindex Z E @r{(Summary)}
+@kindex Q @r{(Summary)}
@findex gnus-summary-exit-no-update
Exit the current group without updating any information on the group
(@code{gnus-summary-exit-no-update}).
@item Z c
@itemx c
-@kindex Z c (Summary)
-@kindex c (Summary)
+@kindex Z c @r{(Summary)}
+@kindex c @r{(Summary)}
@findex gnus-summary-catchup-and-exit
@c @icon{gnus-summary-catchup-and-exit}
Mark all unticked articles in the group as read and then exit
(@code{gnus-summary-catchup-and-exit}).
@item Z C
-@kindex Z C (Summary)
+@kindex Z C @r{(Summary)}
@findex gnus-summary-catchup-all-and-exit
Mark all articles, even the ticked ones, as read and then exit
(@code{gnus-summary-catchup-all-and-exit}).
@item Z n
-@kindex Z n (Summary)
+@kindex Z n @r{(Summary)}
@findex gnus-summary-catchup-and-goto-next-group
Mark all articles as read and go to the next group
(@code{gnus-summary-catchup-and-goto-next-group}).
@item Z R
-@kindex Z R (Summary)
+@kindex Z R @r{(Summary)}
@findex gnus-summary-reselect-current-group
Exit this group, and then enter it again
(@code{gnus-summary-reselect-current-group}). If given a prefix, select
@item Z G
@itemx M-g
-@kindex Z G (Summary)
-@kindex M-g (Summary)
+@kindex Z G @r{(Summary)}
+@kindex M-g @r{(Summary)}
@findex gnus-summary-rescan-group
@c @icon{gnus-summary-mail-get}
Exit the group, check for new articles in the group, and select the
articles, both read and unread.
@item Z N
-@kindex Z N (Summary)
+@kindex Z N @r{(Summary)}
@findex gnus-summary-next-group
Exit the group and go to the next group
(@code{gnus-summary-next-group}).
@item Z P
-@kindex Z P (Summary)
+@kindex Z P @r{(Summary)}
@findex gnus-summary-prev-group
Exit the group and go to the previous group
(@code{gnus-summary-prev-group}).
@item Z s
-@kindex Z s (Summary)
+@kindex Z s @r{(Summary)}
@findex gnus-summary-save-newsrc
Save the current number of read/marked articles in the dribble buffer
and then save the dribble buffer (@code{gnus-summary-save-newsrc}). If
@table @kbd
@findex gnus-article-press-button
-@item RET (Article)
-@itemx BUTTON-2 (Article)
+@item @key{RET} @r{(Article)}
+@itemx Mouse-2 @r{(Article)}
Toggle displaying of the @sc{mime} object
(@code{gnus-article-press-button}).
@findex gnus-mime-view-part
-@item M-RET (Article)
-@itemx v (Article)
+@item M-@key{RET} @r{(Article)}
+@itemx v @r{(Article)}
Prompt for a method, and then view the @sc{mime} object using this
method (@code{gnus-mime-view-part}).
@findex gnus-mime-save-part
-@item o (Article)
+@item o @r{(Article)}
Prompt for a file name, and then save the @sc{mime} object
(@code{gnus-mime-save-part}).
@findex gnus-mime-copy-part
-@item c (Article)
+@item c @r{(Article)}
Copy the @sc{mime} object to a fresh buffer and display this buffer
(@code{gnus-mime-copy-part}).
@findex gnus-mime-view-part-as-type
-@item t (Article)
+@item t @r{(Article)}
View the @sc{mime} object as if it were a different @sc{mime} media type
(@code{gnus-mime-view-part-as-type}).
@findex gnus-mime-pipe-part
-@item | (Article)
+@item | @r{(Article)}
Output the @sc{mime} object to a process (@code{gnus-mime-pipe-part}).
@findex gnus-mime-inline-part
-@item i (Article)
+@item i @r{(Article)}
Insert the contents of the @sc{mime} object into the buffer
(@code{gnus-mime-inline-part}) as text/plain. If given a prefix, insert
-the raw contens without decoding. If given a numerical prefix, you can
+the raw contents without decoding. If given a numerical prefix, you can
do semi-manual charset stuff (see
@code{gnus-summary-show-article-charset-alist} in @pxref{Paging the
Article}).
@findex gnus-mime-action-on-part
-@item . (Article)
+@item . @r{(Article)}
Interactively run an action on the @sc{mime} object
(@code{gnus-mime-action-on-part}).
@table @kbd
-@item SPACE
-@kindex SPACE (Article)
+@item @key{SPC}
+@kindex @key{SPC} @r{(Article)}
@findex gnus-article-next-page
Scroll forwards one page (@code{gnus-article-next-page}).
-@item DEL
-@kindex DEL (Article)
+@item @key{DEL}
+@kindex @key{DEL} @r{(Article)}
@findex gnus-article-prev-page
Scroll backwards one page (@code{gnus-article-prev-page}).
@item C-c ^
-@kindex C-c ^ (Article)
+@kindex C-c ^ @r{(Article)}
@findex gnus-article-refer-article
If point is in the neighborhood of a @code{Message-ID} and you press
@kbd{C-c ^}, Gnus will try to get that article from the server
(@code{gnus-article-refer-article}).
@item C-c C-m
-@kindex C-c C-m (Article)
+@kindex C-c C-m @r{(Article)}
@findex gnus-article-mail
Send a reply to the address near point (@code{gnus-article-mail}). If
given a prefix, include the mail.
@item s
-@kindex s (Article)
+@kindex s @r{(Article)}
@findex gnus-article-show-summary
Reconfigure the buffers so that the summary buffer becomes visible
(@code{gnus-article-show-summary}).
@item ?
-@kindex ? (Article)
+@kindex ? @r{(Article)}
@findex gnus-article-describe-briefly
Give a very brief description of the available keystrokes
(@code{gnus-article-describe-briefly}).
@item TAB
-@kindex TAB (Article)
+@kindex TAB @r{(Article)}
@findex gnus-article-next-button
Go to the next button, if any (@code{gnus-article-next-button}). This
only makes sense if you have buttonizing turned on.
@item M-TAB
-@kindex M-TAB (Article)
+@kindex M-TAB @r{(Article)}
@findex gnus-article-prev-button
Go to the previous button, if any (@code{gnus-article-prev-button}).
@menu
* Mail:: Mailing and replying.
-* Post:: Posting and following up.
* 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.
If non-@code{nil}, add a @code{to-list} group parameter to mail groups
that have none when you do a @kbd{a}.
-@item message-send-mail-partially-limit
-@vindex message-send-mail-partially-limit
-The limitation of messages sent as message/partial.
-The lower bound of message size in characters, beyond which the message
-should be sent in several parts. If it is nil, the size is unlimited.
-
-@end table
-
-
-@node Post
-@section Post
-
-Variables for composing news articles:
-
-@table @code
-@item gnus-sent-message-ids-file
-@vindex gnus-sent-message-ids-file
-Gnus will keep a @code{Message-ID} history file of all the mails it has
-sent. If it discovers that it has already sent a mail, it will ask the
-user whether to re-send the mail. (This is primarily useful when
-dealing with @sc{soup} packets and the like where one is apt to send the
-same packet multiple times.) This variable says what the name of this
-history file is. It is @file{~/News/Sent-Message-IDs} by default. Set
-this variable to @code{nil} if you don't want Gnus to keep a history
-file.
-
-@item gnus-sent-message-ids-length
-@vindex gnus-sent-message-ids-length
-This variable says how many @code{Message-ID}s to keep in the history
-file. It is 1000 by default.
-
@end table
@end lisp
You can, however, use any mail select method (@code{nnml},
-@code{nnmbox}, etc.). @code{nnfolder} is a quite likeable select method
+@code{nnmbox}, etc.). @code{nnfolder} is a quite likable select method
for doing this sort of thing, though. If you don't like the default
directory chosen, you could say something like:
((message-news-p)
(signature my-news-signature))
(header "From\\|To" "larsi.*org"
- (Organization "Somewhere, Inc."))
+ (Organization "Somewhere, Inc."))
((posting-from-work-p)
(signature-file "~/.work-signature")
(address "user@@bar.foo")
(body "You are fired.\n\nSincerely, your boss.")
(organization "Important Work, Inc"))
+ ("nnml:.*"
+ (From (save-excursion
+ (set-buffer gnus-article-buffer)
+ (message-fetch-field "to"))))
("^nn.+:"
(signature-file "~/.mail-signature"))))
@end lisp
+The @samp{nnml:.*} rule means that you use the @code{To} address as the
+@code{From} address in all your outgoing replies, which might be handy
+if you fill many roles.
+
@node Drafts
@section Drafts
complicated---say, for instance, that you want to read from the
@sc{nntp} server @samp{news.funet.fi} on port number 13, which
hangs if queried for @sc{nov} headers and has a buggy select. Ahem.
-Anyways, if you had to specify that for each group that used this
+Anyway, if you had to specify that for each group that used this
server, that would be too much work, so Gnus offers a way of naming
select methods, which is what you do in the server buffer.
@findex gnus-server-edit-server
Edit a server (@code{gnus-server-edit-server}).
-@item SPACE
-@kindex SPACE (Server)
+@item @key{SPC}
+@kindex @key{SPC} (Server)
@findex gnus-server-read-server
Browse the current server (@code{gnus-server-read-server}).
@findex gnus-server-regenerate-server
Request that the server regenerate all its data structures
(@code{gnus-server-regenerate-server}). This can be useful if you have
-a mail backend that has gotten out of synch.
+a mail backend that has gotten out of sync.
@end table
would probably be best to use @code{nnspool} to read the cache. You
could also use @code{nnml} or @code{nnmh}, though.
-Type @kbd{a nnspool RET cache RET}.
+Type @kbd{a nnspool @key{RET} cache @key{RET}}.
You should now have a brand new @code{nnspool} virtual server called
@samp{cache}. You now need to edit it to have the right definitions.
@end lisp
Type @kbd{C-c C-c} to return to the server buffer. If you now press
-@kbd{RET} over this virtual server, you should be entered into a browse
+@key{RET} over this virtual server, you should be entered into a browse
buffer, and you should be able to enter any of the groups displayed.
The file contains one or more line, each of which define one server.
@item
-Each line may contain an arbitrary number of token/value pairs. The
-valid tokens include @samp{machine}, @samp{login}, @samp{password},
-@samp{default}, @samp{port} and @samp{force}. (The latter is not a
-valid @file{.netrc}/@code{ftp} token, which is almost the only way the
-@file{.authinfo} file format deviates from the @file{.netrc} file
-format.)
+Each line may contain an arbitrary number of token/value pairs.
+
+The valid tokens include @samp{machine}, @samp{login}, @samp{password},
+@samp{default}. In addition Gnus introduces two new tokens, not present
+in the original @file{.netrc}/@code{ftp} syntax, namely @samp{port} and
+@samp{force}. (This is the only way the @file{.authinfo} file format
+deviates from the @file{.netrc} file format.) @samp{port} is used to
+indicate what port on the server the credentials apply to and
+@samp{force} is explained below.
@end enumerate
@lisp
'(("nntpd 1\\.5\\.11t"
- (remove-hook 'nntp-server-opened-hook 'nntp-send-mode-reader)))
+ (remove-hook 'nntp-server-opened-hook
+ 'nntp-send-mode-reader)))
@end lisp
This ensures that Gnus doesn't send the @code{MODE READER} command to
@item nntp-open-ssl-stream
Opens a connection to a server over a @dfn{secure} channel. To use this
you must have SSLay installed
-(@file{ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL}, and you also need
-@file{ssl.el} (from the W3 distributeion, for instance). You then
+(@uref{ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL}, and you also need
+@file{ssl.el} (from the W3 distribution, for instance). You then
define a server as follows:
@lisp
;; Type `C-c C-c' after you've finished editing.
;;
-;; "snews" is port 563 and is predefined in our /etc/services
+;; "snews" is port 563 and is predefined
+;; in our /etc/services
;;
(nntp "snews.bar.com"
- (nntp-open-connection-function nntp-open-ssl-stream)
+ (nntp-open-connection-function
+ nntp-open-ssl-stream)
(nntp-port-number "snews")
(nntp-address "snews.bar.com"))
@end lisp
@item nntp-record-commands
@vindex nntp-record-commands
If non-@code{nil}, @code{nntp} will log all commands it sends to the
-@sc{nntp} server (along with a timestep) in the @samp{*nntp-log*}
+@sc{nntp} server (along with a timestamp) in the @samp{*nntp-log*}
buffer. This is useful if you are debugging a Gnus/@sc{nntp} connection
that doesn't seem to work.
contain very big articles---@samp{alt.binaries.pictures.furniture}, for
instance.
-Anyways, you just specify @code{nnspool} as the method and @code{""} (or
+Anyway, you just specify @code{nnspool} as the method and @code{""} (or
anything else) as the address.
If you have access to a local spool, you should probably use that as the
Note that the mail backends are free to maul the poor, innocent,
incoming headers all they want to. They all add @code{Lines} headers;
some add @code{X-Gnus-Group} headers; most rename the Unix mbox
-@code{From<SPACE>} line to something else.
+@samp{From } line to something else.
@vindex nnmail-crosspost
The mail backends all support cross-posting. If several regexps match,
@code{MAILHOST} environment variable.
@item :port
-The port number of the POP server. This can be a number (eg,
-@samp{:port 1234}) or a string (eg, @samp{:port "pop3"}). If it is a
+The port number of the POP server. This can be a number (e.g.@:
+@samp{:port 110}) or a string (e.g.@: @samp{:port "pop3"}). If it is a
string, it should be a service name as listed in @file{/etc/services} on
-Unix systems. The default is @samp{"pop3"}.
+Unix systems. The default is @samp{"pop3"}. On some systems you might
+need to specify it as @samp{"pop-3"} instead.
@item :user
The user name to give to the POP server. The default is the login
prompted.
@item :program
-The program to use to fetch mail from the POP server. This is should be
+The program to use to fetch mail from the POP server. This should be
a @code{format}-like string. Here's an example:
@example
Two example maildir mail sources:
@lisp
-(maildir :path "/home/user-name/Maildir/" :subdirs ("cur" "new"))
+(maildir :path "/home/user-name/Maildir/"
+ :subdirs ("cur" "new"))
@end lisp
@lisp
-(maildir :path "/user@@remotehost.org:~/Maildir/" :subdirs ("new"))
+(maildir :path "/user@@remotehost.org:~/Maildir/"
+ :subdirs ("new"))
@end lisp
@item imap
-Get mail from a @sc{imap} server. If you don't want to use @sc{imap} as
-intended, as a network mail reading protocol (ie with nnimap), for some
-reason or other, Gnus let you treat it similar to a POP server and
-fetches articles from a given @sc{imap} mailbox.
+Get mail from a @sc{imap} server. If you don't want to use @sc{imap}
+as intended, as a network mail reading protocol (ie with nnimap), for
+some reason or other, Gnus let you treat it similar to a POP server
+and fetches articles from a given @sc{imap} mailbox. @xref{IMAP}, for
+more information.
Keywords:
means @samp{kerberos4}, @samp{cram-md5}, @samp{anonymous} or the default
@samp{login}.
+@item :program
+When using the `shell' :stream, the contents of this variable is
+mapped into the `imap-shell-program' variable. This should be a
+@code{format}-like string (or list of strings). Here's an example:
+
+@example
+ssh %s imapd
+@end example
+
+The valid format specifier characters are:
+
+@table @samp
+@item s
+The name of the server.
+
+@item l
+User name from `imap-default-user'.
+
+@item p
+The port number of the server.
+@end table
+
+The values used for these specs are taken from the values you give the
+corresponding keywords.
+
@item :mailbox
The name of the mailbox to get mail from. The default is @samp{INBOX}
which normally is the mailbox which receive incoming mail.
An example @sc{imap} mail source:
@lisp
-(imap :server "mail.mycorp.com" :stream kerberos4 :fetchflag "\\Seen")
+(imap :server "mail.mycorp.com"
+ :stream kerberos4
+ :fetchflag "\\Seen")
@end lisp
@item webmail
An example webmail source:
@lisp
-(webmail :subtype 'hotmail :user "user-name" :password "secret")
+(webmail :subtype 'hotmail
+ :user "user-name"
+ :password "secret")
@end lisp
@end table
@end table
@end table
-@subsubheading Function Interface
+@subsubsection Function Interface
Some of the above keywords specify a Lisp function to be executed.
For each keyword @code{:foo}, the Lisp variable @code{foo} is bound to
up to @samp{\\9} will be substituted with the text matched by the
groupings 1 through 9.
+@findex nnmail-split-fancy-with-parent
+@code{nnmail-split-fancy-with-parent} is a function which allows you to
+split followups into the same groups their parents are in. Sometimes
+you can't make splitting rules for all your mail. For example, your
+boss might send you personal mail regarding different projects you are
+working on, and as you can't tell your boss to put a distinguishing
+string into the subject line, you have to resort to manually moving the
+messages into the right group. With this function, you only have to do
+it once per thread.
+
+To use this feature, you have to set @code{nnmail-treat-duplicates} to a
+non-nil value. And then you can include
+@code{nnmail-split-fancy-with-parent} using the colon feature, like so:
+@lisp
+(setq nnmail-split-fancy
+ '(| (: nnmail-split-fancy-with-parent)
+ ;; other splits go here
+ ))
+@end lisp
+
+This feature works as follows: when @code{nnmail-treat-duplicates} is
+non-nil, Gnus records the message id of every message it sees in the
+file specified by the variable @code{nnmail-message-id-cache-file},
+together with the group it is in (the group is omitted for non-mail
+messages). When mail splitting is invoked, the function
+@code{nnmail-split-fancy-with-parent} then looks at the References (and
+In-Reply-To) header of each message to split and searches the file
+specified by @code{nnmail-message-id-cache-file} for the message ids.
+When it has found a parent, it returns the corresponding group name. It
+is recommended that you set @code{nnmail-message-id-cache-length} to a
+somewhat higher number than the default so that the message ids are
+still in the cache. (A value of 5000 appears to create a file some 300
+kBytes in size.)
+@vindex nnmail-cache-accepted-message-ids
+When @code{nnmail-cache-accepted-message-ids} is non-@code{nil}, Gnus
+also records the message ids of moved articles, so that the followup
+messages goes into the new group.
+
@node Group Mail Splitting
@subsection Group Mail Splitting
group. If a message doesn't match any split, it will be stored in the
group named in @code{gnus-group-split-default-catch-all-group}, unless
some group has @var{split-spec} set to @code{catch-all}, in which case
-that group is used as the catch-all group. Note that, in this case,
-there's no cross-posting, as a @code{|} fancy split encloses the
-@code{&} split and the catch-all group.
+that group is used as the catch-all group. Even though this variable is
+often used just to name a group, it may also be set to an arbitrarily
+complex fancy split (after all, a group name is a fancy split), and this
+may be useful to split mail that doesn't go to any mailing list to
+personal mail folders. Note that this fancy split is added as the last
+element of a @code{|} split list that also contains a @code{&} split
+with the rules extracted from group parameters.
It's time for an example. Assume the following group parameters have
been defined:
@var{groups} may be a regular expression or a list of group names whose
parameters will be scanned to generate the output split.
@var{no-crosspost} can be used to disable cross-posting; in this case, a
-single @code{|} split will be output. @var{catch-all} may be the name
-of a group to be used as the default catch-all group. If
-@var{catch-all} is @code{nil}, or if @var{split-regexp} matches the
+single @code{|} split will be output. @var{catch-all} is the fallback
+fancy split, used like @var{gnus-group-split-default-catch-all-group}.
+If @var{catch-all} is @code{nil}, or if @var{split-regexp} matches the
empty string in any selected group, no catch-all split will be issued.
Otherwise, if some group has @var{split-spec} set to @code{catch-all},
this group will override the value of the @var{catch-all} argument.
Unfortunately, scanning all groups and their parameters can be quite
slow, especially considering that it has to be done for every message.
But don't despair! The function @code{gnus-group-split-setup} can be
-used to select @code{gnus-group-split} in a much more efficient way. It
+used to enable @code{gnus-group-split} in a much more efficient way. It
sets @code{nnmail-split-methods} to @code{nnmail-split-fancy} and sets
@code{nnmail-split-fancy} to the split produced by
@code{gnus-group-split-fancy}. Thus, the group parameters are only
If @var{auto-update} is non-@code{nil}, @code{gnus-group-split-update}
will be added to @code{nnmail-pre-get-new-mail-hook}, so you won't ever
have to worry about updating @code{nnmail-split-fancy} again. If you
-don't omit @var{catch-all} (it's optional),
+don't omit @var{catch-all} (it's optional, equivalent to @code{nil}),
@code{gnus-group-split-default-catch-all-group} will be set to its
value.
Go to the group buffer.
@item
-Type `G f' and give the path to the mbox file when prompted to create an
+Type @kbd{G f} and give the path to the mbox file when prompted to create an
@code{nndoc} group from the mbox file (@pxref{Foreign Groups}).
@item
-Type `SPACE' to enter the newly created group.
+Type @key{SPC} to enter the newly created group.
@item
-Type `M P b' to process-mark all articles in this group's buffer
+Type @kbd{M P b} to process-mark all articles in this group's buffer
(@pxref{Setting Process Marks}).
@item
-Type `B r' to respool all the process-marked articles, and answer
+Type @kbd{B r} to respool all the process-marked articles, and answer
@samp{nnml} when prompted (@pxref{Mail Group Commands}).
@end enumerate
@item nnmail-remove-tabs
@findex nnmail-remove-tabs
-Translate all @samp{TAB} characters into @samp{SPACE} characters.
+Translate all tab characters into space characters.
@item nnmail-fix-eudora-headers
@findex nnmail-fix-eudora-headers
@cindex Slashdot
@cindex nnslashdot
-Slashdot (@file{http://slashdot.org/}) is a popular news site, with
+Slashdot (@uref{http://slashdot.org/}) is a popular news site, with
lively discussion following the news articles. @code{nnslashdot} will
let you read this forum in a convenient manner.
groups as zombies. Other methods are available (@pxref{Subscription
Methods}).
-If you want to remove an old @code{nnslashdot} group, the @kbd{G DEL}
+If you want to remove an old @code{nnslashdot} group, the @kbd{G @key{DEL}}
command is the most handy tool (@pxref{Foreign Groups}).
When following up to @code{nnslashdot} comments (or posting new
@item nnslashdot-directory
@vindex nnslashdot-directory
-Where @code{nnslashdot} will store its files. The default value is
+Where @code{nnslashdot} will store its files. The default is
@samp{~/News/slashdot/}.
@item nnslashdot-active-url
@vindex nnslashdot-active-url
-The @sc{url} format string that will be used to fetch the information on
-news articles and comments. The default is
+The @sc{url} format string that will be used to fetch the information on
+news articles and comments. Default:
@samp{http://slashdot.org/search.pl?section=&min=%d}.
@item nnslashdot-comments-url
@cindex nnultimate
@cindex Ultimate Bulletin Board
-The Ultimate Bulletin Board (@file{http://www.ultimatebb.com/}) is
+The Ultimate Bulletin Board (@uref{http://www.ultimatebb.com/}) is
probably the most popular Web bulletin board system used. It has a
quite regular and nice interface, and it's possible to get the
information Gnus needs to keep groups updated.
The easiest way to get started with @code{nnultimate} is to say
-something like the following in the group buffer: @kbd{B nnultimate RET
-http://www.tcj.com/messboard/ubbcgi/ RET}. (Substitute the @sc{url}
+something like the following in the group buffer: @kbd{B nnultimate @key{RET}
+http://www.tcj.com/messboard/ubbcgi/ @key{RET}}. (Substitute the @sc{url}
(not including @samp{Ultimate.cgi} or the like at the end) for a forum
you're interested in; there's quite a list of them on the Ultimate web
site.) Then subscribe to the groups you're interested in from the
@cindex Web Archive
Some mailing lists only have archives on Web servers, such as
-@file{http://www.egroups.com/} and
-@file{http://www.mail-archive.com/}. It has a quite regular and nice
+@uref{http://www.egroups.com/} and
+@uref{http://www.mail-archive.com/}. It has a quite regular and nice
interface, and it's possible to get the information Gnus needs to keep
groups updated.
The easiest way to get started with @code{nnwarchive} is to say
something like the following in the group buffer: @kbd{M-x
-gnus-group-make-warchive-group RET an_egroup RET egroups RET
-www.egroups.com RET your@@email.address RET}. (Substitute the
+gnus-group-make-warchive-group @key{RET} an_egroup @key{RET} egroups @key{RET}
+www.egroups.com @key{RET} your@@email.address @key{RET}}. (Substitute the
@sc{an_egroup} with the mailing list you subscribed, the
@sc{your@@email.address} with your email address.), or to browse the
-backend by @kbd{B nnwarchive RET mail-archive RET}.
+backend by @kbd{B nnwarchive @key{RET} mail-archive @key{RET}}.
The following @code{nnwarchive} variables can be altered:
@table @kbd
@item G s b
-@kindex G s b (Group)
+@kindex G s b @r{(Group)}
@findex gnus-group-brew-soup
Pack all unread articles in the current group
(@code{gnus-group-brew-soup}). This command understands the
process/prefix convention.
@item G s w
-@kindex G s w (Group)
+@kindex G s w @r{(Group)}
@findex gnus-soup-save-areas
Save all @sc{soup} data files (@code{gnus-soup-save-areas}).
@item G s s
-@kindex G s s (Group)
+@kindex G s s @r{(Group)}
@findex gnus-soup-send-replies
Send all replies from the replies packet
(@code{gnus-soup-send-replies}).
@item G s p
-@kindex G s p (Group)
+@kindex G s p @r{(Group)}
@findex gnus-soup-pack-packet
Pack all files into a @sc{soup} packet (@code{gnus-soup-pack-packet}).
@item G s r
-@kindex G s r (Group)
+@kindex G s r @r{(Group)}
@findex nnsoup-pack-replies
Pack all replies into a replies packet (@code{nnsoup-pack-replies}).
@item O s
-@kindex O s (Summary)
+@kindex O s @r{(Summary)}
@findex gnus-soup-add-article
This summary-mode command adds the current article to a @sc{soup} packet
(@code{gnus-soup-add-article}). It understands the process/prefix
@lisp
(setq gnus-post-method
- '(nngateway "mail2news@@replay.com"
- (nngateway-header-transformation
- nngateway-mail2news-header-transformation)))
+ '(nngateway
+ "mail2news@@replay.com"
+ (nngateway-header-transformation
+ nngateway-mail2news-header-transformation)))
@end lisp
@end table
@cindex nnimap
@cindex @sc{imap}
-@sc{imap} is a network protocol for reading mail (or news, or ...),
-think of it as a modernized @sc{nntp}. Connecting to a @sc{imap} server
-is much similar to connecting to a news server, you just specify the
-network address of the server.
+@sc{imap} is a network protocol for reading mail (or news, or@dots{}),
+think of it as a modernized @sc{nntp}. Connecting to a @sc{imap}
+server is much similar to connecting to a news server, you just
+specify the network address of the server.
+
+@sc{imap} has two properties. First, @sc{imap} can do everything that
+POP can, it can hence be viewed as POP++. Secondly, @sc{imap} is a
+mail storage protocol, similar to @sc{nntp} being a news storage
+protocol. (@sc{imap} offers more features than @sc{nntp} because news
+is more or less read-only whereas mail is read-write.)
+
+If you want to use @sc{imap} as POP++, use an imap entry in
+mail-sources. With this, Gnus will fetch mails from the @sc{imap}
+server and store them on the local disk. This is not the usage
+described in this section. @xref{Mail Sources}.
+
+If you want to use @sc{imap} as a mail storage protocol, use an nnimap
+entry in gnus-secondary-select-methods. With this, Gnus will
+manipulate mails stored on the @sc{imap} server. This is the kind of
+usage explained in this section.
A server configuration in @code{~/.gnus} with a few @sc{imap} servers
might look something like this:
@itemize @bullet
@item
-@dfn{gssapi:} Connect with GSSAPI (usually kerberos 5). Require the
-@samp{imtest} program.
+@dfn{gssapi:} Connect with GSSAPI (usually Kerberos 5). Requires the
+@command{imtest} program.
@item
-@dfn{kerberos4:} Connect with kerberos 4. Require the @samp{imtest} program.
+@dfn{kerberos4:} Connect with Kerberos 4. Requires the
+@command{imtest} program.
@item
@dfn{starttls:} Connect via the STARTTLS extension (similar to
-SSL). Require the external library @samp{starttls.el} and program
-@samp{starttls}.
+SSL)@. Requires the library @file{starttls.el} and program
+@command{starttls}.
@item
-@dfn{ssl:} Connect through SSL. Require OpenSSL (the
-program @samp{openssl}) or SSLeay (@samp{s_client}).
+@dfn{ssl:} Connect through SSL@. Requires OpenSSL (the
+program @command{openssl}) or SSLeay (@command{s_client}).
@item
-@dfn{shell:} Use a shell command to start IMAP connection.
+@dfn{shell:} Use a shell command to start an @sc{imap} connection.
@item
@dfn{network:} Plain, TCP/IP network connection.
@end itemize
@vindex imap-kerberos4-program
-The @samp{imtest} program is shipped with Cyrus IMAPD, nnimap support
-both @samp{imtest} version 1.5.x and version 1.6.x. The variable
-@code{imap-kerberos4-program} contain parameters to pass to the imtest
-program.
+The @command{imtest} program is shipped with Cyrus IMAPD@. Nnimap supports
+both @command{imtest} version 1.5.x and version 1.6.x. The variable
+@code{imap-kerberos4-program} contains parameters to pass to the
+@command{imtest} program.
@vindex imap-ssl-program
For SSL connections, the OpenSSL program is available from
-@file{http://www.openssl.org/}. OpenSSL was formerly known as SSLeay,
-and nnimap support it too - altough the most recent versions of
+@uref{http://www.openssl.org/}. OpenSSL was formerly known as SSLeay,
+and nnimap supports it too. However, the most recent versions of
SSLeay, 0.9.x, are known to have serious bugs making it
-useless. Earlier versions, especially 0.8.x, of SSLeay are known to
-work. The variable @code{imap-ssl-program} contain parameters to pass
+useless. Earlier versions, especially 0.8.x, of SSLeay are known to
+work. The variable @code{imap-ssl-program} contains parameters to pass
to OpenSSL/SSLeay.
@vindex imap-shell-program
@vindex imap-shell-host
-For IMAP connections using the @code{shell} stream, the variable
-@code{imap-shell-program} specify what program to call.
+For @sc{imap} connections using the @code{shell} stream, the variable
+@code{imap-shell-program} specifies what program to call.
@item nnimap-authenticator
@vindex nnimap-authenticator
The authenticator used to connect to the server. By default, nnimap
-will use the most secure authenticator your server is capable of.
+will use the most secure authenticator your server supports.
Example server specification:
@itemize @bullet
@item
-@dfn{gssapi:} GSSAPI (usually kerberos 5) authentication. Require
-external program @code{imtest}.
+@dfn{gssapi:} GSSAPI (usually Kerberos 5) authentication. Requires the
+external program @command{imtest}.
@item
-@dfn{kerberos4:} Kerberos authentication. Require external program
-@code{imtest}.
+@dfn{kerberos4:} Kerberos authentication. Requires the external program
+@command{imtest}.
@item
-@dfn{digest-md5:} Encrypted username/password via DIGEST-MD5. Require
-external library @code{digest-md5.el}.
+@dfn{digest-md5:} Encrypted username/password via DIGEST-MD5@. Requires
+external library @command{digest-md5.el}.
@item
@dfn{cram-md5:} Encrypted username/password via CRAM-MD5.
@item
@dfn{login:} Plain-text username/password via LOGIN.
@item
-@dfn{anonymous:} Login as `anonymous', supplying your emailadress as password.
+@dfn{anonymous:} Login as `anonymous', supplying your email address as
+password.
@end itemize
@item nnimap-expunge-on-close
@cindex Expunging
@vindex nnimap-expunge-on-close
-Unlike Parmenides the @sc{imap} designers has decided that things that
-doesn't exist actually does exist. More specifically, @sc{imap} has
-this concept of marking articles @code{Deleted} which doesn't actually
+Unlike Parmenides, the @sc{imap} designers decided that things that
+don't exist actually do exist. More specifically, @sc{imap} has
+the concept of marking articles @code{Deleted} which doesn't actually
delete them, and this (marking them @code{Deleted}, that is) is what
-nnimap does when you delete a article in Gnus (with @kbd{G DEL} or
-similair).
+nnimap does when you delete a article in Gnus (with @kbd{G @key{DEL}} or
+similar).
Since the articles aren't really removed when we mark them with the
@code{Deleted} flag we'll need a way to actually delete them. Feel like
@table @code
@item always
-The default behaviour, delete all articles marked as "Deleted" when
+The default behavior, delete all articles marked as "Deleted" when
closing a mailbox.
@item never
Never actually delete articles. Currently there is no way of showing
@subsubsection Splitting in @sc{imap}
@cindex splitting imap mail
-Splitting is something Gnus users has loved and used for years, and now
-the rest of the world is catching up. Yeah, dream on, not many
-@sc{imap} server has server side splitting and those that have splitting
+Splitting is something Gnus users have loved and used for years, and now
+the rest of the world is catching up. Yeah, dream on; not many
+@sc{imap} servers have server side splitting and those that have splitting
seem to use some non-standard protocol. This means that @sc{imap}
-support for Gnus has to do it's own splitting.
+support for Gnus has to do its own splitting.
And it does.
@vindex nnimap-split-inbox
A string or a list of strings that gives the name(s) of @sc{imap}
-mailboxes to split from. Defaults to nil, which means that splitting is
-disabled!
+mailboxes to split from. Defaults to @code{nil}, which means that
+splitting is disabled!
@lisp
(setq nnimap-split-inbox
@lisp
(setq nnimap-split-rule
- '(("INBOX.nnimap" "^Sender: owner-nnimap@@vic20.globalcom.se")
+ '(("INBOX.nnimap"
+ "^Sender: owner-nnimap@@vic20.globalcom.se")
("INBOX.junk" "^Subject:.*MAKE MONEY")
("INBOX.private" "")))
@end lisp
INBOX.nnimap, all articles containing MAKE MONEY in the Subject: line
into INBOX.spam and everything else in INBOX.private.
-The first string may contain `\\1' forms, like the ones used by
+The first string may contain @samp{\\@var{digit}} forms, like the ones used by
replace-match to insert sub-expressions from the matched text. For
instance:
Nnmail users might recollect that the last regexp had to be empty to
match all articles (like in the example above). This is not required in
nnimap. Articles not matching any of the regexps will not be moved out
-of your inbox. (This might might affect performance if you keep lots of
+of your inbox. (This might affect performance if you keep lots of
unread articles in your inbox, since the splitting code would go over
them every time you fetch new mail.)
These rules are processed from the beginning of the alist toward the
-end. The first rule to make a match will "win", unless you have
-crossposting enabled. In that case, all matching rules will "win".
+end. The first rule to make a match will `win', unless you have
+crossposting enabled. In that case, all matching rules will `win'.
This variable can also have a function as its value, the function will
-be called with the headers narrowed and should return a group where it
-thinks the article should be splitted to. See @code{nnimap-split-fancy}.
+be called with the headers narrowed and should return a group to where
+it thinks the article should be split. See @code{nnimap-split-fancy}.
-The splitting code tries to create mailboxes if it need too.
+The splitting code tries to create mailboxes if it needs too.
To allow for different split rules on different virtual servers, and
even different split rules in different inboxes on the same server,
-the syntax of this variable have been extended along the lines of:
+the syntax of this variable has been extended along the lines of:
@lisp
(setq nnimap-split-rule
@vindex nnimap-split-predicate
Mail matching this predicate in @code{nnimap-split-inbox} will be
-splitted, it is a string and the default is @samp{UNSEEN UNDELETED}.
+split; it is a string and the default is @samp{UNSEEN UNDELETED}.
This might be useful if you use another @sc{imap} client to read mail in
your inbox but would like Gnus to split all articles in the inbox
you. Oh joy! Now you can grind any @sc{nntp} server down to a halt
with useless requests! Oh happiness!
-@kindex G k (Group)
+@kindex G k @r{(Group)}
To create a kibozed group, use the @kbd{G k} command in the group
buffer.
Predicates of @code{high} or @code{low} download articles in respect of
their scores in relationship to @code{gnus-agent-high-score} and
-@code{gnus-agent-low-score} as descibed below.
+@code{gnus-agent-low-score} as described below.
To gain even finer control of what is to be regarded eligible for
download a predicate can consist of a number of predicates with logical
@code{gnus-agent} has been loaded via @code{(gnus-agentize)})
@lisp
-(defvar gnus-category-predicate-alist
+(setq gnus-category-predicate-alist
(append gnus-category-predicate-alist
'((old . my-article-old-p))))
@end lisp
If/when using something like the above, be aware that there are many
misconfigured systems/mailers out there and so an article's date is not
always a reliable indication of when it was posted. Hell, some people
-just don't give a damm.
+just don't give a damn.
The above predicates apply to *all* the groups which belong to the
category. However, if you wish to have a specific predicate for an
@item
Use @code{normal} score files
-If you dont want to maintain two sets of scoring rules for a group, and
+If you don't want to maintain two sets of scoring rules for a group, and
your desired @code{downloading} criteria for a group are the same as your
@code{reading} criteria then you can tell the agent to refer to your
@code{normal} score files when deciding what to download.
These directives in either the category definition or a group's
parameters will cause the agent to read in all the applicable score
-files for a group, *filtering out* those those sections that do not
+files for a group, *filtering out* those sections that do not
relate to one of the permitted subset of scoring keywords.
@itemize @bullet
@node Agent and IMAP
@subsection Agent and IMAP
-The Agent work with any Gnus backend, including nnimap. However, since
-there are some conceptual differences between NNTP and IMAP, this
-section (should) provide you with some information to make Gnus Agent
-work smoother as a IMAP Disconnected Mode client.
+The Agent work with any Gnus backend, including nnimap. However,
+since there are some conceptual differences between @sc{nntp} and
+@sc{imap}, this section (should) provide you with some information to
+make Gnus Agent work smoother as a @sc{imap} Disconnected Mode client.
The first thing to keep in mind is that all flags (read, ticked, etc)
-are kept on the IMAP server, rather than in @code{.newsrc} as is the
+are kept on the @sc{imap} server, rather than in @file{.newsrc} as is the
case for nntp. Thus Gnus need to remember flag changes when
disconnected, and synchronize these flags when you plug back in.
Gnus keep track of flag changes when reading nnimap groups under the
Agent by default. When you plug back in, by default Gnus will check if
-you have any changed any flags and ask if you wish to synchronize theese
-with the server. This behaviour is customizable with
+you have any changed any flags and ask if you wish to synchronize these
+with the server. This behavior is customizable with
@code{gnus-agent-synchronize-flags}.
@vindex gnus-agent-synchronize-flags
in the group buffer by default.
Some things are currently not implemented in the Agent that you'd might
-expect from a disconnected IMAP client, including:
+expect from a disconnected @sc{imap} client, including:
@itemize @bullet
@table @kbd
@item V s
-@kindex V s (Summary)
+@kindex V s @r{(Summary)}
@findex gnus-summary-set-score
Set the score of the current article (@code{gnus-summary-set-score}).
@item V S
-@kindex V S (Summary)
+@kindex V S @r{(Summary)}
@findex gnus-summary-current-score
Display the score of the current article
(@code{gnus-summary-current-score}).
@item V t
-@kindex V t (Summary)
+@kindex V t @r{(Summary)}
@findex gnus-score-find-trace
Display all score rules that have been used on the current article
(@code{gnus-score-find-trace}).
@item V R
-@kindex V R (Summary)
+@kindex V R @r{(Summary)}
@findex gnus-summary-rescore
Run the current summary through the scoring process
(@code{gnus-summary-rescore}). This might be useful if you're playing
effect you're having.
@item V c
-@kindex V c (Summary)
+@kindex V c @r{(Summary)}
@findex gnus-score-change-score-file
Make a different score file the current
(@code{gnus-score-change-score-file}).
@item V e
-@kindex V e (Summary)
+@kindex V e @r{(Summary)}
@findex gnus-score-edit-current-scores
Edit the current score file (@code{gnus-score-edit-current-scores}).
You will be popped into a @code{gnus-score-mode} buffer (@pxref{Score
File Editing}).
@item V f
-@kindex V f (Summary)
+@kindex V f @r{(Summary)}
@findex gnus-score-edit-file
Edit a score file and make this score file the current one
(@code{gnus-score-edit-file}).
@item V F
-@kindex V F (Summary)
+@kindex V F @r{(Summary)}
@findex gnus-score-flush-cache
Flush the score cache (@code{gnus-score-flush-cache}). This is useful
after editing score files.
@item V C
-@kindex V C (Summary)
+@kindex V C @r{(Summary)}
@findex gnus-score-customize
Customize a score file in a visually pleasing manner
(@code{gnus-score-customize}).
@table @kbd
@item V m
-@kindex V m (Summary)
+@kindex V m @r{(Summary)}
@findex gnus-score-set-mark-below
Prompt for a score, and mark all articles with a score below this as
read (@code{gnus-score-set-mark-below}).
@item V x
-@kindex V x (Summary)
+@kindex V x @r{(Summary)}
@findex gnus-score-set-expunge-below
Prompt for a score, and add a score rule to the current score file to
expunge all articles below this score
@table @kbd
@item W f
-@kindex W f (Group)
+@kindex W f @r{(Group)}
@findex gnus-score-flush-cache
Gnus maintains a cache of score alists to avoid having to reload them
all the time. This command will flush the cache
For example, to do hierarchical scoring but use a non-server-specific
overall score file, you could use the value
@example
-(list (lambda (group) ("all.SCORE")) 'gnus-score-find-hierarchical)
+(list (lambda (group) ("all.SCORE"))
+ 'gnus-score-find-hierarchical)
@end example
@item gnus-score-expiry-days
might look something like this:
@lisp
-(defvar gnus-default-adaptive-score-alist
+(setq gnus-default-adaptive-score-alist
'((gnus-unread-mark)
(gnus-ticked-mark (from 4))
(gnus-dormant-mark (from 5))
@enumerate
@item
@code{(@var{regexp} @var{file-name})}. If the @var{regexp} matches the
-group name, the @var{file-name} will will be used as the home score file.
+group name, the @var{file-name} will be used as the home score file.
@item
A function. If the function returns non-nil, the result will be used as
@vindex message-sent-hook
These two functions are both primarily meant to be used in hooks like
-@code{message-sent-hook}.
+@code{message-sent-hook}, like this:
+@lisp
+(add-hook 'message-sent-hook 'gnus-score-followup-thread)
+@end lisp
+
If you look closely at your own @code{Message-ID}, you'll notice that
the first two or three characters are always the same. Here's two of
@lisp
("references"
- ("<x6[0-9a-z]+\\.fsf\\(_-_\\)?@@.*eyesore.no>"
+ ("<x6[0-9a-z]+\\.fsf\\(_-_\\)?@@.*eyesore\\.no>"
1000 nil r))
@end lisp
If you want to lower the score of articles that have been crossposted to
more than, say, 3 groups:
@lisp
-("xref" ("[^:\n]+:[0-9]+ +[^:\n]+:[0-9]+ +[^:\n]+:[0-9]+" -1000 nil r))
+("xref"
+ ("[^:\n]+:[0-9]+ +[^:\n]+:[0-9]+ +[^:\n]+:[0-9]+"
+ -1000 nil r))
@end lisp
@item Matching on the body
or each score file directory. Gnus will decide by itself what score
files are applicable to which group.
-Say you want to use the score file
+To use the score file
@file{/ftp@@ftp.gnus.org:/pub/larsi/ding/score/soc.motss.SCORE} and
-all score files in the @file{/ftp@@ftp.some-where:/pub/score} directory:
+all score files in the @file{/ftp@@ftp.some-where:/pub/score} directory,
+say this:
@lisp
(setq gnus-global-score-files
@end lisp
@findex gnus-score-search-global-directories
+@noindent
Simple, eh? Directory names must end with a @samp{/}. These
directories are typically scanned only once during each Gnus session.
If you feel the need to manually re-scan the remote directories, you can
@table @kbd
@item M-k
-@kindex M-k (Summary)
+@kindex M-k @r{(Summary)}
@findex gnus-summary-edit-local-kill
Edit this group's kill file (@code{gnus-summary-edit-local-kill}).
@item M-K
-@kindex M-K (Summary)
+@kindex M-K @r{(Summary)}
@findex gnus-summary-edit-global-kill
Edit the general kill file (@code{gnus-summary-edit-global-kill}).
@end table
@table @kbd
@item M-k
-@kindex M-k (Group)
+@kindex M-k @r{(Group)}
@findex gnus-group-edit-local-kill
Edit this group's kill file (@code{gnus-group-edit-local-kill}).
@item M-K
-@kindex M-K (Group)
+@kindex M-K @r{(Group)}
@findex gnus-group-edit-global-kill
Edit the general kill file (@code{gnus-group-edit-global-kill}).
@end table
The kill to score conversion package isn't included in Gnus by default.
You can fetch it from
-@file{http://www.stud.ifi.uio.no/~larsi/ding-various/gnus-kill-to-score.el}.
+@uref{http://www.stud.ifi.uio.no/~larsi/ding-various/gnus-kill-to-score.el}.
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
To use GroupLens you must register a pseudonym with your local Better
Bit Bureau (BBB).
-@samp{http://www.cs.umn.edu/Research/GroupLens/bbb.html} is the only
+@uref{http://www.cs.umn.edu/Research/GroupLens/bbb.html} is the only
better bit in town at the moment.
Once you have registered you'll need to set a couple of variables.
* NoCeM:: How to avoid spam and other fatty foods.
* Undo:: Some actions can be undone.
* Moderation:: What to do if you're a moderator.
+* Emacs Enhancements:: There can be more pictures and stuff under
+ Emacs 21.
* XEmacs Enhancements:: There are more pictures and stuff under XEmacs.
* Fuzzy Matching:: What's the big fuzz?
* Thwarting Email Spam:: A how-to on avoiding unsolicited commercial email.
that do explicitly say so in this manual. To apply the process/prefix
convention to commands that do not use it, you can use the @kbd{M-&}
command. For instance, to mark all the articles in the group as
-expirable, you could say `M P b M-& E'.
+expirable, you could say @kbd{M P b M-& E}.
@node Interactive
file, and you want Emacs to flash lights and play a nice tune at the
same time? You can't, and you're probably perfectly happy that way.
-@kindex M-i (Summary)
+@kindex M-i @r{(Summary)}
@findex gnus-symbolic-argument
I'm not, so I've added a second prefix---the @dfn{symbolic prefix}. The
prefix key is @kbd{M-i} (@code{gnus-symbolic-argument}), and the next
may look like:
@example
-split = frame | horizontal | vertical | buffer | form
-frame = "(frame " size *split ")"
-horizontal = "(horizontal " size *split ")"
-vertical = "(vertical " size *split ")"
-buffer = "(" buffer-name " " size *[ "point" ] *[ "frame-focus"] ")"
-size = number | frame-params
-buffer-name = group | article | summary ...
+split = frame | horizontal | vertical | buffer | form
+frame = "(frame " size *split ")"
+horizontal = "(horizontal " size *split ")"
+vertical = "(vertical " size *split ")"
+buffer = "(" buf-name " " size *[ "point" ] *[ "frame-focus"] ")"
+size = number | frame-params
+buf-name = group | article | summary ...
@end example
The limitations are that the @code{frame} split can only appear as the
accomplish that, something like the following can be done:
@lisp
-(message (frame 1.0
- (if (not (buffer-live-p gnus-summary-buffer))
- (car (cdr (assoc 'group gnus-buffer-configuration)))
- (car (cdr (assoc 'summary gnus-buffer-configuration))))
- (vertical ((user-position . t) (top . 1) (left . 1)
- (name . "Message"))
- (message 1.0 point))))
+(message
+ (frame 1.0
+ (if (not (buffer-live-p gnus-summary-buffer))
+ (car (cdr (assoc 'group gnus-buffer-configuration)))
+ (car (cdr (assoc 'summary gnus-buffer-configuration))))
+ (vertical ((user-position . t) (top . 1) (left . 1)
+ (name . "Message"))
+ (message 1.0 point))))
@end lisp
@findex gnus-add-configuration
@cindex mouse
@cindex click
-Those new-fangled @dfn{mouse} contraptions is very popular with the
+Those new-fangled @dfn{mouse} contraptions are very popular with the
young, hep kids who don't want to learn the proper way to do things
these days. Why, I remember way back in the summer of '89, when I was
using Emacs on a Tops 20 system. Three hundred users on one single
Right.
@vindex gnus-carpal
-Well, you can make Gnus display bufferfuls of buttons you can click to
+Well, you can make Gnus display buffers full of buttons you can click to
do anything by setting @code{gnus-carpal} to @code{t}. Pretty simple,
really. Tell the chiropractor I sent you.
@findex gnus-undo
The undoability is provided by the @code{gnus-undo-mode} minor mode. It
is used if @code{gnus-use-undo} is non-@code{nil}, which is the
-default. The @kbd{M-C-_} key performs the @code{gnus-undo} command
+default. The @kbd{M-C-_} key performs the @code{gnus-undo}
command, which should feel kinda like the normal Emacs @code{undo}
command.
"^nnml:rec.zoofle$\\|^rec.zoofle$")
@end lisp
+@node Emacs Enhancements
+@section Emacs Enhancements
+@cindex Emacs 21
+
+Starting with version 21, Emacs is able to display pictures and stuff,
+so Gnus has taken advantage of that.
+
+Gnus-specific tool bars will be used if Tool Bar mode is on. Currently
+the group, summary and message buffers have tool bars defined.
+
+MIME image types may be displayed internally if Emacs was built with
+appropriate support (see variable @code{image-types}). `X-Face' headers
+may be rendered as images internally if you have appropriate support
+programs (@pxref{X-Face}). You can play sounds internally if Emacs was
+built with suitable audio support; otherwise Gnus will attempt to play
+sounds externally.
+
+@vindex gnus-treat-display-smileys
+A simplified version of the XEmacs Smiley support for @dfn{emoticons}
+(@pxref{Smileys}) is available on graphical displays under the control
+of @code{gnus-treat-display-smileys}. Text `smiley' faces---@samp{:-)},
+@samp{:-/}, @samp{:-(} and the like---are mapped to pictures which are
+displayed instead. The mapping is controlled by a list of regexps
+@vindex smiley-regexp-alist
+@code{smiley-regexp-alist} mapping matched text to image file names. It
+contains matches for `smiley', `wry' and `frowny' by default.
+
+There is currently no Emacs support for `Picons' (@pxref{Picons}), but
+there is no reason why it couldn't be added.
@node XEmacs Enhancements
@section XEmacs Enhancements
@end iflatex
@end iftex
-So... You want to slow down your news reader even more! This is a
+So@dots{} You want to slow down your news reader even more! This is a
good way to do so. Its also a great way to impress people staring
over your shoulder as you read news.
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 @*
-@file{http://www.cs.indiana.edu/picons/search.html}.
+@uref{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 @*
-@file{http://www.cs.indiana.edu/picons/ftp/index.html}. Gnus expects
+@uref{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}.
@item gnus-picons-piconsearch-url
@vindex gnus-picons-piconsearch-url
The URL for the web picons search engine. The only currently known
-engine is @file{http://www.cs.indiana.edu:800/piconsearch}. To
+engine is @uref{http://www.cs.indiana.edu:800/piconsearch}. To
workaround network delays, icons will be fetched in the background. If
this is @code{nil} 'the default), then picons are fetched from local
database indicated by @code{gnus-picons-database}.
has only an effect if `gnus-picons-display-where' has value `article'.
If @code{nil}, display the picons in the @code{From} and
-@code{Newsgroups} lines. This is the defailt.
+@code{Newsgroups} lines. This is the default.
@item gnus-picons-clear-cache-on-shutdown
@vindex gnus-picons-clear-cache-on-shutdown
put it in your @code{From} header of all your news articles. (I've
chosen @samp{larsi@@trym.ifi.uio.no}, but for many addresses on the form
@samp{larsi+usenet@@ifi.uio.no} will be a better choice. Ask your
-sysadm whether your sendmail installation accepts keywords in the local
+sysadmin whether your sendmail installation accepts keywords in the local
part of the mail address.)
@lisp
citizen, you can even send off complaints to the proper authorities on
each unsolicited commercial email---at your leisure.
-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>}.
-Since most e-mail spam is sent automatically, this may reconcile the
-cosmic balance somewhat.
+If you are also a lazy net citizen, you will probably prefer
+complaining automatically with the @file{gnus-junk.el} package,
+available as free software at @*
+@uref{http://stud2.tuwien.ac.at/~e9426626/gnus-junk.html}. Since most
+e-mail spam is sent automatically, this may reconcile the cosmic
+balance somewhat.
This works for me. It allows people an easy way to contact me (they can
just press @kbd{r} in the usual way), and I'm not bothered at all with
@samp{:} in a group name, which is normally used to delimit method and
group).
-IMAP users might want to allow @samp{/} in group names though.
+@sc{imap} users might want to allow @samp{/} in group names though.
@end table
If you want to investigate the person responsible for this outrage,
you can point your (feh!) web browser to
-@file{http://quimby.gnus.org/~larsi/}. This is also the primary
+@uref{http://quimby.gnus.org/}. 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.
* Gnus Development:: How Gnus is developed.
* Contributors:: Oodles of people.
* New Features:: Pointers to some of the new stuff in Gnus.
-* Newest Features:: Features so new that they haven't been written yet.
@end menu
introduced may confuse casual users. New features are frequently
introduced, fiddled with, and judged to be found wanting, and then
either discarded or totally rewritten. People reading the mailing list
-usually keep up with these rapid changes, whille people on the newsgroup
+usually keep up with these rapid changes, while people on the newsgroup
can't be assumed to do so.
@menu
* 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.
+* September Gnus:: The Thing Formally Known As Gnus 5.2/5.3.
* Red Gnus:: Third time best---Gnus 5.4/5.5.
* Quassia Gnus:: Two times two is four, or Gnus 5.6/5.7.
+* Pterodactyl Gnus:: Pentad also starts with P, AKA Gnus 5.8/5.9.
@end menu
These lists are, of course, just @emph{short} overviews of the
@emph{most} important new features. No, really. There are tons more.
Yes, we have feeping creaturism in full effect.
-
@node ding Gnus
@subsubsection (ding) Gnus
limit.
@item
- @kbd{M-RET} is a new Message command for breaking cited text.
+ @kbd{M-@key{RET}} is a new Message command for breaking cited text.
@item
@samp{\\1}-expressions are now valid in @code{nnmail-split-methods}.
@end itemize
+@node Pterodactyl Gnus
+@subsubsection Pterodactyl Gnus
-@node Newest Features
-@subsection Newest Features
-@cindex todo
-
-Also known as the @dfn{todo list}. Sure to be implemented before the
-next millennium.
-
-Be afraid. Be very afraid.
-
-(That a feature appears in this list doesn't necessarily mean that I've
-decided to actually implement it. It just means that I think it sounds
-interesting.)
-
-(Yes, this is the actual, up-to-the-second todo list.)
+New features in Gnus 5.8:
@itemize @bullet
-@item
- I would like the zombie-page to contain an URL to the source of the
-latest version of gnus or some explanation on where to find it.
+@item The mail-fetching functions have changed. See the manual for the
+many details. In particular, all procmail fetching variables are gone.
-@item
- A way to continue editing the latest Message composition.
+If you used procmail like in
-@item
- http://www.sonicnet.com/feature/ari3/
+@lisp
+(setq nnmail-use-procmail t)
+(setq nnmail-spool-file 'procmail)
+(setq nnmail-procmail-directory "~/mail/incoming/")
+(setq nnmail-procmail-suffix "\\.in")
+@end lisp
-@item
- facep is not declared.
+this now has changed to
-@item
- Include a section in the manual on why the number of articles
-isn't the same in the group buffer and on the SPC prompt.
+@lisp
+(setq mail-sources
+ '((directory :path "~/mail/incoming/"
+ :suffix ".in")))
+@end lisp
-@item
- Interacting with rmail fcc isn't easy.
+More information is available in the info doc at Select Methods ->
+Getting Mail -> Mail Sources
-@item
-@example
- Hypermail:
-<URL:http://www.falch.no/people/pepper/DSSSL-Lite/archives/>
-<URL:http://www.eit.com/software/hypermail/hypermail.html>
-<URL:http://homer.ncm.com/>
-<URL:http://www.yahoo.com/Computers_and_Internet/Internet/World_Wide_Web/HTML_Converters/>
-http://www.uwsg.indiana.edu/hypermail/linux/kernel/9610/index.html
-<URL:http://union.ncsa.uiuc.edu/HyperNews/get/www/html/converters.html>
-http://www.miranova.com/gnus-list/
+@item Gnus is now a MIME-capable reader. This affects many parts of
+Gnus, and adds a slew of new commands. See the manual for details.
-@end example
+@item Gnus has also been multilingualized. This also affects too
+many parts of Gnus to summarize here, and adds many new variables.
-@item
-@samp{^-- } is made into - in LaTeX.
+@item @code{gnus-auto-select-first} can now be a function to be
+called to position point.
-@item
- gnus-kill is much slower than it was in GNUS 4.1.3.
+@item The user can now decide which extra headers should be included in
+summary buffers and NOV files.
-@item
- when expunging articles on low score, the sparse nodes keep hanging on?
-@item
- starting the first time seems to hang Gnus on some systems. Does
-NEWGROUPS answer too fast?
-@item
- nndir doesn't read gzipped files.
-@item
- FAQ doesn't have an up node?
-@item
- when moving mail from a procmail spool to the crash-box,
-the crash-box is only appropriate to one specific group.
-@item
- `t' `t' makes X-Faces disappear.
-@item
- nnmh-be-safe means that crossposted articles will
-be marked as unread.
-@item
- Orphan score entries don't show on "V t" score trace
-@item
- when clearing out data, the cache data should also be reset.
-@item
- rewrite gnus-summary-limit-children to be non-recursive
-to avoid exceeding lisp nesting on huge groups.
-@item
- expunged articles are counted when computing scores.
-@item
- implement gnus-batch-brew-soup
-@item
- ticked articles aren't easy to read in pick mode -- `n' and
-stuff just skips past them. Read articles are the same.
-@item
- topics that contain just groups with ticked
-articles aren't displayed.
-@item
- nndoc should always allocate unique Message-IDs.
-@item
- If there are mail groups the first time you use Gnus, Gnus'll
-make the mail groups killed.
-@item
- no "no news is good news" when using topics.
-@item
- when doing crosspost marking, the cache has to be consulted
-and articles have to be removed.
-@item
- nnweb should fetch complete articles when they are split into several
-parts.
-@item
- scoring on head immediate doesn't work.
-@item
- finding short score file names takes forever.
-@item
- canceling articles in foreign groups.
-@item
- nntp-open-rlogin no longer works.
-@item
- C-u C-x C-s (Summary) switches to the group buffer.
-@item
- move nnmail-split-history out to the backends.
-@item
- nnweb doesn't work properly.
-@item
- using a virtual server name as `gnus-select-method' doesn't work?
-@item
- when killing/yanking a group from one topic to another in a slave, the
-master will yank it first to one topic and then add it to another.
-Perhaps.
+@item @code{gnus-article-display-hook} has been removed. Instead, a number
+of variables starting with @code{gnus-treat-} have been added.
-@item
- warn user about `=' redirection of a group in the active file?
-@item
- take over the XEmacs menubar and offer a toggle between the XEmacs
-bar and the Gnus bar.
-@item
-@example
- push active file and NOV file parsing down into C code.
-`(canonize-message-id id)'
-`(mail-parent-message-id references n)'
-`(parse-news-nov-line &optional dependency-hashtb)'
-`(parse-news-nov-region beg end &optional dependency-hashtb fullp)'
-`(parse-news-active-region beg end hashtb)'
+@item The Gnus posting styles have been redone again and now works in a
+subtly different manner.
-@end example
+@item New web-based backends have been added: @code{nnslashdot},
+@code{nnwarchive} and @code{nnultimate}. nnweb has been revamped,
+again, to keep up with ever-changing layouts.
-@item
- nnml .overview directory with splits.
-@item
- asynchronous cache
-@item
- postponed commands.
-@item
- the selected article show have its Subject displayed in its summary line.
-@item
- when entering groups, get the real number of unread articles from
-the server?
-@item
- sort after gathering threads -- make false roots have the
-headers of the oldest orphan with a 0 article number?
-@item
- nndoc groups should inherit the score files of their parents? Also
-inherit copy prompts and save files.
-@item
- command to start up Gnus (if not running) and enter a mail mode buffer.
-@item
- allow editing the group description from the group buffer
-for backends that support that.
-@item
-gnus-hide,show-all-topics
-@item
- groups and sub-topics should be allowed to mingle inside each topic,
-and not just list all subtopics at the end.
-@item
- a command to remove all read articles that are not needed to connect
-threads -- `gnus-summary-limit-to-sparse-unread'?
-@item
- a variable to turn off limiting/cutting of threads in the tree buffer.
-@item
- a variable to limit how many files are uudecoded.
-@item
- add zombie groups to a special "New Groups" topic.
-@item
- server mode command: close/open all connections
-@item
- put a file date in gnus-score-alist and check whether the file
-has been changed before using it.
-@item
- on exit from a digest group, go to the next article in the parent group.
-@item
- hide (sub)threads with low score.
-@item
- when expiring, remove all marks from expired articles.
-@item
- gnus-summary-limit-to-body
-@item
- a regexp alist that says what level groups are to be subscribed
-on. Eg. -- `(("nnml:" . 1))'.
-@item
- easier interface to nnkiboze to create ephemeral groups that
-contain groups that match a regexp.
-@item
- allow newlines in <URL:> urls, but remove them before using
-the URL.
-@item
- If there is no From line, the mail backends should fudge one from the
-"From " line.
-@item
- fuzzy simplifying should strip all non-alpha-numerical info
-from subject lines.
-@item
- gnus-soup-brew-soup-with-high-scores.
-@item
- nntp-ping-before-connect
-@item
- command to check whether NOV is evil. "list overview.fmt".
-@item
- when entering a group, Gnus should look through the score
-files very early for `local' atoms and set those local variables.
-@item
- message annotations.
-@item
- topics are always yanked before groups, and that's not good.
-@item
- (set-extent-property extent 'help-echo "String to display in minibuf")
-to display help in the minibuffer on buttons under XEmacs.
-@item
- allow group line format spec to say how many articles there
-are in the cache.
-@item
- AUTHINFO GENERIC
-@item
- `run-with-idle-timer' in gnus-demon.
-@item
- stop using invisible text properties and start using overlays instead
-@item
- C-c C-f C-e to add an Expires header.
-@item
- go from one group to the next; everything is expunged; go to the
-next group instead of going to the group buffer.
-@item
- gnus-renumber-cache -- to renumber the cache using "low" numbers.
-@item
- record topic changes in the dribble buffer.
-@item
- `nnfolder-generate-active-file' should look at the folders it
-finds and generate proper active ranges.
-@item
- nneething-look-in-files-for-article-heads variable to control
-whether nneething should sniff all files in the directories.
-@item
- gnus-fetch-article -- start Gnus, enter group, display article
-@item
- gnus-dont-move-articles-to-same-group variable when respooling.
-@item
- when messages are crossposted between several auto-expirable groups,
-articles aren't properly marked as expirable.
-@item
- nneething should allow deletion/moving.
-@item
- TAB on the last button should go to the first button.
-@item
- if the car of an element in `mail-split-methods' is a function,
-and the function returns non-nil, use that as the name of the group(s) to
-save mail in.
-@item
- command for listing all score files that have been applied.
-@item
- a command in the article buffer to return to `summary' config.
-@item
- `gnus-always-post-using-current-server' -- variable to override
-`C-c C-c' when posting.
-@item
- nnmail-group-spool-alist -- says where each group should use
-as a spool file.
-@item
- when an article is crossposted to an auto-expirable group, the article
-should be marker as expirable.
-@item
- article mode command/menu for "send region as URL to browser".
-@item
- on errors, jump to info nodes that explain the error. For instance,
-on invalid From headers, or on error messages from the nntp server.
-@item
- when gathering threads, make the article that has no "Re: " the parent.
-Also consult Date headers.
-@item
- a token in splits to call shrink-window-if-larger-than-buffer
-@item
- `1 0 A M' to do matches on the active hashtb.
-@item
- duplicates -- command to remove Gnus-Warning header, use the read
-Message-ID, delete the "original".
-@item
- when replying to several messages at once, put the "other" message-ids
-into a See-Also header.
-@item
- support setext: URL:http://www.bsdi.com/setext/
-@item
- support ProleText: <URL:http://proletext.clari.net/prole/proletext.html>
-@item
- when browsing a foreign server, the groups that are already subscribed
-should be listed as such and not as "K".
-@item
- generate font names dynamically.
-@item
- score file mode auto-alist.
-@item
- allow nndoc to change/add/delete things from documents. Implement
-methods for each format for adding an article to the document.
-@item
- `gnus-fetch-old-headers' `all' value to incorporate
-absolutely all headers there is.
-@item
- function like `|', but concatenate all marked articles
-and pipe them to the process.
-@item
- cache the list of killed (or active) groups in a separate file. Update
-the file whenever we read the active file or the list
-of killed groups in the .eld file reaches a certain length.
-@item
- function for starting to edit a file to put into
-the current mail group.
-@item
- score-find-trace should display the total score of the article.
-@item
- "ghettozie" -- score on Xref header and nix it out after using it
-to avoid marking as read in other groups it has been crossposted to.
-@item
- look at procmail splitting. The backends should create
-the groups automatically if a spool file exists for that group.
-@item
- function for backends to register themselves with Gnus.
-@item
- when replying to several process-marked articles,
-have all the From end up in Cc headers? Variable to toggle.
-@item
- command to delete a crossposted mail article from all
-groups it has been mailed to.
-@item
- `B c' and `B m' should be crosspost aware.
-@item
- hide-pgp should also hide PGP public key blocks.
-@item
- Command in the group buffer to respool process-marked groups.
-@item
- `gnus-summary-find-matching' should accept
-pseudo-"headers" like "body", "head" and "all"
-@item
- When buttifying <URL: > things, all white space (including
-newlines) should be ignored.
-@item
- Process-marking all groups in a topic should process-mark
-groups in subtopics as well.
-@item
- Add non-native groups to the list of killed groups when killing them.
-@item
- nntp-suggest-kewl-config to probe the nntp server and suggest
-variable settings.
-@item
- add edit and forward secondary marks.
-@item
- nnml shouldn't visit its .overview files.
-@item
- allow customizing sorting within gathered threads.
-@item
- `B q' shouldn't select the current article.
-@item
- nnmbox should support a newsgroups file for descriptions.
-@item
- allow fetching mail from several pop servers.
-@item
- Be able to specify whether the saving commands save the original
-or the formatted article.
-@item
- a command to reparent with the child process-marked (cf. `T ^'.).
-@item
- I think the possibility to send a password with nntp-open-rlogin
-should be a feature in Red Gnus.
-@item
- The `Z n' command should be possible to execute from a mouse click.
-@item
- more limiting functions -- date, etc.
-@item
- be able to limit on a random header; on body; using reverse matches.
-@item
- a group parameter (`absofucking-total-expiry') that will make Gnus expire
-even unread articles.
-@item
- a command to print the article buffer as postscript.
-@item
- variable to disable password fetching when opening by nntp-open-telnet.
-@item
- manual: more example servers -- nntp with rlogin, telnet
-@item
- checking for bogus groups should clean topic alists as well.
-@item
- canceling articles in foreign groups.
-@item
- article number in folded topics isn't properly updated by
-Xref handling.
-@item
- Movement in the group buffer to the next unread group should go to the
-next closed topic with unread messages if no group can be found.
-@item
- Extensive info pages generated on the fly with help everywhere --
-in the "*Gnus edit*" buffers, for instance.
-@item
- Topic movement commands -- like thread movement. Up, down, forward, next.
-@item
- a way to tick/mark as read Gcc'd articles.
-@item
- a way to say that all groups within a specific topic comes
-from a particular server? Hm.
-@item
- `gnus-article-fill-if-long-lines' -- a function to fill
-the article buffer if there are any looong lines there.
-@item
- `T h' should jump to the parent topic and fold it.
-@item
- a command to create an ephemeral nndoc group out of a file,
-and then splitting it/moving it to some other group/backend.
-@item
- a group parameter for nnkiboze groups that says that
-all kibozed articles should be entered into the cache.
-@item
- It should also probably be possible to delimit what
-`gnus-jog-cache' does -- for instance, work on just some groups, or on
-some levels, and entering just articles that have a score higher than
-a certain number.
-@item
- nnfolder should append to the folder instead of re-writing
-the entire folder to disk when accepting new messages.
-@item
- allow all backends to do the proper thing with .gz files.
-@item
- a backend for reading collections of babyl files nnbabylfolder?
-@item
- a command for making the native groups into foreign groups.
-@item
- server mode command for clearing read marks from all groups
-from a server.
-@item
- when following up multiple articles, include all To, Cc, etc headers
-from all articles.
-@item
- a command for deciding what the total score of the current
-thread is. Also a way to highlight based on this.
-@item
- command to show and edit group scores
-@item
- a gnus-tree-minimize-horizontal to minimize tree buffers
-horizontally.
-@item
- command to generate nnml overview file for one group.
-@item
- `C-u C-u a' -- prompt for many crossposted groups.
-@item
- keep track of which mail groups have received new articles (in this session).
-Be able to generate a report and perhaps do some marking in the group
-buffer.
-@item
- gnus-build-sparse-threads to a number -- build only sparse threads
-that are of that length.
-@item
- have nnmh respect mh's unseen sequence in .mh_profile.
-@item
- cache the newsgroups descriptions locally.
-@item
- asynchronous posting under nntp.
-@item
- be able to control word adaptive scoring from the score files.
-@item
- a variable to make `C-c C-c' post using the "current" select method.
-@item
- `limit-exclude-low-scored-articles'.
-@item
- if `gnus-summary-show-thread' is a number, hide threads that have
-a score lower than this number.
-@item
- split newsgroup subscription variable up into "order" and "method".
-@item
- buttonize ange-ftp file names.
-@item
- a command to make a duplicate copy of the current article
-so that each copy can be edited separately.
-@item
- nnweb should allow fetching from the local nntp server.
-@item
- record the sorting done in the summary buffer so that
-it can be repeated when limiting/regenerating the buffer.
-@item
- nnml-generate-nov-databses should generate for
-all nnml servers.
-@item
- when the user does commands in the group buffer, check
-the modification time of the .newsrc.eld file and use
-ask-user-about-supersession-threat. Also warn when trying
-to save .newsrc.eld and it has changed.
-@item
- M-g on a topic will display all groups with 0 articles in
-the topic.
-@item
- command to remove all topic stuff.
-@item
- allow exploding incoming digests when reading incoming mail
-and splitting the resulting digests.
-@item
- nnsoup shouldn't set the `message-' variables.
-@item
- command to nix out all nnoo state information.
-@item
- nnmail-process-alist that calls functions if group names
-matches an alist -- before saving.
-@item
- use buffer-invisibility-spec everywhere for hiding text.
-@item
- variable to activate each group before entering them
-to get the (new) number of articles. `gnus-activate-before-entering'.
-@item
- command to fetch a Message-ID from any buffer, even
-starting Gnus first if necessary.
-@item
- when posting and checking whether a group exists or not, just
-ask the nntp server instead of relying on the active hashtb.
-@item
- buttonize the output of `C-c C-a' in an apropos-like way.
-@item
- `G p' should understand process/prefix, and allow editing
-of several groups at once.
-@item
- command to create an ephemeral nnvirtual group that
-matches some regexp(s).
-@item
- nndoc should understand "Content-Type: message/rfc822" forwarded messages.
-@item
- it should be possible to score "thread" on the From header.
-@item
- hitting RET on a "gnus-uu-archive" pseudo article should unpack it.
-@item
- `B i' should display the article at once in the summary buffer.
-@item
- remove the "*" mark at once when unticking an article.
-@item
- `M-s' should highlight the matching text.
-@item
- when checking for duplicated mails, use Resent-Message-ID if present.
-@item
- killing and yanking groups in topics should be better. If killing one copy
-of a group that exists in multiple topics, only that copy should
-be removed. Yanking should insert the copy, and yanking topics
-should be possible to be interspersed with the other yankings.
-@item
- command for enter a group just to read the cached articles. A way to say
-"ignore the nntp connection; just read from the cache."
-@item
- `X u' should decode base64 articles.
-@item
- a way to hide all "inner" cited text, leaving just the most
-recently cited text.
-@item
- nnvirtual should be asynchronous.
-@item
- after editing an article, gnus-original-article-buffer should
-be invalidated.
-@item
- there should probably be a way to make Gnus not connect to the
-server and just read the articles in the server
-@item
- allow a `set-default' (or something) to change the default
-value of nnoo variables.
-@item
- a command to import group infos from a .newsrc.eld file.
-@item
- groups from secondary servers have the entire select method
-listed in each group info.
-@item
- a command for just switching from the summary buffer to the group
-buffer.
-@item
- a way to specify that some incoming mail washing functions
-should only be applied to some groups.
-@item
- Message `C-f C-t' should ask the user whether to heed
-mail-copies-to: never.
-@item
- new group parameter -- `post-to-server' that says to post
-using the current server. Also a variable to do the same.
-@item
- the slave dribble files should auto-save to the slave file names.
-@item
- a group parameter that says what articles to display on group entry, based
-on article marks.
-@item
- a way to visually distinguish slave Gnusae from masters. (Whip instead
-of normal logo?)
-@item
- Use DJ Bernstein "From " quoting/dequoting, where applicable.
-@item
- Why is hide-citation-maybe and hide-citation different? Also
-clear up info.
-@item
- group user-defined meta-parameters.
-
-
-
-From: John Griffith <griffith@@sfs.nphil.uni-tuebingen.de>
-@item
- I like the option for trying to retrieve the FAQ for a group and I was
-thinking it would be great if for those newsgroups that had archives
-you could also try to read the archive for that group. Part of the
-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 @*
-ftp://ftp.neosoft.com/pub/users/claird/news.lists/newsgroup_archives.html
-
-
-
-
-@item
-@example
-From: Jason L Tibbitts III <tibbs@@hpc.uh.edu>
-(add-hook 'gnus-select-group-hook
- (lambda ()
- (gnus-group-add-parameter group
- (cons 'gnus-group-date-last-entered (list (current-time-string))))))
-
-(defun gnus-user-format-function-d (headers)
- "Return the date the group was last read."
- (cond ((car (gnus-group-get-parameter gnus-tmp-group 'gnus-group-date-last-entered)))
- (t "")))
-@end example
-
-@item
- tanken var at når du bruker `gnus-startup-file' som prefix (FOO) til å lete
-opp en fil FOO-SERVER, FOO-SERVER.el, FOO-SERVER.eld, kan du la den være en
-liste hvor du bruker hvert element i listen som FOO, istedet. da kunne man
-hatt forskjellige serveres startup-filer forskjellige steder.
-
-
-@item
-LMI> Well, nnbabyl could alter the group info to heed labels like
-LMI> answered and read, I guess.
-
-It could also keep them updated (the same for the Status: header of
-unix mbox files).
-
-They could be used like this:
-
-
-@example
-`M l <name> RET' add label <name> to current message.
-`M u <name> RET' remove label <name> from current message.
-`/ l <expr> RET' limit summary buffer according to <expr>.
-
-<expr> would be a boolean expression on the labels, e.g.
-
-`/ l bug & !fixed RET'
-@end example
-
-would show all the messages which are labeled `bug' but not labeled
-`fixed'.
-
-One could also imagine the labels being used for highlighting, or
-affect the summary line format.
-
-
-@item
-Sender: abraham@@dina.kvl.dk
-
-I'd like a gnus-find-file which work like find file, except that it
-would recognize things that looks like messages or folders:
-
-- If it is a directory containing numbered files, create an nndir
-summary buffer.
-
-- For other directories, create a nneething summary buffer.
-
-- For files matching "\\`From ", create a nndoc/mbox summary.
-
-- For files matching "\\`BABYL OPTIONS:", create a nndoc/baby summary.
-
-- For files matching "\\`[^ \t\n]+:", create an *Article* buffer.
-
-- For other files, just find them normally.
-
-I'd like `nneething' to use this function, so it would work on a
-directory potentially containing mboxes or babyl files.
-
-@item
-Please send a mail to bwarsaw@@cnri.reston.va.us (Barry A. Warsaw) and
-tell him what you are doing.
-
-@item
-Currently, I get prompted:
-
-decend into sci?
-- type y
-decend into sci.something ?
-- type n
-decend into ucd?
-
-The problem above is that since there is really only one subsection of
-science, shouldn't it prompt you for only descending sci.something? If
-there was a sci.somethingelse group or section, then it should prompt
-for sci? first the sci.something? then sci.somethingelse?...
-
-@item
-Ja, det burde være en måte å si slikt. Kanskje en ny variabel?
-`gnus-use-few-score-files'? Så kunne score-regler legges til den
-"mest" lokale score-fila. F. eks. ville no-gruppene betjenes av
-"no.all.SCORE", osv.
-
-@item
-What i want is for Gnus to treat any sequence or combination of the following
-as a single spoiler warning and hide it all, replacing it with a "Next Page"
-button:
-
-
-^L's
-
-more than n blank lines
-
-more than m identical lines
-(which should be replaced with button to show them)
-
-any whitespace surrounding any of the above
-
-
-@item
-Well, we could allow a new value to `gnus-thread-ignore-subject' --
-`spaces', or something. (We could even default to that.) And then
-subjects that differ in white space only could be considered the
-"same" subject for threading purposes.
-
-@item
-Modes to preprocess the contents (e.g. jka-compr) use the second form
-"(REGEXP FUNCTION NON-NIL)" while ordinary modes (e.g. tex) use the first
-form "(REGEXP . FUNCTION)", so you could use it to distinguish between
-those two types of modes. (auto-modes-alist, insert-file-contents-literally.)
-
-@item
- Under XEmacs -- do funny article marks:
-tick - thumb tack
-killed - skull
-soup - bowl of soup
-score below - dim light bulb
-score over - bright light bulb
-
-@item
-Yes. I think the algorithm is as follows:
-
-@example
-Group-mode
-
- show-list-of-articles-in-group
- if (key-pressed == SPACE)
- if (no-more-articles-in-group-to-select)
- if (articles-selected)
- start-reading-selected-articles;
- junk-unread-articles;
- next-group;
- else
- show-next-page;
-
- else if (key-pressed = '.')
- if (consolidated-menus) # same as hide-thread in Gnus
- select-thread-under-cursor;
- else
- select-article-under-cursor;
-
-
-Article-mode
- if (key-pressed == SPACE)
- if (more-pages-in-article)
- next-page;
- else if (more-selected-articles-to-read)
- next-article;
- else
- next-group;
-@end example
-
-@item
-My precise need here would have been to limit files to Incoming*.
-One could think of some `nneething-only-files' variable, but I guess
-it would have been unacceptable if one was using many unrelated such
-nneething groups.
-
-A more useful approach would be to, in response to the `G D' prompt, be
-allowed to say something like: `~/.mail/Incoming*', somewhat limiting
-the top-level directory only (in case directories would be matched by
-the wildcard expression).
-
-@item
-It would be nice if it also handled
-
- <URL:news://sunsite.auc.dk/>
-
-which should correspond to `B nntp RET sunsite.auc.dk' in *Group*.
-
-
-@item
-
- Take a look at w3-menu.el in the Emacs-W3 distribution - this works out
-really well. Each menu is 'named' by a symbol that would be on a
-gnus-*-menus (where * would be whatever, but at least group, summary, and
-article versions) variable.
-
- So for gnus-summary-menus, I would set to '(sort mark dispose ...)
-
- A value of '1' would just put _all_ the menus in a single 'GNUS' menu in
-the main menubar. This approach works really well for Emacs-W3 and VM.
-
-
-@item
- nndoc should take care to create unique Message-IDs for all its
-articles.
-@item
- gnus-score-followup-article only works when you have a summary buffer
-active. Make it work when posting from the group buffer as well.
-(message-sent-hook).
-@item
- rewrite gnus-demon to use run-with-idle-timers.
-
-@item
- * Enhancements to Gnus:
-
- Add two commands:
-
- * gnus-servers (gnus-start-server-buffer?)--enters Gnus and goes
- straight to the server buffer, without opening any connections to
- servers first.
-
- * gnus-server-read-server-newsrc--produces a buffer very similar to
- the group buffer, but with only groups from that server listed;
- quitting this buffer returns to the server buffer.
-
-@item
- add a command to check the integrity of an nnfolder folder --
-go through the article numbers and see that there are no duplicates,
-and stuff.
-
-@item
- `unsmileyfy-buffer' to undo smileification.
-
-@item
- a command to give all relevant info on an article, including all
-secondary marks.
-
-@item
- when doing `-request-accept-article', the backends should do
-the nnmail duplicate checking.
-
-@item
- allow `message-signature-file' to be a function to return the
-value of the signature file.
-
-@item
- In addition, I would love it if I could configure message-tab so that it
-could call `bbdb-complete-name' in other headers. So, some sort of
-interface like
-
-(setq message-tab-alist
- '((message-header-regexp message-expand-group)
- ("^\\(To\\|[cC]c\\|[bB]cc\\)" bbdb-complete-name)))
-
-then you could run the relevant function to complete the information in
-the header
-
-@item
- cache the newsgroups file locally to avoid reloading it all the time.
-
-@item
- a command to import a buffer into a group.
-
-@item
- nnweb should allow fetching by Message-ID from servers.
-
-@item
- point in the article buffer doesn't always go to the
-beginning of the buffer when selecting new articles.
-
-@item
- a command to process mark all unread articles.
-
-@item
- `gnus-gather-threads-by-references-and-subject' -- first
-do gathering by references, and then go through the dummy roots and
-do more gathering by subject.
-
-@item
- gnus-uu-mark-in-numerical-order -- process mark articles in
-article numerical order.
-
-@item
- (gnus-thread-total-score
- (gnus-id-to-thread (mail-header-id (gnus-summary-article-header))))
-bind to a key.
-
-@item
- sorting by score is wrong when using sparse threads.
-
-@item
- a command to fetch an arbitrary article -- without having to be
-in the summary buffer.
-
-@item
- a new nncvs backend. Each group would show an article, using
-version branches as threading, checkin date as the date, etc.
-
-@item
- http://www.dejanews.com/forms/dnsetfilter_exp.html ?
-This filter allows one to construct advance queries on the Dejanews
-database such as specifying start and end dates, subject, author,
-and/or newsgroup name.
-
-@item
- new Date header scoring type -- older, newer
-
-@item
- use the summary toolbar in the article buffer.
-
-@item
- a command to fetch all articles that are less than X days old.
-
-@item
- in pick mode, `q' should save the list of selected articles in the
-group info. The next time the group is selected, these articles
-will automatically get the process mark.
-
-@item
- Isn't it possible to (also?) allow M-^ to automatically try the
-default server if it fails on the current server? (controlled by a
-user variable, (nil, t, 'ask)).
-
-@item
- make it possible to cancel articles using the select method for the
-current group.
-
-@item
- `gnus-summary-select-article-on-entry' or something. It'll default
-to t and will select whatever article decided by `gnus-auto-select-first'.
-
-@item
- a new variable to control which selection commands should be unselecting.
-`first', `best', `next', `prev', `next-unread', `prev-unread' are
-candidates.
-
-@item
- be able to select groups that have no articles in them
-to be able to post in them (using the current select method).
-
-@item
- be able to post via DejaNews.
-
-@item
- `x' should retain any sortings that have been performed.
-
-@item
- allow the user to specify the precedence of the secondary marks. Also
-allow them to be displayed separately.
-
-@item
- gnus-summary-save-in-pipe should concatenate the results from
-the processes when doing a process marked pipe.
-
-@item
- a new match type, like Followup, but which adds Thread matches on all
-articles that match a certain From header.
-
-@item
- a function that can be read from kill-emacs-query-functions to offer
-saving living summary buffers.
-
-@item
- a function for selecting a particular group which will contain
-the articles listed in a list of article numbers/id's.
-
-@item
- a battery of character translation functions to translate common
-Mac, MS (etc) characters into ISO 8859-1.
-
-@example
-(defun article-fix-m$word ()
- "Fix M$Word smartquotes in an article."
- (interactive)
- (save-excursion
- (let ((buffer-read-only nil))
- (goto-char (point-min))
- (while (search-forward "\221" nil t)
- (replace-match "`" t t))
- (goto-char (point-min))
- (while (search-forward "\222" nil t)
- (replace-match "'" t t))
- (goto-char (point-min))
- (while (search-forward "\223" nil t)
- (replace-match "\"" t t))
- (goto-char (point-min))
- (while (search-forward "\224" nil t)
- (replace-match "\"" t t)))))
-@end example
-
-@item
-@example
- (add-hook 'gnus-exit-query-functions
-'(lambda ()
- (if (and (file-exists-p nnmail-spool-file)
- (> (nnheader-file-size nnmail-spool-file) 0))
- (yes-or-no-p "New mail has arrived. Quit Gnus anyways? ")
- (y-or-n-p "Are you sure you want to quit Gnus? "))))
-@end example
-
-@item
- allow message-default-headers to be a function.
-
-@item
- new Date score match types -- < > = (etc) that take floating point
-numbers and match on the age of the article.
-
-@item
-@example
-> > > If so, I've got one gripe: It seems that when I fire up gnus 5.2.25
-> > > under xemacs-19.14, it's creating a new frame, but is erasing the
-> > > buffer in the frame that it was called from =:-O
->
-> > Hm. How do you start up Gnus? From the toolbar or with
-> > `M-x gnus-other-frame'?
->
-> I normally start it up from the toolbar; at
-> least that's the way I've caught it doing the
-> deed before.
-@end example
-
-@item
- all commands that react to the process mark should push
-the current process mark set onto the stack.
-
-@item
- gnus-article-hide-pgp
-Selv ville jeg nok ha valgt å slette den dersom teksten matcher
-@example
-"\\(This\s+\\)?[^ ]+ has been automatically signed by"
-@end example
-og det er maks hundre tegn mellom match-end og ----linja. Men -det-
-er min type heuristikk og langt fra alles.
-
-@item
- `gnus-subscribe-sorted' -- insert new groups where they would have been
-sorted to if `gnus-group-sort-function' were run.
-
-@item
- gnus-(group,summary)-highlight should respect any `face' text props set
-on the lines.
-
-@item
- use run-with-idle-timer for gnus-demon instead of the
-home-brewed stuff for better reliability.
-
-@item
- add a way to select which NoCeM type to apply -- spam, troll, etc.
-
-@item
- nndraft-request-group should tally auto-save files.
-
-@item
- implement nntp-retry-on-break and nntp-command-timeout.
-
-@item
- gnus-article-highlight-limit that says when not to highlight (long)
-articles.
-
-@item
- (nnoo-set SERVER VARIABLE VALUE)
-
-@item
- nn*-spool-methods
-
-@item
- interrupitng agent fetching of articles should save articles.
-
-@item
- command to open a digest group, and copy all the articles there to the
-current group.
-
-@item
- a variable to disable article body highlights if there's more than
-X characters in the body.
-
-@item
- handle 480/381 authinfo requests separately.
-
-@item
- include the texi/dir file in the distribution.
-
-@item
- format spec to "tab" to a position.
-
-@item
- Move all prompting to the new `M-n' default style.
-
-@item
- command to display all dormant articles.
-
-@item
- gnus-auto-select-next makeover -- list of things it should do.
-
-@item
- a score match type that adds scores matching on From if From has replied
-to something someone else has said.
-
-@item
- Read Netscape discussion groups:
-snews://secnews.netscape.com/netscape.communicator.unix
-
-@item
-One command to edit the original version if an article, and one to edit
-the displayed version.
-
-@item
-@kbd{T v} -- make all process-marked articles the children of the
-current article.
-
-@item
-Switch from initial text to the new default text mechanism.
-
-@item
-How about making it possible to expire local articles? Will it be
-possible to make various constraints on when an article can be
-expired, e.g. (read), (age > 14 days), or the more interesting (read
-& age > 14 days)?
-
-@item
-New limit command---limit to articles that have a certain string
-in the head or body.
-
-@item
-Allow breaking lengthy @sc{nntp} commands.
-
-@item
-gnus-article-highlight-limit, to disable highlighting in big articles.
-
-@item
-Editing an article should put the article to be edited
-in a special, unique buffer.
-
-@item
-A command to send a mail to the admin-address group param.
-
-@item
-A Date scoring type that will match if the article
-is less than a certain number of days old.
-
-@item
-New spec: %~(tab 56) to put point on column 56
-
-@item
-Allow Gnus Agent scoring to use normal score files.
-
-@item
-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
-Group parameters and summary commands for un/subscribing to mailing
-lists.
-
-@item
-Introduce nnmail-home-directory.
-
-@item
-gnus-fetch-group and friends should exit Gnus when the user
-exits the group.
-
-@item
-The jingle is only played on the second invocation of Gnus.
-
-@item
-Bouncing articles should do MIME.
-
-@item
-Crossposted articles should "inherit" the % or @ mark from the other
-groups it has been crossposted to, or something. (Agent.)
-
-@item
-If point is on a group that appears multiple times in topics, and
-you press `l', point will move to the first instance of the group.
-
-@item
-A spec for the group line format to display the number of
-agent-downloaded articles in the group.
-
-@item
-Some nntp servers never respond when posting, so there should be a
-timeout for all commands.
-
-@item
-When stading on a topic line and `t'-ing, point goes to the last line.
-It should go somewhere else.
-
-@item
-I'm having trouble accessing a newsgroup with a "+" in its name with
-Gnus. There is a new newsgroup on msnews.microsoft.com named
-"microsoft.public.multimedia.directx.html+time" that I'm trying to
-access as
-"nntp+msnews.microsoft.com:microsoft.public.multimedia.directx.html+time"
-but it gives an error that it cant access the group.
-
-Is the "+" character illegal in newsgroup names? Is there any way in
-Gnus to work around this? (gnus 5.6.45 - XEmacs 20.4)
-
-@item
-
-When `#F', do:
-
-@example
-Subject: Answer to your mails 01.01.1999-01.05.1999
- --text follows this line--
-Sorry I killfiled you...
-
-Under the subject "foo", you wrote on 01.01.1999:
-> bar
-Under the subject "foo1", you wrote on 01.01.1999:
-> bar 1
-@end example
-
-@item
-Allow "orphan" scores in the Agent scoring.
-
-@item
-@example
- - Edit article's summary line.
- - End edit
- - Sort lines in buffer by subject
-
- --> the old subject line appears in Summary buffer, not the one that was
- just changed to.
-@end example
-
-
-@item
-Remove list identifiers from the subject in the summary when doing `^'
-and the like.
-
-@item
-Have the Agent write out articles, one by one, as it retrieves them,
-to avoid having to re-fetch them all if Emacs should crash while
-fetching.
-
-@item
-Be able to forward groups of messages as MIME digests.
-
-@item
-nnweb should include the "get whole article" article when getting articles.
-
-@item
-When I type W W c (gnus-article-hide-citation) in the summary
-buffer, the citations are revealed, but the [+] buttons don't turn
-into [-] buttons. (If I click on one of the [+] buttons, it does
-turn into a [-] button.)
-
-@item
-Perhaps there should be a command to "attach" a buffer of comments to
-a message? That is, `B WHATEVER', you're popped into a buffer, write
-something, end with `C-c C-c', and then the thing you've written gets
-to be the child of the message you're commenting.
-
-@item
-Handle external-body parts.
-
-@item
-When renaming a group name, nnmail-split-history does not get the group
-name renamed.
-
-@item
-Allow mail splitting on bodies when using advanced mail splitting.
-
-@lisp
- (body "whatever.text")
-@end lisp
-
-@item
-Be able to run `J u' from summary buffers.
-
-@item
-Solve the halting problem.
+@item Gnus can now read IMAP mail via @code{nnimap}.
-@c TODO
@end itemize
@iftex
@item gnus-read-active-file
Set this to @code{nil}, which will inhibit Gnus from requesting the
-entire active file from the server. This file is often v. large. You
+entire active file from the server. This file is often very large. You
also have to set @code{gnus-check-new-newsgroups} and
@code{gnus-check-bogus-newsgroups} to @code{nil} to make sure that Gnus
doesn't suddenly decide to fetch the active file anyway.
@kindex M-x gnus-bug
@findex gnus-bug
If you find a bug in Gnus, you can report it with the @kbd{M-x gnus-bug}
-command. @kbd{M-x set-variable RET debug-on-error RET t RET}, and send
+command. @kbd{M-x set-variable @key{RET} debug-on-error @key{RET} t @key{RET}}, and send
me the backtrace. I will fix bugs, but I can only fix them if you send
me a precise description as to how to reproduce the bug.
"*Non-nil means that nndir will never retrieve NOV headers."
nnml-nov-is-evil)
-(defvoo nndir-current-group "" nil nnml-current-group nnmh-current-group)
+(defvoo nndir-current-group ""
+ nil
+ nnml-current-group nnmh-current-group)
(defvoo nndir-top-directory nil nil nnml-directory nnmh-directory)
(defvoo nndir-get-new-mail nil nil nnml-get-new-mail nnmh-get-new-mail)
(unless (assq 'nndir-directory defs)
(push `(nndir-directory ,server) defs))
(push `(nndir-current-group
- ,(file-name-nondirectory (directory-file-name nndir-directory)))
+ ,(file-name-nondirectory
+ (directory-file-name nndir-directory)))
defs)
(push `(nndir-top-directory
,(file-name-directory (directory-file-name nndir-directory)))
BNF definition of a score file:
@example
-score-file = "" / "(" *element ")"
-element = rule / atom
-rule = string-rule / number-rule / date-rule
-string-rule = "(" quote string-header quote space *string-match ")"
-number-rule = "(" quote number-header quote space *number-match ")"
-date-rule = "(" quote date-header quote space *date-match ")"
-quote = <ascii 34>
-string-header = "subject" / "from" / "references" / "message-id" /
- "xref" / "body" / "head" / "all" / "followup"
-number-header = "lines" / "chars"
-date-header = "date"
-string-match = "(" quote <string> quote [ "" / [ space score [ "" /
- space date [ "" / [ space string-match-t ] ] ] ] ] ")"
-score = "nil" / <integer>
-date = "nil" / <natural number>
-string-match-t = "nil" / "s" / "substring" / "S" / "Substring" /
- "r" / "regex" / "R" / "Regex" /
- "e" / "exact" / "E" / "Exact" /
- "f" / "fuzzy" / "F" / "Fuzzy"
-number-match = "(" <integer> [ "" / [ space score [ "" /
- space date [ "" / [ space number-match-t ] ] ] ] ] ")"
-number-match-t = "nil" / "=" / "<" / ">" / ">=" / "<="
-date-match = "(" quote <string> quote [ "" / [ space score [ "" /
- space date [ "" / [ space date-match-t ] ] ] ] ")"
-date-match-t = "nil" / "at" / "before" / "after"
-atom = "(" [ required-atom / optional-atom ] ")"
-required-atom = mark / expunge / mark-and-expunge / files /
- exclude-files / read-only / touched
-optional-atom = adapt / local / eval
-mark = "mark" space nil-or-number
-nil-or-number = "nil" / <integer>
-expunge = "expunge" space nil-or-number
+score-file = "" / "(" *element ")"
+element = rule / atom
+rule = string-rule / number-rule / date-rule
+string-rule = "(" quote string-header quote space *string-match ")"
+number-rule = "(" quote number-header quote space *number-match ")"
+date-rule = "(" quote date-header quote space *date-match ")"
+quote = <ascii 34>
+string-header = "subject" / "from" / "references" / "message-id" /
+ "xref" / "body" / "head" / "all" / "followup"
+number-header = "lines" / "chars"
+date-header = "date"
+string-match = "(" quote <string> quote [ "" / [ space score [ "" /
+ space date [ "" / [ space string-match-t ] ] ] ] ] ")"
+score = "nil" / <integer>
+date = "nil" / <natural number>
+string-match-t = "nil" / "s" / "substring" / "S" / "Substring" /
+ "r" / "regex" / "R" / "Regex" /
+ "e" / "exact" / "E" / "Exact" /
+ "f" / "fuzzy" / "F" / "Fuzzy"
+number-match = "(" <integer> [ "" / [ space score [ "" /
+ space date [ "" / [ space number-match-t ] ] ] ] ] ")"
+number-match-t = "nil" / "=" / "<" / ">" / ">=" / "<="
+date-match = "(" quote <string> quote [ "" / [ space score [ "" /
+ space date [ "" / [ space date-match-t ] ] ] ] ")"
+date-match-t = "nil" / "at" / "before" / "after"
+atom = "(" [ required-atom / optional-atom ] ")"
+required-atom = mark / expunge / mark-and-expunge / files /
+ exclude-files / read-only / touched
+optional-atom = adapt / local / eval
+mark = "mark" space nil-or-number
+nil-or-number = "nil" / <integer>
+expunge = "expunge" space nil-or-number
mark-and-expunge = "mark-and-expunge" space nil-or-number
-files = "files" *[ space <string> ]
-exclude-files = "exclude-files" *[ space <string> ]
-read-only = "read-only" [ space "nil" / space "t" ]
-adapt = "adapt" [ space "ignore" / space "t" / space adapt-rule ]
-adapt-rule = "(" *[ <string> *[ "(" <string> <integer> ")" ] ")"
-local = "local" *[ space "(" <string> space <form> ")" ]
-eval = "eval" space <form>
-space = *[ " " / <TAB> / <NEWLINE> ]
+files = "files" *[ space <string> ]
+exclude-files = "exclude-files" *[ space <string> ]
+read-only = "read-only" [ space "nil" / space "t" ]
+adapt = "adapt" [ space "ignore" / space "t" / space adapt-rule ]
+adapt-rule = "(" *[ <string> *[ "(" <string> <integer> ")" ] ")"
+local = "local" *[ space "(" <string> space <form> ")" ]
+eval = "eval" space <form>
+space = *[ " " / <TAB> / <NEWLINE> ]
@end example
Any unrecognized elements in a score file should be ignored, but not
@example
active = *group-line
-group-line = group space high-number space low-number space flag <NEWLINE>
+group-line = group spc high-number spc low-number spc flag <NEWLINE>
group = <non-white-space string>
-space = " "
+spc = " "
high-number = <non-negative integer>
low-number = <positive integer>
flag = "y" / "n" / "m" / "j" / "x" / "=" group