\input texinfo
-@include overrides.texi
+@include gnus-overrides.texi
@setfilename gnus
@settitle Gnus Manual
\begin{document}
% Adjust ../Makefile.in if you change the following line:
-\newcommand{\gnusversionname}{No Gnus v0.11}
+\newcommand{\gnusversionname}{No Gnus v0.18}
\newcommand{\gnuschaptername}{}
\newcommand{\gnussectionname}{}
@end iflatex
@end iftex
-@dircategory Emacs
+@dircategory Emacs network features
@direntry
* Gnus: (gnus). The newsreader Gnus.
@end direntry
luck.
@c Adjust ../Makefile.in if you change the following line:
-This manual corresponds to No Gnus v0.11.
+This manual corresponds to No Gnus v0.18
@ifnottex
@insertcopying
the program.
@c Adjust ../Makefile.in if you change the following line:
-This manual corresponds to No Gnus v0.11.
+This manual corresponds to No Gnus v0.18
@heading Other related manuals
@itemize
@findex gnus-group-list-dormant
List all groups with dormant articles (@code{gnus-group-list-dormant}).
+@item A !
+@kindex A ! (Group)
+@findex gnus-group-list-ticked
+List all groups with ticked articles (@code{gnus-group-list-ticked}).
+
@item A /
@kindex A / (Group)
@findex gnus-group-list-limit
Desired cursor position (instead of after first colon).
@item &user-date;
Age sensitive date format. Various date format is defined in
-@code{gnus-summary-user-date-format-alist}.
+@code{gnus-user-date-format-alist}.
@item u
User defined specifier. The next character in the format string should
be a letter. Gnus will call the function
the process/prefix convention, but only uses the headers from the
first article to determine the recipients.
+@item S L
+@kindex S L (Summary)
+@findex gnus-summary-reply-to-list-with-original
+When replying to a message from a mailing list, send a reply to that
+message to the mailing list, and include the original message
+(@code{gnus-summary-reply-to-list-with-original}).
+
@item S v
@kindex S v (Summary)
@findex gnus-summary-very-wide-reply
Each function takes two threads and returns non-@code{nil} if the first
thread should be sorted before the other. Note that sorting really is
-normally done by looking only at the roots of each thread.
+normally done by looking only at the roots of each thread. Exceptions
+to this rule are @code{gnus-thread-sort-by-most-recent-number} and
+@code{gnus-thread-sort-by-most-recent-date}.
If you use more than one function, the primary sort key should be the
last function in the list. You should probably always include
Date: 6 weeks, 4 days, 1 hour, 3 minutes, 8 seconds ago
@end example
-This line is updated continually by default. If you wish to switch
-that off, say:
+This line is updated continually by default. The frequency (in
+seconds) is controlled by the @code{gnus-article-update-date-headers}
+variable.
+
+If you wish to switch updating off, say:
@vindex gnus-article-update-date-headers
@lisp
@item
If you use the Gnus registry: don't use the registry with
@code{nnmairix} groups (put them in
-@code{gnus-registry-unfollowed-groups}). Be @emph{extra careful} if
-you use @code{gnus-registry-split-fancy-with-parent}; mails which are
-split into @code{nnmairix} groups are usually gone for good as soon as
-you check the group for new mail (yes, it has happened to me...).
+@code{gnus-registry-unfollowed-groups}; this is the default). Be
+@emph{extra careful} if you use
+@code{gnus-registry-split-fancy-with-parent}; mails which are split
+into @code{nnmairix} groups are usually gone for good as soon as you
+check the group for new mail (yes, it has happened to me...).
@item
Therefore: @emph{Never ever} put ``real'' mails into @code{nnmairix}
return a string. When the mouse passes over text with this property
set, a balloon window will appear and display the string. Please
refer to @ref{Tooltips, ,Tooltips, emacs, The Emacs Manual},
-(in GNU Emacs) or the doc string of @code{balloon-help-mode} (in
+(in Emacs) or the doc string of @code{balloon-help-mode} (in
XEmacs) for more information on this. (For technical reasons, the
guillemets have been approximated as @samp{<<} and @samp{>>} in this
paragraph.)
to fiddle with @code{gnus-tree-minimize-window} to avoid having the
windows resized.
+@subsection Window Configuration Names
+
+Here's a list of most of the currently known window configurations,
+and when they're used:
+
+@table @code
+@item group
+The group buffer.
+
+@item summary
+Entering a group and showing only the summary.
+
+@item article
+Selecting an article.
+
+@item server
+The server buffer.
+
+@item browse
+Browsing groups from the server buffer.
+
+@item message
+Composing a (new) message.
+
+@item only-article
+Showing only the article buffer.
+
+@item edit-article
+Editing an article.
+
+@item edit-form
+Editing group parameters and the like.
+
+@item edit-score
+Editing a server definition.
+
+@item post
+Composing a news message.
+
+@item reply
+Replying or following up an article without yanking the text.
+
+@item forward
+Forwarding a message.
+
+@item reply-yank
+Replying or following up an article with yanking the text.
+
+@item mail-bound
+Bouncing a message.
+
+@item pipe
+Sending an article to an external process.
+
+@item bug
+Sending a bug report.
+
+@item score-trace
+Displaying the score trace.
+
+@item score-words
+Displaying the score words.
+
+@item split-trace
+Displaying the split trace.
+
+@item compose-bounce
+Composing a bounce message.
+
+@item mml-preview
+Previewing a @acronym{MIME} part.
+
+@end table
+
+
@subsection Example Window Configurations
@itemize @bullet
The @code{gnus-face-properties-alist} variable affects the appearance of
displayed Face images. @xref{X-Face}.
-Viewing an @code{Face} header requires an Emacs that is able to display
+Viewing a @code{Face} header requires an Emacs that is able to display
PNG images.
@c Maybe add this:
@c (if (featurep 'xemacs)
@end enumerate
@menu
-* Setup::
+* Gnus Registry Setup::
* Fancy splitting to parent::
* Registry Article Refer Method::
* Store custom flags and keywords::
* Store arbitrary data::
@end menu
-@node Setup
-@subsection Setup
+@node Gnus Registry Setup
+@subsection Gnus Registry Setup
Fortunately, setting up the Gnus registry is pretty easy:
@lisp
-(setq gnus-registry-max-entries 2500
- gnus-registry-use-long-group-names t)
+(setq gnus-registry-max-entries 2500)
(gnus-registry-initialize)
@end lisp
("spam" t)
("train" t))
gnus-registry-max-entries 500000
- gnus-registry-use-long-group-names t
+ ;; this is the default
gnus-registry-track-extra '(sender subject))
@end lisp
-They say: keep a lot of messages around, use long group names, track
-messages by sender and subject (not just parent Message-ID), and when
-the registry splits incoming mail, use a majority rule to decide where
-messages should go if there's more than one possibility. In addition,
-the registry should ignore messages in groups that match ``nntp'',
-``nnrss'', ``spam'', or ``train.''
+They say: keep a lot of messages around, track messages by sender and
+subject (not just parent Message-ID), and when the registry splits
+incoming mail, use a majority rule to decide where messages should go
+if there's more than one possibility. In addition, the registry
+should ignore messages in groups that match ``nntp'', ``nnrss'',
+``spam'', or ``train.''
You are doubtless impressed by all this, but you ask: ``I am a Gnus
user, I customize to live. Give me more.'' Here you go, these are
The groups that will not be followed by
@code{gnus-registry-split-fancy-with-parent}. They will still be
remembered by the registry. This is a list of regular expressions.
-@end defvar
-
-@defvar gnus-registry-ignored-groups
-The groups that will not be remembered by the registry. This is a
-list of regular expressions, also available through Group/Topic
-customization (so you can ignore or keep a specific group or a whole
-topic).
-@end defvar
-
-@defvar gnus-registry-use-long-group-names
-Whether the registry will use long group names. It's recommended to
-set this to @code{t}, although everything works if you don't. Future
-functionality will require it.
+By default any group name that ends with ``delayed'', ``drafts'',
+``queue'', or ``INBOX'', belongs to the nnmairix backend, or contains
+the word ``archive'' is not followed.
@end defvar
@defvar gnus-registry-max-entries
registry will keep.
@end defvar
+@defvar gnus-registry-max-pruned-entries
+The maximum number (an integer or @code{nil} for unlimited) of entries
+the registry will keep after pruning.
+@end defvar
+
@defvar gnus-registry-cache-file
-The file where the registry will be stored between Gnus sessions.
+The file where the registry will be stored between Gnus sessions. By
+default the file name is @code{.gnus.registry.eioio} in the same
+directory as your @code{.newsrc.eld}.
@end defvar
@node Registry Article Refer Method
;; Keep enough entries to have a good hit rate when referring to an
;; article using the registry. Use long group names so that Gnus
;; knows where the article is.
-(setq gnus-registry-max-entries 2500
- gnus-registry-use-long-group-names t)
+(setq gnus-registry-max-entries 2500)
(gnus-registry-initialize)
@defvar gnus-registry-track-extra
This is a list of symbols, so it's best to change it from the
-Customize interface. By default it's @code{nil}, but you may want to
-track @code{subject} and @code{sender} as well when splitting by parent.
-It may work for you. It can be annoying if your mail flow is large and
+Customize interface. By default it's @code{(subject sender)}, which
+may work for you. It can be annoying if your mail flow is large and
people don't stick to the same groups.
@end defvar
This is a symbol, so it's best to change it from the Customize
interface. By default it's @code{nil}, but you may want to set it to
@code{majority} or @code{first} to split by sender or subject based on
-the majority of matches or on the first found.
+the majority of matches or on the first found. I find @code{majority}
+works best.
@end defvar
@node Store custom flags and keywords
will offer the available marks for completion.
@end defun
+You can use @code{defalias} to install a summary line formatting
+function that will show the registry marks. There are two flavors of
+this function, either showing the marks as single characters, using
+their @code{:char} property, or showing the marks as full strings.
+
+@lisp
+;; show the marks as single characters (see the :char property in
+;; `gnus-registry-marks'):
+;; (defalias 'gnus-user-format-function-M 'gnus-registry-article-marks-to-chars)
+
+;; show the marks by name (see `gnus-registry-marks'):
+;; (defalias 'gnus-user-format-function-M 'gnus-registry-article-marks-to-names)
+@end lisp
+
+
@node Store arbitrary data
@subsection Store arbitrary data
store arbitrary data (as long as it can be converted to a list for
storage).
-@defun gnus-registry-store-extra-entry (id key value)
-Store @code{value} in the extra data key @code{key} for message
-@code{id}.
-@end defun
-
-@defun gnus-registry-delete-extra-entry (id key)
-Delete the extra data key @code{key} for message @code{id}.
+@defun gnus-registry-set-id-key (id key value)
+Store @code{value} under @code{key} for message @code{id}.
@end defun
-@defun gnus-registry-fetch-extra (id key)
-Get the extra data key @code{key} for message @code{id}.
+@defun gnus-registry-get-id-key (id key)
+Get the data under @code{key} for message @code{id}.
@end defun
@defvar gnus-registry-extra-entries-precious
the second parameter.
@file{make.bat} has been rewritten from scratch, it now features
-automatic recognition of XEmacs and GNU Emacs, generates
+automatic recognition of XEmacs and Emacs, generates
@file{gnus-load.el}, checks if errors occur while compilation and
generation of info files and reports them at the end of the build
process. It now uses @code{makeinfo} if it is available and falls
@item
Try doing an @kbd{M-x gnus-version}. If you get something that looks
like @c
-@samp{No Gnus v0.10} @c Adjust ../Makefile.in if you change this line!
+@samp{No Gnus v0.18} @c Adjust ../Makefile.in if you change this line!
@c
you have the right files loaded. Otherwise you have some old @file{.el}
files lying around. Delete these.