@documentencoding ISO-8859-1
@copying
-Copyright @copyright{} 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+Copyright @copyright{} 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.2 or
+under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with no
-Invariant Sections, with the Front-Cover texts being ``A GNU
-Manual'', and with the Back-Cover Texts as in (a) below. A copy of the
-license is included in the section entitled ``GNU Free Documentation
-License'' in the Emacs manual.
-
-(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
-this GNU Manual, like GNU software. Copies published by the Free
-Software Foundation raise funds for GNU development.''
-
-This document is part of a collection distributed under the GNU Free
-Documentation License. If you want to distribute this document
-separately from the collection, you can do so by adding a copy of the
-license to the document, as described in section 6 of the license.
+Invariant Sections, with the Front-Cover texts being ``A GNU Manual'',
+and with the Back-Cover Texts as in (a) below. A copy of the license
+is included in the section entitled ``GNU Free Documentation License''.
+
+(a) The FSF's Back-Cover Text is: ``You have the freedom to copy and
+modify this GNU manual. Buying copies from the FSF supports it in
+developing GNU and promoting software freedom.''
@end quotation
@end copying
\begin{document}
% Adjust ../Makefile.in if you change the following line:
-\newcommand{\gnusversionname}{No Gnus v0.7}
+\newcommand{\gnusversionname}{No Gnus v0.11}
\newcommand{\gnuschaptername}{}
\newcommand{\gnussectionname}{}
@end iflatex
@end iftex
-@ifnottex
-@insertcopying
-@end ifnottex
-
@dircategory Emacs
@direntry
-* Gnus: (gnus). The newsreader Gnus.
+* Gnus: (gnus). The newsreader Gnus.
@end direntry
@iftex
@finalout
@end iftex
-@setchapternewpage odd
-
@titlepage
@insertcopying
@end titlepage
+@summarycontents
+@contents
@node Top
@top The Gnus Newsreader
luck.
@c Adjust ../Makefile.in if you change the following line:
-This manual corresponds to No Gnus v0.7.
+This manual corresponds to No Gnus v0.11.
+
+@ifnottex
+@insertcopying
+@end ifnottex
@end ifinfo
people should be empowered to do what they want by using (or abusing)
the program.
+@c Adjust ../Makefile.in if you change the following line:
+This manual corresponds to No Gnus v0.11.
+
+@heading Other related manuals
+@itemize
+@item Message manual: Composing messages
+@item Emacs-MIME: Composing messages; @acronym{MIME}-specific parts.
+@item Sieve: Managing Sieve scripts in Emacs.
+@item PGG: @acronym{PGP/MIME} with Gnus.
+@item SASL: @acronym{SASL} authentication in Emacs.
+@end itemize
+
@end iftex
@menu
* Article Buttons:: Click on URLs, Message-IDs, addresses and the like.
* Article Button Levels:: Controlling appearance of buttons.
* Article Date:: Grumble, UT!
-* Article Display:: Display various stuff---X-Face, Picons, Smileys
+* Article Display:: Display various stuff---X-Face, Picons, Smileys, Gravatars
* Article Signature:: What is a signature?
* Article Miscellanea:: Various other stuff.
* Server Buffer:: Making and editing virtual servers.
* Getting News:: Reading USENET news with Gnus.
+* Using IMAP:: Reading mail from @acronym{IMAP}.
* Getting Mail:: Reading your personal mail with Gnus.
* Browsing the Web:: Getting messages from a plethora of Web sources.
-* IMAP:: Using Gnus as a @acronym{IMAP} client.
-* Other Sources:: Reading directories, files, SOUP packets.
+* Other Sources:: Reading directories, files.
* Combined Groups:: Combining groups into one group.
* Email Based Diary:: Using mails to manage diary events in Gnus.
* Gnus Unplugged:: Reading news and mail offline.
Choosing a Mail Back End
* Unix Mail Box:: Using the (quite) standard Un*x mbox.
-* Rmail Babyl:: Emacs programs use the Rmail Babyl format.
+* Babyl:: Babyl was used by older versions of Rmail.
* Mail Spool:: Store your mail in a private spool?
* MH Spool:: An mhspool-like back end.
* Maildir:: Another one-file-per-message format.
* Archiving Mail::
* Web Searches:: Creating groups from articles that match a string.
-* Slashdot:: Reading the Slashdot comments.
-* Ultimate:: The Ultimate Bulletin Board systems.
-* Web Archive:: Reading mailing list archived on web.
* RSS:: Reading RDF site summary.
* Customizing W3:: Doing stuff to Emacs/W3 from Gnus.
-@acronym{IMAP}
-
-* Splitting in IMAP:: Splitting mail with nnimap.
-* Expiring in IMAP:: Expiring mail with nnimap.
-* Editing IMAP ACLs:: Limiting/enabling other users access to a mailbox.
-* Expunging mailboxes:: Equivalent of a ``compress mailbox'' button.
-* A note on namespaces:: How to (not) use @acronym{IMAP} namespace in Gnus.
-* Debugging IMAP:: What to do when things don't work.
-
Other Sources
* Directory Groups:: You can read a directory as if it was a newsgroup.
* Anything Groups:: Dired? Who needs dired?
* Document Groups:: Single files can be the basis of a group.
-* SOUP:: Reading @sc{soup} packets ``offline''.
* Mail-To-News Gateways:: Posting articles via mail-to-news gateways.
Document Groups
* Document Server Internals:: How to add your own document types.
-SOUP
-
-* SOUP Commands:: Commands for creating and sending @sc{soup} packets
-* SOUP Groups:: A back end for reading @sc{soup} packets.
-* SOUP Replies:: How to enable @code{nnsoup} to take over mail and news.
-
Combined Groups
* Virtual Groups:: Combining articles from many groups.
-* Kibozed Groups:: Looking through parts of the newsfeed for articles.
Email Based Diary
* 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 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.
* Predicate Specifiers:: Specifying predicates.
* Moderation:: What to do if you're a moderator.
* Fuzzy Matching:: What's the big fuzz?
* Thwarting Email Spam:: Simple ways to avoid unsolicited commercial email.
* Spam Package:: A package for filtering and processing spam.
+* The Gnus Registry:: A package for tracking messages by Message-ID.
* Other modes:: Interaction with other modes.
* Various Various:: Things that are really various.
* Smileys:: Show all those happy faces the way they were
meant to be shown.
* Picons:: How to display pictures of what you're reading.
+* Gravatars:: Display the avatar of people you read.
* XVarious:: Other XEmacsy Gnusey variables.
Thwarting Email Spam
@section Finding the News
@cindex finding news
+First of all, you should know that there is a special buffer called
+@code{*Server*} that lists all the servers Gnus knows about. You can
+press @kbd{^} from the Group buffer to see it. In the Server buffer,
+you can press @kbd{RET} on a defined server to see all the groups it
+serves (subscribed or not!). You can also add or delete servers, edit
+a foreign server's definition, agentize or de-agentize a server, and
+do many other neat things. @xref{Server Buffer}.
+@xref{Foreign Groups}. @xref{Agent Basics}.
+
@vindex gnus-select-method
@c @head
The @code{gnus-select-method} variable says where Gnus should look for
If that fails as well, Gnus will try to use the machine running Emacs
as an @acronym{NNTP} server. That's a long shot, though.
-@vindex gnus-nntp-server
-If @code{gnus-nntp-server} is set, this variable will override
-@code{gnus-select-method}. You should therefore set
-@code{gnus-nntp-server} to @code{nil}, which is what it is by default.
-
-@vindex gnus-secondary-servers
-@vindex gnus-nntp-server
-You can also make Gnus prompt you interactively for the name of an
-@acronym{NNTP} server. If you give a non-numerical prefix to @code{gnus}
-(i.e., @kbd{C-u M-x gnus}), Gnus will let you choose between the servers
-in the @code{gnus-secondary-servers} list (if any). You can also just
-type in the name of any server you feel like visiting. (Note that this
-will set @code{gnus-nntp-server}, which means that if you then @kbd{M-x
-gnus} later in the same Emacs session, Gnus will contact the same
-server.)
-
@findex gnus-group-browse-foreign-server
@kindex B (Group)
However, if you use one @acronym{NNTP} server regularly and are just
topic parameter that looks like
@example
-"nnslashdot"
+"nnml"
@end example
will mean that all groups that match that regex will be subscribed under
change @code{gnus-select-method}, your @file{.newsrc} file becomes
worthless.
-Gnus provides a few functions to attempt to translate a @file{.newsrc}
-file from one server to another. They all have one thing in
-common---they take a looong time to run. You don't want to use these
-functions more than absolutely necessary.
-
-@kindex M-x gnus-change-server
-@findex gnus-change-server
-If you have access to both servers, Gnus can request the headers for all
-the articles you have read and compare @code{Message-ID}s and map the
-article numbers of the read articles and article marks. The @kbd{M-x
-gnus-change-server} command will do this for all your native groups. It
-will prompt for the method you want to move to.
-
-@kindex M-x gnus-group-move-group-to-server
-@findex gnus-group-move-group-to-server
-You can also move individual groups with the @kbd{M-x
-gnus-group-move-group-to-server} command. This is useful if you want to
-move a (foreign) group from one server to another.
-
@kindex M-x gnus-group-clear-data-on-native-groups
@findex gnus-group-clear-data-on-native-groups
-If you don't have access to both the old and new server, all your marks
-and read ranges have become worthless. You can use the @kbd{M-x
-gnus-group-clear-data-on-native-groups} command to clear out all data
-that you have on your native groups. Use with caution.
+You can use the @kbd{M-x gnus-group-clear-data-on-native-groups}
+command to clear out all data that you have on your native groups.
+Use with caution.
@kindex M-x gnus-group-clear-data
@findex gnus-group-clear-data
@item gnus-before-startup-hook
@vindex gnus-before-startup-hook
-A hook run after starting up Gnus successfully.
+A hook called as the first thing when Gnus is started.
@item gnus-startup-hook
@vindex gnus-startup-hook
@vindex gnus-no-groups-message
Message displayed by Gnus when no groups are available.
-@item gnus-play-startup-jingle
-@vindex gnus-play-startup-jingle
-If non-@code{nil}, play the Gnus jingle at startup.
-
-@item gnus-startup-jingle
-@vindex gnus-startup-jingle
-Jingle to be played if the above variable is non-@code{nil}. The
-default is @samp{Tuxedomoon.Jingle4.au}.
+@item gnus-use-backend-marks
+@vindex gnus-use-backend-marks
+If non-@code{nil}, Gnus will store article marks both in the
+@file{.newsrc.eld} file and in the backends. This will slow down
+group operation some.
@end table
* Exiting Gnus:: Stop reading news and get some work done.
* Group Topics:: A folding group mode divided into topics.
* Non-ASCII Group Names:: Accessing groups of non-English names.
+* Searching:: Mail search engines.
* Misc Group Stuff:: Other stuff that you can to do.
@end menu
@vindex gnus-group-update-hook
@findex gnus-group-highlight-line
@code{gnus-group-update-hook} is called when a group line is changed.
-It will not be called when @code{gnus-visual} is @code{nil}. This hook
-calls @code{gnus-group-highlight-line} by default.
+It will not be called when @code{gnus-visual} is @code{nil}.
@node Group Maneuvering
@vindex gnus-auto-select-subject
If @code{gnus-auto-select-first} is non-@code{nil}, select an article
automatically when entering a group with the @kbd{SPACE} command.
-Which article this is is controlled by the
+Which article this is controlled by the
@code{gnus-auto-select-subject} variable. Valid values for this
variable are:
@section Subscription Commands
@cindex subscription
+The following commands allow for managing your subscriptions in the
+Group buffer. If you want to subscribe to many groups, it's probably
+more convenient to go to the @ref{Server Buffer}, and choose the
+server there using @kbd{RET} or @kbd{SPC}. Then you'll have the
+commands listed in @ref{Browse Foreign Server} at hand.
+
@table @kbd
@item S t
All groups with a level less than or equal to
@code{gnus-group-default-list-level} will be listed in the group buffer
by default.
+This variable can also be a function. In that case, that function will
+be called and the result will be used as value.
+
@vindex gnus-group-list-inactive-groups
If @code{gnus-group-list-inactive-groups} is non-@code{nil}, non-active
@findex gnus-group-make-help-group
Make the Gnus help group (@code{gnus-group-make-help-group}).
-@item G a
-@kindex G a (Group)
-@cindex (ding) archive
-@cindex archive 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
-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}.
-
-@item G k
-@kindex G k (Group)
-@findex gnus-group-make-kiboze-group
-@cindex nnkiboze
-Make a kiboze group. You will be prompted for a name, for a regexp to
-match groups to be ``included'' in the kiboze group, and a series of
-strings to match on headers (@code{gnus-group-make-kiboze-group}).
-@xref{Kibozed Groups}.
-
@item G D
@kindex G D (Group)
@findex gnus-group-enter-directory
newsgroups.
+The following commands create ephemeral groups. They can be called not
+only from the Group buffer, but in any Gnus buffer.
+
+@table @code
+@item gnus-read-ephemeral-gmane-group
+@findex gnus-read-ephemeral-gmane-group
+@vindex gnus-gmane-group-download-format
+Read an ephemeral group on Gmane.org. The articles are downloaded via
+HTTP using the URL specified by @code{gnus-gmane-group-download-format}.
+Gnus will prompt you for a group name, the start article number and an
+the article range.
+
+@item gnus-read-ephemeral-gmane-group-url
+@findex gnus-read-ephemeral-gmane-group-url
+This command is similar to @code{gnus-read-ephemeral-gmane-group}, but
+the group name and the article number and range are constructed from a
+given @acronym{URL}. Supported @acronym{URL} formats include e.g.
+@url{http://thread.gmane.org/gmane.foo.bar/12300/focus=12399},
+@url{http://thread.gmane.org/gmane.foo.bar/12345/},
+@url{http://article.gmane.org/gmane.foo.bar/12345/},
+@url{http://permalink.gmane.org/gmane.foo.bar/12345/}, and
+@url{http://news.gmane.org/group/gmane.foo.bar/thread=12345}.
+
+@item gnus-read-ephemeral-emacs-bug-group
+@findex gnus-read-ephemeral-emacs-bug-group
+Read an Emacs bug report in an ephemeral group. Gnus will prompt for a
+bug number. The default is the number at point. The @acronym{URL} is
+specified in @code{gnus-bug-group-download-format-alist}.
+
+@item gnus-read-ephemeral-debian-bug-group
+@findex gnus-read-ephemeral-debian-bug-group
+Read a Debian bug report in an ephemeral group. Analog to
+@code{gnus-read-ephemeral-emacs-bug-group}.
+@end table
+
+Some of these command are also useful for article buttons, @xref{Article
+Buttons}.
+
+Here is an example:
+@lisp
+(require 'gnus-art)
+(add-to-list
+ 'gnus-button-alist
+ '("#\\([0-9]+\\)\\>" 1
+ (string-match "\\<emacs\\>" (or gnus-newsgroup-name ""))
+ gnus-read-ephemeral-emacs-bug-group 1))
+@end lisp
+
+
@node Group Parameters
@section Group Parameters
@cindex group parameters
The group parameters store information local to a particular group.
+
+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}).
+Additionally, you can set group parameters via the
+@code{gnus-parameters} variable, see below.
+
Here's an example group parameter list:
@example
If it is set, the value is used as the method for posting message
instead of @code{gnus-post-method}.
+@item mail-source
+@cindex mail-source
+If it is set, and the setting of @code{mail-sources} includes a
+@code{group} mail source (@pxref{Mail Sources}), the value is a
+mail source for this group.
+
@item banner
@cindex banner
An item like @code{(banner . @var{regexp})} causes any part of an article
Top, sieve, Emacs Sieve}.
@item (agent parameters)
-If the agent has been enabled, you can set any of the its parameters
-to control the behavior of the agent in individual groups. See Agent
+If the agent has been enabled, you can set any of its parameters to
+control the behavior of the agent in individual groups. See Agent
Parameters in @ref{Category Syntax}. Most users will choose to set
agent parameters in either an agent category or group topic to
minimize the configuration effort.
in the summary buffer you enter, and the form @code{nil} will be
@code{eval}ed there.
-Note that this feature sets the variable locally to the summary buffer.
+Note that this feature sets the variable locally to the summary buffer
+if and only if @var{variable} has been bound as a variable. Otherwise,
+only evaluating the form will take place. So, you may want to bind the
+variable in advance using @code{defvar} or other if the result of the
+form needs to be set to it.
+
But some variables are evaluated in the article buffer, or in the
message buffer (of a reply or followup or otherwise newly created
message). As a workaround, it might help to add the variable in
question to @code{gnus-newsgroup-variables}. @xref{Various Summary
Stuff}. So if you want to set @code{message-from-style} via the group
parameters, then you may need the following statement elsewhere in your
-@file{~/.gnus} file:
+@file{~/.gnus.el} file:
@lisp
(add-to-list 'gnus-newsgroup-variables 'message-from-style)
This can also be used as a group-specific hook function. 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 (meaningless) result of the
-@code{(ding)} form.
+@code{(dummy-variable (ding))} in the parameters of that group. If
+@code{dummy-variable} has been bound (see above), it will be set to the
+(meaningless) result of the @code{(ding)} form.
Alternatively, since the VARIABLE becomes local to the group, this
pattern can be used to temporarily change a hook. For example, if the
@end table
-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}).
-
@vindex gnus-parameters
Group parameters can be set via the @code{gnus-parameters} variable too.
But some variables, such as @code{visible}, have no effect (For this
@item u
@kindex u (Browse)
@findex gnus-browse-unsubscribe-current-group
+@vindex gnus-browse-subscribe-newsgroup-method
Unsubscribe to the current group, or, as will be the case here,
-subscribe to it (@code{gnus-browse-unsubscribe-current-group}).
+subscribe to it (@code{gnus-browse-unsubscribe-current-group}). You
+can affect the way the new group is entered into the Group buffer
+using the variable @code{gnus-browse-subscribe-newsgroup-method}. See
+@pxref{Subscription Methods} for available options.
@item l
@itemx q
@code{gnus-group-name-charset-group-alist}.
There is one more important variable for non-@acronym{ASCII} group
-names. @emph{XEmacs users must set this}. Emacs users necessarily need
-not do:
+names:
@table @code
@item nnmail-pathname-coding-system
-The value of this variable should be a coding system or @code{nil}
-(which is the default). The @code{nnml} back end, the @code{nnrss} back
-end, the @acronym{NNTP} marks feature (@pxref{NNTP marks}), the agent,
-and the cache use non-@acronym{ASCII} group names in those files and
-directories. This variable overrides the value of
-@code{file-name-coding-system} which specifies the coding system used
-when encoding and decoding those file names and directory names.
+@vindex nnmail-pathname-coding-system
+The value of this variable should be a coding system or @code{nil}. The
+default is @code{nil} in Emacs, or is the aliasee of the coding system
+named @code{file-name} (a certain coding system of which an alias is
+@code{file-name}) in XEmacs.
+
+The @code{nnml} back end, the @code{nnrss} back end, the @acronym{NNTP}
+marks feature (@pxref{NNTP marks}), the agent, and the cache use
+non-@acronym{ASCII} group names in those files and directories. This
+variable overrides the value of @code{file-name-coding-system} which
+specifies the coding system used when encoding and decoding those file
+names and directory names.
In XEmacs (with the @code{mule} feature), @code{file-name-coding-system}
is the only means to specify the coding system used to encode and decode
-file names. Therefore, @emph{you, XEmacs users, have to set it} to the
-coding system that is suitable to encode and decode non-@acronym{ASCII}
-group names. On the other hand, Emacs uses the value of
+file names. On the other hand, Emacs uses the value of
@code{default-file-name-coding-system} if @code{file-name-coding-system}
-is @code{nil}. Normally the value of
-@code{default-file-name-coding-system} is initialized according to the
-locale, so you will need to do nothing if the value is suitable to
-encode and decode non-@acronym{ASCII} group names.
+is @code{nil} or it is bound to the value of
+@code{nnmail-pathname-coding-system} which is @code{nil}.
+
+Normally the value of @code{default-file-name-coding-system} in Emacs or
+@code{nnmail-pathname-coding-system} in XEmacs is initialized according
+to the locale, so you will need to do nothing if the value is suitable
+to encode and decode non-@acronym{ASCII} group names.
The value of this variable (or @code{default-file-name-coding-system})
does not necessarily need to be the same value that is determined by
@code{gnus-group-name-charset-method-alist} and
@code{gnus-group-name-charset-group-alist}.
-If you want to subscribe to the groups spelled in Chinese but
-@code{default-file-name-coding-system} is initialized by default to
-@code{iso-latin-1} for example, that is the most typical case where you
-have to set @code{nnmail-pathname-coding-system} even if you are an
-Emacs user. The @code{utf-8} coding system is a good candidate for it.
-Otherwise, you may change the locale in your system so that
-@code{default-file-name-coding-system} may be initialized to an
-appro