\makeindex
\begin{document}
-\newcommand{\gnusversionname}{Oort Gnus v0.18}
+\newcommand{\gnusversionname}{Oort Gnus v0.19}
\newcommand{\gnuschaptername}{}
\newcommand{\gnussectionname}{}
spool or your mbox file. All at the same time, if you want to push your
luck.
-This manual corresponds to Oort Gnus v0.18.
+This manual corresponds to Oort Gnus v0.19.
@end ifinfo
(defface my-group-face-1
'((t (:foreground "Red" :bold t))) "First group face")
(defface my-group-face-2
- '((t (:foreground "DarkSeaGreen4" :bold t))) "Second group face")
+ '((t (:foreground "DarkSeaGreen4" :bold t)))
+ "Second group face")
(defface my-group-face-3
'((t (:foreground "Green4" :bold t))) "Third group face")
(defface my-group-face-4
@}
@end example
-The Sieve language is described in RFC 3028. @xref{Top, , Top, sieve,
+The Sieve language is described in RFC 3028. @xref{Top, , Top, sieve,
Emacs Sieve}.
@item (@var{variable} @var{form})
@vindex gnus-list-identifiers
A use for this feature is to remove a mailing list identifier tag in
the subject fields of articles. E.g. if the news group
-@samp{nntp+news.gnus.org:gmane.text.docbook.apps} has the tag
-@samp{DOC-BOOK-APPS:} in the subject of all articles, this tag can be
-removed from the article subjects in the summary buffer for the group by
-putting @code{(gnus-list-identifiers "DOCBOOK-APPS:")} into the group
-parameters for the group.
+@example
+nntp+news.gnus.org:gmane.text.docbook.apps
+@end example
+has the tag @samp{DOC-BOOK-APPS:} in the subject of all articles, this
+tag can be removed from the article subjects in the summary buffer for
+the group by putting @code{(gnus-list-identifiers "DOCBOOK-APPS:")}
+into the group parameters for the group.
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
@item G S m
@kindex G S m (Group)
@findex gnus-group-sort-groups-by-method
-Sort the group buffer alphabetically by back end name
+Sort the group buffer alphabetically by back end name@*
(@code{gnus-group-sort-groups-by-method}).
@item G S n
@item G P m
@kindex G P m (Group)
@findex gnus-group-sort-selected-groups-by-method
-Sort the groups alphabetically by back end name
+Sort the groups alphabetically by back end name@*
(@code{gnus-group-sort-selected-groups-by-method}).
@item G P n
So, let's have a look at an example group buffer:
@example
+@group
Gnus
Emacs -- I wuw it!
3: comp.emacs
Misc
8: comp.binaries.fractals
13: comp.sources.unix
+@end group
@end example
So, here we have one top-level topic (@samp{Gnus}), two topics under
article, you could say something like:
@lisp
+@group
(add-hook 'gnus-summary-mode-hook 'my-alter-summary-map)
(defun my-alter-summary-map ()
(local-set-key "!" 'gnus-summary-put-mark-as-ticked-next))
+@end group
@end lisp
or
@item / c
@kindex / c (Summary)
@findex gnus-summary-limit-exclude-childless-dormant
-Exclude all dormant articles that have no children from the limit
+Exclude all dormant articles that have no children from the limit@*
(@code{gnus-summary-limit-exclude-childless-dormant}).
@item / C
This can also be a predicate specifier (@pxref{Predicate Specifiers}).
Available predicates are @code{gnus-article-unread-p} and
-@code{gnus-article-unseen-p}).
+@code{gnus-article-unseen-p}.
Here's an example:
@item T s
@kindex T s (Summary)
@findex gnus-summary-show-thread
-Expose the (sub-)thread hidden under the current article, if any
+Expose the (sub-)thread hidden under the current article, if any@*
(@code{gnus-summary-show-thread}).
@item T h
sends, you can use the following element to remove them:
@lisp
-("@@yoo-hoo\\.co\\.jp\\'" . "\n_+\nDo You Yoo-hoo!\\?\n.*\n.*\n")
+("@@yoo-hoo\\.co\\.jp\\'" .
+ "\n_+\nDo You Yoo-hoo!\\?\n.*\n.*\n")
@end lisp
@end table
@item W Y a
@kindex W Y a (Summary)
@findex gnus-article-outlook-repair-attribution
-Repair a broken attribution line.
+Repair a broken attribution line.@*
(@code{gnus-article-outlook-repair-attribution}).
@item W Y c
@end lisp
@var{header} is a regular expression.
+@end table
@subsubsection Related variables and functions
+@table @code
@item gnus-button-@var{*}-level
@xref{Article Button Levels}.
@item gnus-tree-brackets
@vindex gnus-tree-brackets
This is used for differentiating between ``real'' articles and
-``sparse'' articles. The format is @code{((@var{real-open} . @var{real-close})
-(@var{sparse-open} . @var{sparse-close}) (@var{dummy-open} . @var{dummy-close}))}, and the
-default is @code{((?[ . ?]) (?( . ?)) (?@{ . ?@}) (?< . ?>))}.
+``sparse'' articles. The format is
+@example
+((@var{real-open} . @var{real-close})
+ (@var{sparse-open} . @var{sparse-close})
+ (@var{dummy-open} . @var{dummy-close}))
+@end example
+and the default is @code{((?[ . ?]) (?( . ?)) (?@{ . ?@}) (?< . ?>))}.
@item gnus-tree-parent-child-edges
@vindex gnus-tree-parent-child-edges
Here's the same thread displayed in a vertical tree buffer:
@example
+@group
@{***@}
|--------------------------\-----\-----\
(***) [Bjo] [Gun] [Gun]
[Gun] [Eri] [Eri] [odd]
|
[Paa]
+@end group
@end example
If you're using horizontal trees, it might be nice to display the trees
@lisp
(setq gnus-newsgroup-variables
- '(message-use-followup-to
- (gnus-visible-headers .
- "^From:\\|^Newsgroups:\\|^Subject:\\|^Date:\\|^To:")))
+ '(message-use-followup-to
+ (gnus-visible-headers .
+ "^From:\\|^Newsgroups:\\|^Subject:\\|^Date:\\|^To:")))
@end lisp
@end table
@example
application/pgp-keys; gpg --import --interactive --verbose; needsterminal
@end example
-
+@noindent
This happens to also be the default action defined in
@code{mailcap-mime-data}.
@item nnspool-nov-directory
@vindex nnspool-nov-directory
-Where @code{nnspool} will look for @acronym{NOV} files. This is normally
+Where @code{nnspool} will look for @acronym{NOV} files. This is normally@*
@file{/usr/spool/news/over.view/}.
@item nnspool-lib-dir
@table @code
@item mail-source-crash-box
@vindex mail-source-crash-box
-File where mail will be stored while processing it. The default is
+File where mail will be stored while processing it. The default is@*
@file{~/.emacs-mail-crash-box}.
@item mail-source-delete-incoming
@lisp
(setq nnmail-split-fancy
'(| ;; @r{Messages duplicates go to a separate group.}
- ("gnus-warning" "duplicat\\(e\\|ion\\) of message" "duplicate")
- ;; @r{Message from daemons, postmaster, and the like to another.}
- (any mail "mail.misc")
- ;; @r{Other rules.}
- [ ... ] ))
+ ("gnus-warning" "duplicat\\(e\\|ion\\) of message" "duplicate")
+ ;; @r{Message from daemons, postmaster, and the like to another.}
+ (any mail "mail.misc")
+ ;; @r{Other rules.}
+ [...] ))
@end lisp
-
+@noindent
Or something like:
@lisp
(setq nnmail-split-methods
article (other than via expiry) may also make an article younger.
@item expire-group
-If this is set to a string (a full Gnus group name, like
-@code{"backend+server.address.string:group.name"}), and if it is not
-the name of the same group that the parameter belongs to, then
-articles will be moved to the specified group during expiry before
-being deleted. @emph{If this is set to an nnmaildir group, the
+If this is set to a string such as a full Gnus group name, like
+@example
+"backend+server.address.string:group.name"
+@end example
+and if it is not the name of the same group that the parameter belongs
+to, then articles will be moved to the specified group during expiry
+before being deleted. @emph{If this is set to an nnmaildir group, the
article will be just as old in the destination group as it was in the
source group.} So be careful with @code{expire-age} in the
destination group. If this is set to the name of the same group that
@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
+news articles and comments. The default is@*
@samp{http://slashdot.org/search.pl?section=&min=%d}.
@item nnslashdot-comments-url
@table @code
@item nnultimate-directory
@vindex nnultimate-directory
-The directory where @code{nnultimate} stores its files. The default is
+The directory where @code{nnultimate} stores its files. The default is@*
@file{~/News/ultimate/}.
@end table
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 @var{an_egroup} RET egroups RET
-www.egroups.com RET @var{your@@email.address RET}}. (Substitute the
+www.egroups.com RET @var{your@@email.address} RET}. (Substitute the
@var{an_egroup} with the mailing list you subscribed, the
@var{your@@email.address} with your email address.), or to browse the
back end by @kbd{B nnwarchive RET mail-archive RET}.
@table @code
@item nnwarchive-directory
@vindex nnwarchive-directory
-The directory where @code{nnwarchive} stores its files. The default is
+The directory where @code{nnwarchive} stores its files. The default is@*
@file{~/News/warchive/}.
@item nnwarchive-login
@lisp
(setq nnimap-split-rule
- '(("my1server" (".*" (("ding" "ding@@gnus.org")
- ("junk" "From:.*Simon")))
+ '(("my1server" (".*" (("ding" "ding@@gnus.org")
+ ("junk" "From:.*Simon")))
("my2server" ("INBOX" nnimap-split-fancy))
- ("my[34]server" (".*" (("private" "To:.*Simon")
- ("junk" my-junk-func)))))
+ ("my[34]server" (".*" (("private" "To:.*Simon")
+ ("junk" my-junk-func)))))
@end lisp
The virtual server name is in fact a regexp, so that the same rules
The @acronym{IMAP} protocol has a concept called namespaces, described
by the following text in the RFC:
-@example
+@display
5.1.2. Mailbox Namespace Naming Convention
By convention, the first hierarchical element of any mailbox name
comp.mail.misc newsgroup would have an mailbox name of
"#news.comp.mail.misc", and the name "comp.mail.misc" could refer
to a different object (e.g. a user's private mailbox).
-@end example
+@end display
While there is nothing in this text that warrants concern for the
@acronym{IMAP} implementation in Gnus, some servers use namespace
@item nngateway-mail2news-header-transformation
Creates a @code{To} header that looks like
@code{nngateway-address}.
+@end table
+
+@end table
Here's an example:
nngateway-mail2news-header-transformation)))
@end lisp
-@end table
-
-
-@end table
-
So, to use this, simply say something like:
@lisp
@code{gnus-secondary-select-methods} are agentized.
@item
-
Decide on download policy. It's fairly simple once you decide whether
you are going to use agent categories, topic parameters, and/or group
parameters to implement your policy. If you're new to gnus, it
may look like:
@example
+@group
split = frame | horizontal | vertical | buffer | form
frame = "(frame " size *split ")"
horizontal = "(horizontal " size *split ")"
buffer = "(" buf-name " " size *[ "point" ] *[ "frame-focus"] ")"
size = number | frame-params
buf-name = group | article | summary ...
+@end group
@end example
The limitations are that the @code{frame} split can only appear as the
@item gnus-nocem-groups
@vindex gnus-nocem-groups
Gnus will look for NoCeM messages in the groups in this list. The
-default is @code{("news.lists.filters" "news.admin.net-abuse.bulletins"
-"alt.nocem.misc" "news.admin.net-abuse.announce")}.
+default is
+@lisp
+("news.lists.filters" "news.admin.net-abuse.bulletins"
+ "alt.nocem.misc" "news.admin.net-abuse.announce")
+@end lisp
@item gnus-nocem-issuers
@vindex gnus-nocem-issuers
There are many people issuing NoCeM messages. This list says what
-people you want to listen to. The default is @code{("Automoose-1"
-"clewis@@ferret.ocunix.on.ca" "cosmo.roadkill" "SpamHippo"
-"hweede@@snafu.de")}; fine, upstanding citizens all of them.
+people you want to listen to. The default is
+@lisp
+("Automoose-1" "clewis@@ferret.ocunix.on.ca"
+ "cosmo.roadkill" "SpamHippo" "hweede@@snafu.de")
+@end lisp
+fine, upstanding citizens all of them.
-Known despammers that you can put in this list are listed at
+Known despammers that you can put in this list are listed at@*
@uref{http://www.xs4all.nl/~rosalind/nocemreg/nocemreg.html}.
You do not have to heed NoCeM messages from all these people---just the
@item gnus-nocem-directory
@vindex gnus-nocem-directory
-This is where Gnus will store its NoCeM cache files. The default is
+This is where Gnus will store its NoCeM cache files. The default is@*
@file{~/News/NoCeM/}.
@item gnus-nocem-expiry-wait
(add-hook 'message-send-hook 'mail-add-payment)
@end lisp
-The @code{hashcash.el} library can be found at
-@uref{http://users.actrix.gen.nz/mycroft/hashcash.el}, or in the Gnus
-development contrib directory.
+The @code{hashcash.el} library can be found in the Gnus development
+contrib directory. or at
+@uref{http://users.actrix.gen.nz/mycroft/hashcash.el}.
You will need to set up some additional variables as well:
Typical test will involve calls to the following functions:
-@example
+@smallexample
Reset: (setq spam-stat (make-hash-table :test 'equal))
Learn spam: (spam-stat-process-spam-directory "~/Mail/mail/spam")
Learn non-spam: (spam-stat-process-non-spam-directory "~/Mail/mail/misc")
Number of words: (hash-table-count spam-stat)
Test spam: (spam-stat-test-directory "~/Mail/mail/spam")
Test non-spam: (spam-stat-test-directory "~/Mail/mail/misc")
-@end example
+@end smallexample
Here is how you would create your dictionary:
-@example
+@smallexample
Reset: (setq spam-stat (make-hash-table :test 'equal))
Learn spam: (spam-stat-process-spam-directory "~/Mail/mail/spam")
Learn non-spam: (spam-stat-process-non-spam-directory "~/Mail/mail/misc")
Repeat for any other non-spam group you need...
Reduce table size: (spam-stat-reduce-size)
Save table: (spam-stat-save)
-@end example
+@end smallexample
@node Various Various
@section Various Various
manifests itself by causing Gnus to be very slow. In these cases, you
can use @kbd{M-x toggle-debug-on-quit} and press @kbd{C-g} when things are
slow, and then try to analyze the backtrace (repeating the procedure
-helps isolating the real problem areas). A fancier approach is to use
-the elisp profiler, ELP. The profiler is (or should be) fully
-documented elsewhere, but to get you started there are a few steps
-that need to be followed. First, instrument the part of Gnus you are
-interested in for profiling, e.g. @kbd{M-x elp-instrument-package RET
-gnus} or @kbd{M-x elp-instrument-package RET message}. Then perform
-the operation that is slow and press @kbd{M-x elp-results}. You will
-then see which operations that takes time, and can debug them further.
-If the entire operation takes much longer than the time spent in the
-slowest function in the profiler output, you probably profiled the
-wrong part of Gnus. To reset profiling statistics, use @kbd{M-x
-elp-reset-all}. @kbd{M-x elp-restore-all} is supposed to remove
-profiling, but given the complexities and dynamic code generation in
-Gnus, it might not always work perfectly.
-
-If you just need help, you are better off asking on
-@samp{gnu.emacs.gnus}. I'm not very helpful.
+helps isolating the real problem areas).
+
+A fancier approach is to use the elisp profiler, ELP. The profiler is
+(or should be) fully documented elsewhere, but to get you started
+there are a few steps that need to be followed. First, instrument the
+part of Gnus you are interested in for profiling, e.g. @kbd{M-x
+elp-instrument-package RET gnus} or @kbd{M-x elp-instrument-package
+RET message}. Then perform the operation that is slow and press
+@kbd{M-x elp-results}. You will then see which operations that takes
+time, and can debug them further. If the entire operation takes much
+longer than the time spent in the slowest function in the profiler
+output, you probably profiled the wrong part of Gnus. To reset
+profiling statistics, use @kbd{M-x elp-reset-all}. @kbd{M-x
+elp-restore-all} is supposed to remove profiling, but given the
+complexities and dynamic code generation in Gnus, it might not always
+work perfectly.
@cindex gnu.emacs.gnus
@cindex ding mailing list
-You can also ask on the ding mailing list---@email{ding@@gnus.org}.
-Write to @email{ding-request@@gnus.org} to subscribe.
+If you just need help, you are better off asking on
+@samp{gnu.emacs.gnus}. I'm not very helpful. You can also ask on
+@email{ding@@gnus.org, the ding mailing list}. Write to
+@email{ding-request@@gnus.org} to subscribe.
@page