@code{nil}. Otherwise, set it to @code{t} if you want to compare them
always in a case-insensitive manner.
+You can define different sorting to different groups via
+@code{gnus-parameters}. Here is an example to sort an @acronym{NNTP}
+group by subject and an @acronym{RSS} group by reverse date to see the
+latest news at the top. In this example, the first group is the Debian
+daily news group @code{gmane.linux.debian.user.news} from
+news.gmane.org. The @acronym{RSS} group corresponds to the Debian
+weekly news RSS feed
+@url{http://packages.debian.org/unstable/newpkg_main.en.rdf},
+@xref{RSS}.
+
+@lisp
+(setq
+ gnus-parameters
+ '(("nntp.*gmane\\.debian\\.user\\.news"
+ (gnus-show-threads nil)
+ (gnus-article-sort-functions '((not gnus-article-sort-by-date)))
+ (gnus-use-adaptive-scoring nil)
+ (gnus-use-scoring nil))
+ ("nnrss.*debian"
+ (gnus-show-threads nil)
+ (gnus-article-sort-functions 'gnus-article-sort-by-subject)
+ (gnus-use-adaptive-scoring nil)
+ (gnus-use-scoring t)
+ (gnus-score-find-score-files-function 'gnus-score-find-single)
+ (gnus-summary-line-format "%U%R%z%d %I%(%[ %s %]%)\n"))))
+@end lisp
+
@node Listing Groups
@section Listing Groups
@lisp
(setq gnus-thread-sort-functions
- '((lambda (t1 t2)
- (not (gnus-thread-sort-by-number t1 t2)))
+ '((not gnus-thread-sort-by-number)
gnus-thread-sort-by-score))
@end lisp
-Yet more examples. You can define different sorting to different
-groups. Here is an example for where one @acronym{NNTP} group is
-sorted by subject and the @acronym{RSS} group is sorted by date to see
-the latest news at the top.
-
-@lisp
-(require 'cl)
-
-(defun my-gnus-summary-mode-hook-group-select ()
- (flet ((lsetq (x val) ;; Local setq
- (set (make-local-variable x) val)))
- (cond
- ;; In Group buffer to make Debian daily news group press: G m
- ;; and point it to nntp server news.gmane.org and
- ;; group gmane.linux.debian.user.news
- ((string-match "nntp.*debian.user.news" gnus-newsgroup-name)
- (lsetq 'gnus-show-threads nil)
- (lsetq 'gnus-article-sort-functions 'gnus-article-sort-by-date-reverse)
- (lsetq 'gnus-use-adaptive-scoring nil)
- (lsetq 'gnus-use-scoring nil))
- ;; In Group buffer to read Debian weekly news RSS feed press: G R
- ;; and point it to url:
- ;; http://packages.debian.org/unstable/newpkg_main.en.rdf
- ((string-match "nnrss.*debian" gnus-newsgroup-name)
- (lsetq 'gnus-show-threads nil)
- (lsetq 'gnus-article-sort-functions 'gnus-article-sort-by-subject)
- (lsetq 'gnus-use-adaptive-scoring nil)
- (lsetq 'gnus-use-scoring t)
- (lsetq 'gnus-score-find-score-files-function 'gnus-score-find-single)
- (lsetq 'gnus-summary-line-format "%U%R%z%d %I%(%[ %s %]%)\n")))))
-
-(defun my-gnus-summary-mode-hook ()
- (my-gnus-summary-mode-hook-group-select))
-@end lisp
-
@vindex gnus-thread-score-function
The function in the @code{gnus-thread-score-function} variable (default
@code{+}) is used for calculating the total score of a thread. Useful
gnus-article-sort-by-subject))
@end lisp
+You can define group specific sorting via @code{gnus-parameters},
+@xref{Group Parameters}.
@node Asynchronous Fetching
(nntp-via-rlogin-command "ssh")
@end lisp
-See also @code{nntp-via-rlogin-command-switches}.
+See also @code{nntp-via-rlogin-command-switches}. Here's an example for
+an indirect connection:
+@lisp
+(setq gnus-select-method
+ '(nntp "indirect"
+ (nntp-address "news.server.example")
+ (nntp-via-user-name "intermediate_user_name")
+ (nntp-via-address "intermediate.host.example")
+ (nntp-via-rlogin-command "ssh")
+ (nntp-end-of-line "\n")
+ (nntp-via-rlogin-command-switches ("-C" "-t" "-e" "none"))
+ (nntp-open-connection-function nntp-open-via-rlogin-and-telnet)))
+@end lisp
If you're behind a firewall, but have direct access to the outside world
through a wrapper command like "runsocks", you could open a socksified
@item nnheader-max-head-length
@vindex nnheader-max-head-length
When the back ends read straight heads of articles, they all try to read
-as little as possible. This variable (default 4096) specifies
+as little as possible. This variable (default 8192) specifies
the absolute max length the back ends will try to read before giving up
on finding a separator line between the head and the body. If this
variable is @code{nil}, there is no upper read bound. If it is
January 25th 1997 (after 84 releases) as ``Gnus 5.4'' (67 releases).
On September 13th 1997, Quassia Gnus was started and lasted 37 releases.
-If was released as ``Gnus 5.6'' on March 8th 1998 (46 releases).
+It was released as ``Gnus 5.6'' on March 8th 1998 (46 releases).
Gnus 5.6 begat Pterodactyl Gnus on August 29th 1998 and was released as
``Gnus 5.8'' (after 99 releases and a CVS repository) on December 3rd
Earlier this was done only via @kbd{G p} (or @kbd{G c}), which stored
the parameters in @file{~/.newsrc.eld}, but via this variable you can
enjoy the powers of customize, and simplified backups since you set the
-variable in @file{~/.emacs} instead of @file{~/.newsrc.eld}. The
+variable in @file{~/.gnus.el} instead of @file{~/.newsrc.eld}. The
variable maps regular expressions matching group names to group
parameters, a'la:
@lisp
@item
Smileys (@samp{:-)}, @samp{;-)} etc) are now iconized for Emacs too.
-Put @code{(setq gnus-treat-display-smileys nil)} in @file{~/.emacs} to
+Put @code{(setq gnus-treat-display-smileys nil)} in @file{~/.gnus.el} to
disable it.
@item
followups (see the variables @code{message-cross-post-@var{*}}).
@item
-References and X-Draft-Headers are no longer generated when you start
-composing messages and @code{message-generate-headers-first} is
+References and X-Draft-From headers are no longer generated when you
+start composing messages and @code{message-generate-headers-first} is
@code{nil}.
@item
(@code{gnus-summary-insert-cached-articles}). The new function filters
out other articles.
-@item Some limiting commands accept a @kbd{C-u} prefix to negate the match.
+@item
+Some limiting commands accept a @kbd{C-u} prefix to negate the match.
If @kbd{C-u} is used on subject, author or extra headers, i.e., @kbd{/
s}, @kbd{/ a}, and @kbd{/ x}
useful data is in the summary buffer, anyway. Set this variable to
@samp{^NEVVVVER} or @samp{From:}, or whatever you feel you need.
-Set this hook to all the available hiding commands:
+Use the following to enable all the available hiding features:
@lisp
(setq gnus-treat-hide-headers 'head
gnus-treat-hide-signature t
certain things, it's trivial to have it do something a different way.
(Well, at least if you know how to write Lisp code.) However, that's
beyond the scope of this manual, so we are simply going to talk about
-some common constructs that you normally use in your @file{.emacs} file
-to customize Gnus.
+some common constructs that you normally use in your @file{~/.gnus.el}
+file to customize Gnus. (You can also use the @file{~/.emacs} file, but
+in order to set things of Gnus up, it is much better to use the
+@file{~/.gnus.el} file, @xref{Startup Files}.)
If you want to set the variable @code{gnus-florgbnize} to four (4), you
write the following:
This function (really ``special form'') @code{setq} is the one that can
set a variable to some value. This is really all you need to know. Now
-you can go and fill your @file{.emacs} file with lots of these to change
-how Gnus works.
+you can go and fill your @file{~/.gnus.el} file with lots of these to
+change how Gnus works.
-If you have put that thing in your @file{.emacs} file, it will be read
-and @code{eval}ed (which is lisp-ese for ``run'') the next time you
-start Emacs. If you want to change the variable right away, simply say
+If you have put that thing in your @file{~/.gnus.el} file, it will be
+read and @code{eval}ed (which is Lisp-ese for ``run'') the next time you
+start Gnus. If you want to change the variable right away, simply say
@kbd{C-x C-e} after the closing parenthesis. That will @code{eval} the
previous ``form'', which is a simple @code{setq} statement here.