\input texinfo @c -*-texinfo-*-
@setfilename gnus
-@settitle Semi-gnus 6.3.3 Manual
+@settitle Semi-gnus 6.4.0 Manual
@synindex fn cp
@synindex vr cp
@synindex pg cp
@tex
@titlepage
-@title Semi-gnus 6.3.3 Manual
+@title Semi-gnus 6.4.0 Manual
@author by Lars Magne Ingebrigtsen
@page
API. So Semi-gnus does not discriminate various language communities.
Oh, if you are a Klingon, please wait Unicode Next Generation.
-This manual corresponds to Semi-gnus 6.3.3.
+This manual corresponds to Semi-gnus 6.4.0.
@end ifinfo
never delete the @file{.newsrc.eld} file---it contains much information
not stored in the @file{.newsrc} file.
+In addition, gnus does not change anything. Hail comrade Lars!
+
@vindex gnus-save-newsrc-file
You can turn off writing the @file{.newsrc} file by setting
@code{gnus-save-newsrc-file} to @code{nil}, which means you can delete
-the file and save some space, as well as exiting from Gnus faster.
+the file and save some space, as well as exiting from gnus faster.
However, this will make it impossible to use other newsreaders than
gnus. But hey, who would want to, right?
@cindex group buffer
The @dfn{group buffer} lists all (or parts) of the available groups. It
-is the first buffer shown when Gnus starts, and will never be killed as
-long as Gnus is active.
+is the first buffer shown when gnus starts, and will never be killed as
+long as gnus is active.
@iftex
@iflatex
There should always be a colon on the line; the cursor always moves to
the colon after performing an operation. Nothing else is required---not
even the group name. All displayed text is just window dressing, and is
-never examined by Gnus. Gnus stores all real information it needs using
+never examined by gnus. Gnus stores all real information it needs using
text properties.
(Note that if you make a really strange, wonderful, spreadsheet-like
@end table
When the forms are @code{eval}ed, point is at the beginning of the line
-of the group in question, so you can use many of the normal Gnus
+of the group in question, so you can use many of the normal gnus
functions for snarfing info on the group.
@vindex gnus-group-update-hook
Select the current group, switch to the summary buffer and display the
first unread article (@code{gnus-group-read-group}). If there are no
unread articles in the group, or if you give a non-numerical prefix to
-this command, Gnus will offer to fetch all the old articles in this
+this command, gnus will offer to fetch all the old articles in this
group from the server. If you give a numerical prefix @var{N}, @var{N}
-determines the number of articles Gnus will fetch. If @var{N} is
-positive, Gnus fetches the @var{N} newest articles, if @var{N} is
-negative, Gnus fetches the @var{abs(N)} oldest articles.
+determines the number of articles gnus will fetch. If @var{N} is
+positive, gnus fetches the @var{N} newest articles, if @var{N} is
+negative, gnus fetches the @var{abs(N)} oldest articles.
@item RET
@kindex RET (Group)
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-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}).
@end table
@vindex gnus-large-newsgroup
-The @code{gnus-large-newsgroup} variable says what Gnus should consider
+The @code{gnus-large-newsgroup} variable says what gnus should consider
to be a big group. This is 200 by default. If the group has more
-(unread and/or ticked) articles than this, Gnus will query the user
+(unread and/or ticked) articles than this, gnus will query the user
before entering the group. The user can then specify how many articles
should be fetched from the server. If the user specifies a negative
number (@code{-n}), the @code{n} oldest articles will be fetched. If it
@c @icon{gnus-group-catchup-current}
Mark all unticked articles in this group as read
(@code{gnus-group-catchup-current}).
-@code{gnus-group-catchup-group-hook} is called when catching up a group from
-the group buffer.
+@code{gnus-group-catchup-group-hook} is called when catching up a group
+from the group buffer.
@item C
@kindex C (Group)
All groups have a level of @dfn{subscribedness}. For instance, if a
group is on level 2, it is more subscribed than a group on level 5. You
-can ask Gnus to just list groups on a given level or lower
+can ask gnus to just list groups on a given level or lower
(@pxref{Listing Groups}), or to just check for new articles in groups on
a given level or lower (@pxref{Scanning New Messages}).
@kindex G h (Group)
@cindex help group
@findex gnus-group-make-help-group
-Make the Gnus help group (@code{gnus-group-make-help-group}).
+Make the gnus help group (@code{gnus-group-make-help-group}).
@item G a
@kindex G a (Group)
@findex gnus-group-make-archive-group
@vindex gnus-group-archive-directory
@vindex gnus-group-recent-archive-directory
-Make a Gnus archive group (@code{gnus-group-make-archive-group}). By
+Make a gnus archive group (@code{gnus-group-make-archive-group}). By
default a group pointing to the most recent articles will be created
(@code{gnus-group-recent-archive-directory}), but given a prefix, a full
group will be created from @code{gnus-group-archive-directory}.
Currently supported types are @code{babyl}, @code{mbox}, @code{digest},
@code{mmdf}, @code{news}, @code{rnews}, @code{clari-briefs},
@code{rfc934}, @code{rfc822-forward}, and @code{forward}. If you run
-this command without a prefix, Gnus will guess at the file type.
+this command without a prefix, gnus will guess at the file type.
@xref{Document Groups}.
@item G w
methods.
@vindex gnus-activate-foreign-newsgroups
-If @code{gnus-activate-foreign-newsgroups} is a positive number,
-Gnus will check all foreign groups with this level or lower at startup.
-This might take quite a while, especially if you subscribe to lots of
-groups from different @sc{nntp} servers.
+If @code{gnus-activate-foreign-newsgroups} is a positive number, gnus
+will check all foreign groups with this level or lower at startup. This
+might take quite a while, especially if you subscribe to lots of groups
+from different @sc{nntp} servers.
@node Group Parameters
(auto-expire . t))
@end example
-We see that each element consists of a "dotted pair"---the thing before
-the dot is the key, while the thing after the dot is the value. All the
-parameters have this form @emph{except} local variable specs, which are
-not dotted pairs, but proper lists.
+We see that each element consists of a ``dotted pair''---the thing
+before the dot is the key, while the thing after the dot is the value.
+All the parameters have this form @emph{except} local variable specs,
+which are not dotted pairs, but proper lists.
The following group parameters can be used:
@item newsgroup
@cindex newsgroup
-If you have @code{(newsgroup . t)} in the group parameter list, Gnus
+If you have @code{(newsgroup . t)} in the group parameter list, gnus
will treat all responses as if they were responses to news articles.
This can be useful if you have a mail group that's really a mirror of a
news group.
@end table
@item comment
-Elements that look like @code{(comment . "This is a comment")}
-are arbitrary comments on the group. They are currently ignored by
-Gnus, but provide a place for you to store information on particular
-groups.
+Elements that look like @code{(comment . "This is a comment")} are
+arbitrary comments on the group. They are currently ignored by gnus,
+but provide a place for you to store information on particular groups.
@item @var{(variable form)}
You can use the group parameters to set variables local to the group you
@node Exiting Gnus
-@section Exiting Gnus
-@cindex exiting Gnus
+@section Exiting gnus
+@cindex exiting gnus
-Yes, Gnus is ex(c)iting.
+Yes, gnus is ex(c)iting.
@table @kbd
@item z
@kindex z (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?
+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)
@findex gnus-group-exit
@c @icon{gnus-group-exit}
-Quit Gnus (@code{gnus-group-exit}).
+Quit gnus (@code{gnus-group-exit}).
@item Q
@kindex Q (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}).
+Quit gnus without saving the @file{.newsrc} files
+(@code{gnus-group-quit}). The dribble file will be saved, though
+(@pxref{Auto Save}).
@end table
@vindex gnus-exit-gnus-hook
@vindex gnus-suspend-gnus-hook
-@code{gnus-suspend-gnus-hook} is called when you suspend Gnus and
-@code{gnus-exit-gnus-hook} is called when you quit Gnus, while
+@code{gnus-suspend-gnus-hook} is called when you suspend gnus and
+@code{gnus-exit-gnus-hook} is called when you quit gnus, while
@code{gnus-after-exiting-gnus-hook} is called as the final item when
-exiting Gnus.
+exiting gnus.
@findex gnus-unload
@cindex unloading
-If you wish to completely unload Gnus and all its adherents, you can use
+If you wish to completely unload gnus and all its adherents, you can use
the @code{gnus-unload} command. This command is also very handy when
trying to customize meta-variables.
@item A T
@kindex A T (Topic)
@findex gnus-topic-list-active
-List all groups that Gnus knows about in a topics-ified way
+List all groups that gnus knows about in a topics-ified way
(@code{gnus-topic-list-active}).
@item G p
@section Misc Group Stuff
@menu
-* Scanning New Messages:: Asking Gnus to see whether new messages have arrived.
-* Group Information:: Information and help on groups and Gnus.
-* Group Timestamp:: Making Gnus keep track of when you last read a group.
-* File Commands:: Reading and writing the Gnus files.
+* Scanning New Messages:: Asking gnus to see whether new messages have arrived.
+* Group Information:: Information and help on groups and gnus.
+* Group Timestamp:: Making gnus keep track of when you last read a group.
+* File Commands:: Reading and writing the gnus files.
@end menu
@table @kbd
@kindex R (Group)
@cindex restarting
@findex gnus-group-restart
-Restart Gnus (@code{gnus-group-restart}). This saves the @file{.newsrc}
+Restart gnus (@code{gnus-group-restart}). This saves the @file{.newsrc}
file(s), closes the connection to all servers, clears up all run-time
-Gnus variables, and then starts Gnus all over again.
+gnus variables, and then starts gnus all over again.
@end table
between the various sites. @code{ange-ftp} (or @code{efs}) will be used
for fetching the file.
-If fetching from the first site is unsuccessful, Gnus will attempt to go
+If fetching from the first site is unsuccessful, gnus will attempt to go
through @code{gnus-group-faq-directory} and try to open them one by one.
@item H d
@kindex M-d (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.
+prefix, force gnus to re-read the description file from the server.
@item H v
@itemx V
@kindex H v (Group)
@cindex version
@findex gnus-version
-Display current Gnus version numbers (@code{gnus-version}).
+Display current gnus version numbers (@code{gnus-version}).
@item ?
@kindex ? (Group)
@cindex info
@cindex manual
@findex gnus-info-find-node
-Go to the Gnus info node (@code{gnus-info-find-node}).
+Go to the gnus info node (@code{gnus-info-find-node}).
@end table
@cindex timestamps
@cindex group timestamps
-It can be convenient to let Gnus keep track of when you last read a
+It can be convenient to let gnus keep track of when you last read a
group. To set the ball rolling, you should add
@code{gnus-group-set-timestamp} to @code{gnus-select-group-hook}:
@vindex gnus-extract-address-components
Gnus will use the value of the @code{gnus-extract-address-components}
variable as a function for getting the name and address parts of a
-@code{From} header. Two pre-defined functions exist:
+@code{From} header. Three pre-defined functions exist:
@code{gnus-extract-address-components}, which is the default, quite
-fast, and too simplistic solution; and
-@code{mail-extract-address-components}, which works very nicely, but is
-slower. The default function will return the wrong answer in 5% of the
-cases. If this is unacceptable to you, use the other function instead.
+fast, and too simplistic solution;
+@code{mail-extract-address-components}, which works nicely, but is
+slower; and @code{std11-extract-address-components}, which works very
+nicely, but is slower. The default function will return the wrong
+answer in 5% of the cases. If this is unacceptable to you, use the
+other function instead.
@vindex gnus-summary-same-subject
@code{gnus-summary-same-subject} is a string indicating that the current
@end table
The @samp{%U} (status), @samp{%R} (replied) and @samp{%z} (zcore) specs
-have to be handled with care. For reasons of efficiency, Gnus will
+have to be handled with care. For reasons of efficiency, gnus will
compute what column these characters will end up in, and ``hard-code''
that. This means that it is invalid to have these specs after a
variable-length spec. Well, you might not be arrested, but your summary
The smart choice is to have these specs as far to the left as possible.
(Isn't that the case with everything, though? But I digress.)
-This restriction may disappear in later versions of Gnus.
+This restriction may disappear in later versions of gnus.
@node Summary Buffer Mode Line
without displaying the article (@code{gnus-summary-goto-subject}).
@end table
-If Gnus asks you to press a key to confirm going to the next group, you
+If gnus asks you to press a key to confirm going to the next group, you
can use the @kbd{C-n} and @kbd{C-p} keys to move around the group
buffer, searching for the next group to read without actually returning
to the group buffer.
@vindex gnus-auto-select-next
@item gnus-auto-select-next
If you issue one of the movement commands (like @kbd{n}) and there are
-no more unread articles after the current one, Gnus will offer to go to
+no more unread articles after the current one, gnus will offer to go to
the next group. If this variable is @code{t} and the next group is
-empty, Gnus will exit summary mode and return to the group buffer. If
-this variable is neither @code{t} nor @code{nil}, Gnus will select the
+empty, gnus will exit summary mode and return to the group buffer. If
+this variable is neither @code{t} nor @code{nil}, gnus will select the
next group, no matter whether it has any unread articles or not. As a
-special case, if this variable is @code{quietly}, Gnus will select the
+special case, if this variable is @code{quietly}, gnus will select the
next group without asking for confirmation. If this variable is
@code{almost-quietly}, the same will happen only if you are located on
the last article in the group. Finally, if this variable is
@item gnus-auto-center-summary
@vindex gnus-auto-center-summary
-If non-@code{nil}, Gnus will keep the point in the summary buffer
+If non-@code{nil}, gnus will keep the point in the summary buffer
centered at all times. This makes things quite tidy, but if you have a
slow network connection, or simply do not like this un-Emacsism, you can
set this variable to @code{nil} to get the normal Emacs scrolling
resend that bounced mail (@code{gnus-summary-resend-bounced-mail}). You
will be popped into a mail buffer where you can edit the headers before
sending the mail off again. If you give a prefix to this command, and
-the bounced mail is a reply to some other mail, Gnus will try to fetch
+the bounced mail is a reply to some other mail, gnus will try to fetch
that mail and display it for easy perusal of its headers. This might
very well fail, though.
you would do normally. The previous article will be
canceled/superseded.
-Just remember, kids: There is no 'c' in 'supersede'.
+Just remember, kids: There is no `c' in `supersede'.
@node Marking Articles
Marking articles as @dfn{expirable} (or have them marked as such
automatically) doesn't make much sense in normal groups---a user doesn't
control expiring of news articles, but in mail groups, for instance,
-articles marked as @dfn{expirable} can be deleted by Gnus at
-any time.
+articles marked as @dfn{expirable} can be deleted by gnus at any time.
@end table
You can set a bookmark in the current article. Say you are reading a
long thesis on cats' urinary tracts, and have to go home for dinner
before you've finished reading the thesis. You can then set a bookmark
-in the article, and Gnus will jump to this bookmark the next time it
+in the article, and gnus will jump to this bookmark the next time it
encounters the article. @xref{Setting Marks}
@item
@cindex customizing threading
@menu
-* Loose Threads:: How Gnus gathers loose threads into bigger threads.
+* Loose Threads:: How gnus gathers loose threads into bigger threads.
* Filling In Threads:: Making the threads displayed look fuller.
* More Threading:: Even more variables for fiddling with threads.
* Low-Level Threading:: You thought it was over... but you were wrong!
@table @code
@item gnus-summary-make-false-root
@vindex gnus-summary-make-false-root
-If non-@code{nil}, Gnus will gather all loose subtrees into one big tree
+If non-@code{nil}, gnus will gather all loose subtrees into one big tree
and create a dummy root at the top. (Wait a minute. Root at the top?
Yup.) Loose subtrees occur when the real root has expired, or you've
read or killed the root in a previous session.
-When there is no real root of a thread, Gnus will have to fudge
-something. This variable says what fudging method Gnus should use.
+When there is no real root of a thread, gnus will have to fudge
+something. This variable says what fudging method gnus should use.
There are four possible values:
@iftex
@item gnus-summary-gather-subject-limit
@vindex gnus-summary-gather-subject-limit
Loose threads are gathered by comparing subjects of articles. If this
-variable is @code{nil}, Gnus requires an exact match between the
+variable is @code{nil}, gnus requires an exact match between the
subjects of the loose threads before gathering them into one big
super-thread. This might be too strict a requirement, what with the
presence of stupid newsreaders that chop off long subject lines. If
you think so, set this variable to, say, 20 to require that only the
first 20 characters of the subjects have to match. If you set this
-variable to a really low number, you'll find that Gnus will gather
+variable to a really low number, you'll find that gnus will gather
everything in sight into one thread, which isn't very helpful.
@cindex fuzzy article gathering
-If you set this variable to the special value @code{fuzzy}, Gnus will
+If you set this variable to the special value @code{fuzzy}, gnus will
use a fuzzy string comparison algorithm on the subjects (@pxref{Fuzzy
Matching}).
@table @code
@item gnus-fetch-old-headers
@vindex gnus-fetch-old-headers
-If non-@code{nil}, Gnus will attempt to build old threads by fetching
-more old headers---headers to articles marked as read. If you
-would like to display as few summary lines as possible, but still
-connect as many loose threads as possible, you should set this variable
-to @code{some} or a number. If you set it to a number, no more than
-that number of extra old headers will be fetched. In either case,
-fetching old headers only works if the backend you are using carries
-overview files---this would normally be @code{nntp}, @code{nnspool} and
+If non-@code{nil}, gnus will attempt to build old threads by fetching
+more old headers---headers to articles marked as read. If you would
+like to display as few summary lines as possible, but still connect as
+many loose threads as possible, you should set this variable to
+@code{some} or a number. If you set it to a number, no more than that
+number of extra old headers will be fetched. In either case, fetching
+old headers only works if the backend you are using carries overview
+files---this would normally be @code{nntp}, @code{nnspool} and
@code{nnml}. Also remember that if the root of the thread has been
-expired by the server, there's not much Gnus can do about that.
+expired by the server, there's not much gnus can do about that.
This variable can also be set to @code{invisible}. This won't have any
visible effects, but is useful if you use the @kbd{A T} command a lot
gotten by setting this variable to @code{some}. Gnus will then look at
the complete @code{References} headers of all articles and try to string
together articles that belong in the same thread. This will leave
-@dfn{gaps} in the threading display where Gnus guesses that an article
+@dfn{gaps} in the threading display where gnus guesses that an article
is missing from the thread. (These gaps appear like normal summary
-lines. If you select a gap, Gnus will try to fetch the article in
-question.) If this variable is @code{t}, Gnus will display all these
+lines. If you select a gap, gnus will try to fetch the article in
+question.) If this variable is @code{t}, gnus will display all these
``gaps'' without regard for whether they are useful for completing the
-thread or not. Finally, if this variable is @code{more}, Gnus won't cut
+thread or not. Finally, if this variable is @code{more}, gnus won't cut
off sparse leaf nodes that don't lead anywhere. This variable is
@code{nil} by default.
@item gnus-parse-headers-hook
@vindex gnus-parse-headers-hook
Hook run before parsing any headers. The default value is
-@code{(gnus-decode-rfc1522)}, which means that QPized headers will be
-slightly decoded in a hackish way. This is likely to change in the
-future when Gnus becomes @sc{MIME}ified.
+@code{(gnus-set-summary-default-charset)}, which sets up local value of
+@code{default-mime-charset} in summary buffer based on variable
+@code{gnus-newsgroup-default-charset-alist}.
@item gnus-alter-header-function
@vindex gnus-alter-header-function
If you read your news from an @sc{nntp} server that's far away, the
network latencies may make reading articles a chore. You have to wait
for a while after pressing @kbd{n} to go to the next article before the
-article appears. Why can't Gnus just go ahead and fetch the article
+article appears. Why can't gnus just go ahead and fetch the article
while you are reading the previous one? Why not, indeed.
First, some caveats. There are some pitfalls to using asynchronous
-article fetching, especially the way Gnus does it.
+article fetching, especially the way gnus does it.
Let's say you are reading article 1, which is short, and article 2 is
quite long, and you are not interested in reading that. Gnus does not
know this, so it goes ahead and fetches article 2. You decide to read
-article 3, but since Gnus is in the process of fetching article 2, the
+article 3, but since gnus is in the process of fetching article 2, the
connection is blocked.
-To avoid these situations, Gnus will open two (count 'em two)
+To avoid these situations, gnus will open two (count 'em two)
connections to the server. Some people may think this isn't a very nice
thing to do, but I don't see any real alternatives. Setting up that
-extra connection takes some time, so Gnus startup will be slower.
+extra connection takes some time, so gnus startup will be slower.
Gnus will fetch more articles than you will read. This will mean that
the link between your machine and the @sc{nntp} server will become more
@code{nil} on read articles. The function is called with an article
data structure as the only parameter.
-If, for instance, you wish to pre-fetch only unread articles shorter than 100 lines, you could say something like:
+If, for instance, you wish to pre-fetch only unread articles shorter
+than 100 lines, you could say something like:
@lisp
(defun my-async-short-unread-p (data)
@end lisp
These functions will be called many, many times, so they should
-preferably be short and sweet to avoid slowing down Gnus too much.
-It's probably a good idea to byte-compile things like this.
+preferably be short and sweet to avoid slowing down gnus too much. It's
+probably a good idea to byte-compile things like this.
@vindex gnus-prefetched-article-deletion-strategy
Articles have to be removed from the asynch buffer sooner or later. The
@vindex gnus-cache-active-file
The cache stores information on what articles it contains in its active
file (@code{gnus-cache-active-file}). If this file (or any other parts
-of the cache) becomes all messed up for some reason or other, Gnus
+of the cache) becomes all messed up for some reason or other, gnus
offers two functions that will try to set things right. @kbd{M-x
gnus-cache-generate-nov-databases} will (re)build all the @sc{nov}
files, and @kbd{gnus-cache-generate-active} will (re)generate the active
If you have a slow connection, but the idea of using caching seems
unappealing to you (and it is, really), you can help the situation some
-by switching on the @dfn{backlog}. This is where Gnus will buffer
+by switching on the @dfn{backlog}. This is where gnus will buffer
already read articles so that it doesn't have to re-fetch articles
you've already read. This only helps if you are in the habit of
re-selecting articles you've recently read, of course. If you never do
-that, turning the backlog on will slow Gnus down a little bit, and
+that, turning the backlog on will slow gnus down a little bit, and
increase memory usage some.
@vindex gnus-keep-backlog
-If you set @code{gnus-keep-backlog} to a number @var{n}, Gnus will store
+If you set @code{gnus-keep-backlog} to a number @var{n}, gnus will store
at most @var{n} old articles in a buffer for later re-fetching. If this
-variable is non-@code{nil} and is not a number, Gnus will store
+variable is non-@code{nil} and is not a number, gnus will store
@emph{all} read articles, which means that your Emacs will grow without
bound before exploding and taking your machine down with you. I put
that in there just to keep y'all on your toes.
(@pxref{Decoding Articles}).
@vindex gnus-save-all-headers
-If @code{gnus-save-all-headers} is non-@code{nil}, Gnus will not delete
+If @code{gnus-save-all-headers} is non-@code{nil}, gnus will not delete
unwanted headers before saving the article.
@vindex gnus-saved-headers
@vindex gnus-default-article-saver
You can customize the @code{gnus-default-article-saver} variable to make
-Gnus do what you want it to. You can use any of the four ready-made
+gnus do what you want it to. You can use any of the four ready-made
functions below, or you can create your own.
@table @code
@end table
@vindex gnus-split-methods
-You can have Gnus suggest where to save articles by plonking a regexp into
-the @code{gnus-split-methods} alist. For instance, if you would like to
-save articles related to Gnus in the file @file{gnus-stuff}, and articles
-related to VM in @code{vm-stuff}, you could set this variable to something
-like:
+You can have gnus suggest where to save articles by plonking a regexp
+into the @code{gnus-split-methods} alist. For instance, if you would
+like to save articles related to gnus in the file @file{gnus-stuff}, and
+articles related to VM in @code{vm-stuff}, you could set this variable
+to something like:
@lisp
(("^Subject:.*gnus\\|^Newsgroups:.*gnus" "gnus-stuff")
name completion over the results from applying this variable.
This variable is @code{((gnus-article-archive-name))} by default, which
-means that Gnus will look at the articles it saves for an
-@code{Archive-name} line and use that as a suggestion for the file
-name.
+means that gnus will look at the articles it saves for an
+@code{Archive-name} line and use that as a suggestion for the file name.
Here's an example function to clean up file names somewhat. If you have
lots of mail groups called things like
simplish rule: The subjects must be (nearly) identical, except for the
last two numbers of the line. (Spaces are largely ignored, however.)
-For example: If you choose a subject called @samp{cat.gif (2/3)}, Gnus
+For example: If you choose a subject called @samp{cat.gif (2/3)}, gnus
will find all the articles that match the regexp @samp{^cat.gif
([0-9]+/[0-9]+).*$}.
(@code{gnus-uu-decode-uu-and-save}).
All this is very much different from how @code{gnus-uu} worked with
-@sc{gnus 4.1}, where you had explicit keystrokes for everything under
+@sc{GNUS 4.1}, where you had explicit keystrokes for everything under
the sun. This version of @code{gnus-uu} generally assumes that you mark
articles in some way (@pxref{Setting Process Marks}) and then press
@kbd{X u}.
@item gnus-uu-user-view-rules-end
@vindex gnus-uu-user-view-rules-end
-This variable is consulted if Gnus couldn't make any matches from the
+This variable is consulted if gnus couldn't make any matches from the
user and default view rules.
@item gnus-uu-user-archive-rules
@cindex viewing files
@cindex pseudo-articles
-After decoding, if the file is some sort of archive, Gnus will attempt
+After decoding, if the file is some sort of archive, gnus will attempt
to unpack the archive and see if any of the files in the archive can be
viewed. For instance, if you have a gzipped tar file @file{pics.tar.gz}
-containing the files @file{pic1.jpg} and @file{pic2.gif}, Gnus will
+containing the files @file{pic1.jpg} and @file{pic2.gif}, gnus will
uncompress and de-tar the main file, and then view the two pictures.
This unpacking process is recursive, so if the archive contains archives
of archives, it'll all be unpacked.
-Finally, Gnus will normally insert a @dfn{pseudo-article} for each
+Finally, gnus will normally insert a @dfn{pseudo-article} for each
extracted file into the summary buffer. If you go to these
``articles'', you will be prompted for a command to run (usually Gnus
will make a suggestion), and then the command will be run.
@vindex gnus-cite-face-list
List of faces used for highlighting citations (@pxref{Faces and Fonts}).
When there are citations from multiple articles in the same message,
-Gnus will try to give each citation from each article its own face.
+gnus will try to give each citation from each article its own face.
This should make it easier to see who wrote what.
@item gnus-supercite-regexp
@item W m
@kindex W m (Summary)
@findex gnus-summary-toggle-mime
-Toggle whether to run the article through @sc{mime} before displaying
+Toggle whether to display the article as @sc{mime} message
(@code{gnus-summary-toggle-mime}).
@item W o
Remove CR (i. e., @samp{^M}s on the end of the lines)
(@code{gnus-article-remove-cr}).
-@item W q
-@kindex W q (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
-non-ASCII (i. e., 8-bit) articles. It typically makes strings like
-@samp{déjà vu} look like @samp{d=E9j=E0 vu}, which doesn't look very
-readable to me.
-
@item W f
@kindex W f (Summary)
@cindex x-face
If given a positive numerical prefix, fetch that many articles back into
the ancestry. If given a negative numerical prefix, fetch just that
-ancestor. So if you say @kbd{3 ^}, Gnus will fetch the parent, the
+ancestor. So if you say @kbd{3 ^}, gnus will fetch the parent, the
grandparent and the grandgrandparent of the current article. If you say
-@kbd{-3 ^}, Gnus will only fetch the grandgrandparent of the current
+@kbd{-3 ^}, gnus will only fetch the grandgrandparent of the current
article.
@item A R (Summary)
@section Alternative Approaches
Different people like to read news using different methods. This being
-Gnus, we offer a small selection of minor modes for the summary buffers.
+gnus, we offer a small selection of minor modes for the summary buffers.
@menu
* Pick and Read:: First mark articles and then read them.
@cindex trees
@vindex gnus-use-trees
-If you don't like the normal Gnus summary display, you might try setting
+If you don't like the normal gnus summary display, you might try setting
@code{gnus-use-trees} to @code{t}. This will create (by default) an
additional @dfn{tree buffer}. You can execute all summary mode commands
in the tree buffer.
@item gnus-tree-minimize-window
@vindex gnus-tree-minimize-window
-If this variable is non-@code{nil}, Gnus will try to keep the tree
-buffer as small as possible to allow more room for the other Gnus
+If this variable is non-@code{nil}, gnus will try to keep the tree
+buffer as small as possible to allow more room for the other gnus
windows. If this variable is a number, the tree buffer will never be
higher than that number. The default is @code{t}. Note that if you
have several windows displayed side-by-side in a frame and the tree
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.
+@kbd{C-c C-c} command, gnus won't re-highlight the article.
@item B q
@kindex B q (Summary)
@vindex gnus-move-split-methods
@cindex moving articles
-If you move (or copy) articles regularly, you might wish to have Gnus
+If you move (or copy) articles regularly, you might wish to have gnus
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
@vindex gnus-summary-ignore-duplicates
@item gnus-summary-ignore-duplicates
-When Gnus discovers two articles that have the same @code{Message-ID},
+When gnus discovers two articles that have the same @code{Message-ID},
it has to do something drastic. No articles are allowed to have the
same @code{Message-ID}, but this may happen when reading mail from some
sources. Gnus allows you to customize what happens with this variable.
-If it is @code{nil} (which is the default), Gnus will rename the
+If it is @code{nil} (which is the default), gnus will rename the
@code{Message-ID} (for display purposes only) and display the article as
any other article. If this variable is @code{t}, it won't display the
article---it'll be as if it never existed.
@item H i
@kindex H i (Summary)
@findex gnus-info-find-node
-Go to the Gnus info node (@code{gnus-info-find-node}).
+Go to the gnus info node (@code{gnus-info-find-node}).
@end table
@vindex gnus-kill-summary-on-exit
If you're in the habit of exiting groups, and then changing your mind
about it, you might set @code{gnus-kill-summary-on-exit} to @code{nil}.
-If you do that, Gnus won't kill the summary buffer when you exit it.
+If you do that, gnus won't kill the summary buffer when you exit it.
(Quelle surprise!) Instead it will change the name of the buffer to
something like @samp{*Dead Summary ... *} and install a minor mode
called @code{gnus-dead-summary-mode}. Now, if you switch back to this
@node Duplicate Suppression
@section Duplicate Suppression
-By default, Gnus tries to make sure that you don't have to read the same
+By default, gnus tries to make sure that you don't have to read the same
article more than once by utilizing the crossposting mechanism
(@pxref{Crosspost Handling}). However, that simple and efficient
-approach may not work satisfactory for some users for various
-reasons.
+approach may not work satisfactory for some users for various reasons.
@enumerate
@item
@vindex gnus-save-duplicate-list
If non-@code{nil}, save the list of duplicates to a file. This will
make startup and shutdown take longer, so the default is @code{nil}.
-However, this means that only duplicate articles read in a single Gnus
+However, this means that only duplicate articles read in a single gnus
session are suppressed.
@item gnus-duplicate-list-length
default is @file{~/News/suppression}.
@end table
-If you have a tendency to stop and start Gnus often, setting
+If you have a tendency to stop and start gnus often, setting
@code{gnus-save-duplicate-list} to @code{t} is probably a good idea. If
-you leave Gnus running for weeks on end, you may have it @code{nil}. On
+you leave gnus running for weeks on end, you may have it @code{nil}. On
the other hand, saving the list makes startup and shutdown much slower,
-so that means that if you stop and start Gnus often, you should set
+so that means that if you stop and start gnus often, you should set
@code{gnus-save-duplicate-list} to @code{nil}. Uhm. I'll leave this up
to you to figure out, I think.
The articles are displayed in the article buffer, of which there is only
one. All the summary buffers share the same article buffer unless you
-tell Gnus otherwise.
+tell gnus otherwise.
@menu
* Hiding Headers:: Deciding what headers should be displayed.
-* Using MIME:: Pushing articles through @sc{mime} before reading them.
+* Using MIME:: Pushing to mime articles as @sc{mime} messages.
* Customizing Articles:: Tailoring the look of the articles.
* Article Keymap:: Keystrokes available in the article buffer.
* Misc Article:: Other stuff.
should be a regular expression that matches all lines that you want to
hide. All lines that do not match this variable will remain visible.
-For instance, if you just want to get rid of the @code{References} line
-and the @code{Xref} line, you might say:
+For instance, if you just want to get rid of the @code{References} field
+and the @code{Xref} field, you might say:
@lisp
(setq gnus-ignored-headers "^References:\\|^Xref:")
@end lisp
Any headers that are to remain visible, but are not listed in this
-variable, will be displayed in random order after all the headers listed in this variable.
+variable, will be displayed in random order after all the headers listed
+in this variable.
@findex gnus-article-hide-boring-headers
@vindex gnus-article-display-hook
@code{gnus-article-display-hook}. What this function does depends on
the @code{gnus-boring-article-headers} variable. It's a list, but this
list doesn't actually contain header names. Instead is lists various
-@dfn{boring conditions} that Gnus can check and remove from sight.
+@dfn{boring conditions} that gnus can check and remove from sight.
These conditions are:
@table @code
@vindex gnus-strict-mime
@findex metamail-buffer
Gnus handles @sc{mime} by pushing the articles through
-@code{gnus-show-mime-method}, which is @code{metamail-buffer} by
-default. This function calls the external @code{metamail} program to
-actually do the work. One common problem with this program is that is
-thinks that it can't display 8-bit things in the Emacs buffer. To tell
-it the truth, put something like the following in your
-@file{.bash_profile} file. (You do use @code{bash}, don't you?)
-
-@example
-export MM_CHARSET="iso-8859-1"
-@end example
-
-For more information on @code{metamail}, see its manual page.
+@code{gnus-show-mime-method}, which is @code{gnus-show-mime-method} by
+default. This function calls the SEMI MIME-View program to actually do
+the work. For more information on SEMI MIME-View, see its manual page
+(however it is not existed yet, sorry).
Set @code{gnus-show-mime} to @code{t} if you want to use
@sc{mime} all the time. However, if @code{gnus-strict-mime} is
set, then you'll see some unfortunate display glitches in the article
buffer. These can't be avoided.
-It might be best to just use the toggling functions from the summary
-buffer to avoid getting nasty surprises. (For instance, you enter the
-group @samp{alt.sing-a-long} and, before you know it, @sc{mime} has
-decoded the sound file in the article and some horrible sing-a-long song
-comes screaming out your speakers, and you can't find the volume
-button, because there isn't one, and people are starting to look at you,
-and you try to stop the program, but you can't, and you can't find the
-program to control the volume, and everybody else in the room suddenly
-decides to look at you disdainfully, and you'll feel rather stupid.)
+In GNUS or Gnus, it might be best to just use the toggling functions
+from the summary buffer to avoid getting nasty surprises. (For instance,
+you enter the group @samp{alt.sing-a-long} and, before you know it,
+@sc{mime} has decoded the sound file in the article and some horrible
+sing-a-long song comes screaming out your speakers, and you can't find
+the volume button, because there isn't one, and people are starting to
+look at you, and you try to stop the program, but you can't, and you
+can't find the program to control the volume, and everybody else in the
+room suddenly decides to look at you disdainfully, and you'll feel
+rather stupid.)
Any similarity to real events and people is purely coincidental. Ahem.
+To avoid such kind of situation, gnus stops to use
+@code{metamail-buffer}. So now, you can set @code{gnus-show-mime} to
+non-@code{nil} every-time, then you can push button in the article
+buffer when there are nobody else.
+
@node Customizing Articles
@section Customizing Articles
@kindex C-c ^ (Article)
@findex gnus-article-refer-article
If point is in the neighborhood of a @code{Message-ID} and you press
-@kbd{r}, Gnus will try to get that article from the server
+@kbd{r}, gnus will try to get that article from the server
(@code{gnus-article-refer-article}).
@item C-c C-m