annotate man/gnus.texi @ 30078:58ce7aad3fff

* configure.in: Check for <soundcard.h>. Look for ossaudio library, and set LIBSOUND accordingly.
author Ken Raeburn <raeburn@raeburn.org>
date Wed, 05 Jul 2000 19:18:52 +0000
parents 983e65f12610
children 6c4bf57935ff
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1 \input texinfo @c -*-texinfo-*-
Dave Love <fx@gnu.org>
parents:
diff changeset
2
Dave Love <fx@gnu.org>
parents:
diff changeset
3 @setfilename ../info/gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
4 @settitle Gnus Manual
Dave Love <fx@gnu.org>
parents:
diff changeset
5 @synindex fn cp
Dave Love <fx@gnu.org>
parents:
diff changeset
6 @synindex vr cp
Dave Love <fx@gnu.org>
parents:
diff changeset
7 @synindex pg cp
Dave Love <fx@gnu.org>
parents:
diff changeset
8 @direntry
Dave Love <fx@gnu.org>
parents:
diff changeset
9 * Gnus: (gnus). The newsreader Gnus.
Dave Love <fx@gnu.org>
parents:
diff changeset
10 @end direntry
Dave Love <fx@gnu.org>
parents:
diff changeset
11 @iftex
Dave Love <fx@gnu.org>
parents:
diff changeset
12 @finalout
Dave Love <fx@gnu.org>
parents:
diff changeset
13 @end iftex
Dave Love <fx@gnu.org>
parents:
diff changeset
14 @setchapternewpage odd
Dave Love <fx@gnu.org>
parents:
diff changeset
15
Dave Love <fx@gnu.org>
parents:
diff changeset
16 @iftex
Dave Love <fx@gnu.org>
parents:
diff changeset
17 @end iftex
Dave Love <fx@gnu.org>
parents:
diff changeset
18
Dave Love <fx@gnu.org>
parents:
diff changeset
19
Dave Love <fx@gnu.org>
parents:
diff changeset
20 @ifinfo
Dave Love <fx@gnu.org>
parents:
diff changeset
21
Dave Love <fx@gnu.org>
parents:
diff changeset
22 This file documents Gnus, the GNU Emacs newsreader.
Dave Love <fx@gnu.org>
parents:
diff changeset
23
Dave Love <fx@gnu.org>
parents:
diff changeset
24 Copyright (C) 1995,96 Free Software Foundation, Inc.
Dave Love <fx@gnu.org>
parents:
diff changeset
25
Dave Love <fx@gnu.org>
parents:
diff changeset
26 Permission is granted to make and distribute verbatim copies of
Dave Love <fx@gnu.org>
parents:
diff changeset
27 this manual provided the copyright notice and this permission notice
Dave Love <fx@gnu.org>
parents:
diff changeset
28 are preserved on all copies.
Dave Love <fx@gnu.org>
parents:
diff changeset
29
Dave Love <fx@gnu.org>
parents:
diff changeset
30 @ignore
Dave Love <fx@gnu.org>
parents:
diff changeset
31 Permission is granted to process this file through Tex and print the
Dave Love <fx@gnu.org>
parents:
diff changeset
32 results, provided the printed document carries copying permission
Dave Love <fx@gnu.org>
parents:
diff changeset
33 notice identical to this one except for the removal of this paragraph
Dave Love <fx@gnu.org>
parents:
diff changeset
34 (this paragraph not being relevant to the printed manual).
Dave Love <fx@gnu.org>
parents:
diff changeset
35
Dave Love <fx@gnu.org>
parents:
diff changeset
36 @end ignore
Dave Love <fx@gnu.org>
parents:
diff changeset
37 Permission is granted to copy and distribute modified versions of this
Dave Love <fx@gnu.org>
parents:
diff changeset
38 manual under the conditions for verbatim copying, provided also that the
Dave Love <fx@gnu.org>
parents:
diff changeset
39 entire resulting derived work is distributed under the terms of a
Dave Love <fx@gnu.org>
parents:
diff changeset
40 permission notice identical to this one.
Dave Love <fx@gnu.org>
parents:
diff changeset
41
Dave Love <fx@gnu.org>
parents:
diff changeset
42 Permission is granted to copy and distribute translations of this manual
Dave Love <fx@gnu.org>
parents:
diff changeset
43 into another language, under the above conditions for modified versions.
Dave Love <fx@gnu.org>
parents:
diff changeset
44 @end ifinfo
Dave Love <fx@gnu.org>
parents:
diff changeset
45
Dave Love <fx@gnu.org>
parents:
diff changeset
46 @tex
Dave Love <fx@gnu.org>
parents:
diff changeset
47
Dave Love <fx@gnu.org>
parents:
diff changeset
48 @titlepage
Dave Love <fx@gnu.org>
parents:
diff changeset
49 @title Gnus 5.7 Manual
Dave Love <fx@gnu.org>
parents:
diff changeset
50
Dave Love <fx@gnu.org>
parents:
diff changeset
51 @author by Lars Magne Ingebrigtsen
Dave Love <fx@gnu.org>
parents:
diff changeset
52 @page
Dave Love <fx@gnu.org>
parents:
diff changeset
53
Dave Love <fx@gnu.org>
parents:
diff changeset
54 @vskip 0pt plus 1filll
Dave Love <fx@gnu.org>
parents:
diff changeset
55 Copyright @copyright{} 1995,96,97 Free Software Foundation, Inc.
Dave Love <fx@gnu.org>
parents:
diff changeset
56
Dave Love <fx@gnu.org>
parents:
diff changeset
57 Permission is granted to make and distribute verbatim copies of
Dave Love <fx@gnu.org>
parents:
diff changeset
58 this manual provided the copyright notice and this permission notice
Dave Love <fx@gnu.org>
parents:
diff changeset
59 are preserved on all copies.
Dave Love <fx@gnu.org>
parents:
diff changeset
60
Dave Love <fx@gnu.org>
parents:
diff changeset
61 Permission is granted to copy and distribute modified versions of this
Dave Love <fx@gnu.org>
parents:
diff changeset
62 manual under the conditions for verbatim copying, provided that the
Dave Love <fx@gnu.org>
parents:
diff changeset
63 entire resulting derived work is distributed under the terms of a
Dave Love <fx@gnu.org>
parents:
diff changeset
64 permission notice identical to this one.
Dave Love <fx@gnu.org>
parents:
diff changeset
65
Dave Love <fx@gnu.org>
parents:
diff changeset
66 Permission is granted to copy and distribute translations of this manual
Dave Love <fx@gnu.org>
parents:
diff changeset
67 into another language, under the above conditions for modified versions.
Dave Love <fx@gnu.org>
parents:
diff changeset
68
Dave Love <fx@gnu.org>
parents:
diff changeset
69 @end titlepage
Dave Love <fx@gnu.org>
parents:
diff changeset
70 @page
Dave Love <fx@gnu.org>
parents:
diff changeset
71
Dave Love <fx@gnu.org>
parents:
diff changeset
72 @end tex
Dave Love <fx@gnu.org>
parents:
diff changeset
73
Dave Love <fx@gnu.org>
parents:
diff changeset
74
Dave Love <fx@gnu.org>
parents:
diff changeset
75 @node Top
Dave Love <fx@gnu.org>
parents:
diff changeset
76 @top The Gnus Newsreader
Dave Love <fx@gnu.org>
parents:
diff changeset
77
Dave Love <fx@gnu.org>
parents:
diff changeset
78 @ifinfo
Dave Love <fx@gnu.org>
parents:
diff changeset
79
Dave Love <fx@gnu.org>
parents:
diff changeset
80 You can read news (and mail) from within Emacs by using Gnus. The news
Dave Love <fx@gnu.org>
parents:
diff changeset
81 can be gotten by any nefarious means you can think of---@sc{nntp}, local
Dave Love <fx@gnu.org>
parents:
diff changeset
82 spool or your mbox file. All at the same time, if you want to push your
Dave Love <fx@gnu.org>
parents:
diff changeset
83 luck.
Dave Love <fx@gnu.org>
parents:
diff changeset
84
Dave Love <fx@gnu.org>
parents:
diff changeset
85 This manual corresponds to Gnus 5.7.
Dave Love <fx@gnu.org>
parents:
diff changeset
86
Dave Love <fx@gnu.org>
parents:
diff changeset
87 @end ifinfo
Dave Love <fx@gnu.org>
parents:
diff changeset
88
Dave Love <fx@gnu.org>
parents:
diff changeset
89 @iftex
Dave Love <fx@gnu.org>
parents:
diff changeset
90
Dave Love <fx@gnu.org>
parents:
diff changeset
91 Gnus is the advanced, self-documenting, customizable, extensible
Dave Love <fx@gnu.org>
parents:
diff changeset
92 unreal-time newsreader for GNU Emacs.
Dave Love <fx@gnu.org>
parents:
diff changeset
93
Dave Love <fx@gnu.org>
parents:
diff changeset
94 Oops. That sounds oddly familiar, so let's start over again to avoid
Dave Love <fx@gnu.org>
parents:
diff changeset
95 being accused of plagiarism:
Dave Love <fx@gnu.org>
parents:
diff changeset
96
Dave Love <fx@gnu.org>
parents:
diff changeset
97 Gnus is a message-reading laboratory. It will let you look at just
Dave Love <fx@gnu.org>
parents:
diff changeset
98 about anything as if it were a newsgroup. You can read mail with it,
Dave Love <fx@gnu.org>
parents:
diff changeset
99 you can browse directories with it, you can @code{ftp} with it---you can
Dave Love <fx@gnu.org>
parents:
diff changeset
100 even read news with it!
Dave Love <fx@gnu.org>
parents:
diff changeset
101
Dave Love <fx@gnu.org>
parents:
diff changeset
102 Gnus tries to empower people who read news the same way Emacs empowers
Dave Love <fx@gnu.org>
parents:
diff changeset
103 people who edit text. Gnus sets no limits to what the user should be
Dave Love <fx@gnu.org>
parents:
diff changeset
104 allowed to do. Users are encouraged to extend Gnus to make it behave
Dave Love <fx@gnu.org>
parents:
diff changeset
105 like they want it to behave. A program should not control people;
Dave Love <fx@gnu.org>
parents:
diff changeset
106 people should be empowered to do what they want by using (or abusing)
Dave Love <fx@gnu.org>
parents:
diff changeset
107 the program.
Dave Love <fx@gnu.org>
parents:
diff changeset
108
Dave Love <fx@gnu.org>
parents:
diff changeset
109 @end iftex
Dave Love <fx@gnu.org>
parents:
diff changeset
110
Dave Love <fx@gnu.org>
parents:
diff changeset
111
Dave Love <fx@gnu.org>
parents:
diff changeset
112 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
113 * Starting Up:: Finding news can be a pain.
Dave Love <fx@gnu.org>
parents:
diff changeset
114 * The Group Buffer:: Selecting, subscribing and killing groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
115 * The Summary Buffer:: Reading, saving and posting articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
116 * The Article Buffer:: Displaying and handling articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
117 * Composing Messages:: Information on sending mail and news.
Dave Love <fx@gnu.org>
parents:
diff changeset
118 * Select Methods:: Gnus reads all messages from various select methods.
Dave Love <fx@gnu.org>
parents:
diff changeset
119 * Scoring:: Assigning values to articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
120 * Various:: General purpose settings.
Dave Love <fx@gnu.org>
parents:
diff changeset
121 * The End:: Farewell and goodbye.
Dave Love <fx@gnu.org>
parents:
diff changeset
122 * Appendices:: Terminology, Emacs intro, FAQ, History, Internals.
Dave Love <fx@gnu.org>
parents:
diff changeset
123 * Index:: Variable, function and concept index.
Dave Love <fx@gnu.org>
parents:
diff changeset
124 * Key Index:: Key Index.
Dave Love <fx@gnu.org>
parents:
diff changeset
125 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
126
Dave Love <fx@gnu.org>
parents:
diff changeset
127 @node Starting Up
Dave Love <fx@gnu.org>
parents:
diff changeset
128 @chapter Starting Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
129 @cindex starting up
Dave Love <fx@gnu.org>
parents:
diff changeset
130
Dave Love <fx@gnu.org>
parents:
diff changeset
131 @kindex M-x gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
132 @findex gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
133 If your system administrator has set things up properly, starting Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
134 and reading news is extremely easy---you just type @kbd{M-x gnus} in
Dave Love <fx@gnu.org>
parents:
diff changeset
135 your Emacs.
Dave Love <fx@gnu.org>
parents:
diff changeset
136
Dave Love <fx@gnu.org>
parents:
diff changeset
137 @findex gnus-other-frame
Dave Love <fx@gnu.org>
parents:
diff changeset
138 @kindex M-x gnus-other-frame
Dave Love <fx@gnu.org>
parents:
diff changeset
139 If you want to start Gnus in a different frame, you can use the command
Dave Love <fx@gnu.org>
parents:
diff changeset
140 @kbd{M-x gnus-other-frame} instead.
Dave Love <fx@gnu.org>
parents:
diff changeset
141
Dave Love <fx@gnu.org>
parents:
diff changeset
142 If things do not go smoothly at startup, you have to twiddle some
Dave Love <fx@gnu.org>
parents:
diff changeset
143 variables in your @file{~/.gnus} file. This file is similar to
Dave Love <fx@gnu.org>
parents:
diff changeset
144 @file{~/.emacs}, but is read when gnus starts.
Dave Love <fx@gnu.org>
parents:
diff changeset
145
Dave Love <fx@gnu.org>
parents:
diff changeset
146 If you puzzle at any terms used in this manual, please refer to the
Dave Love <fx@gnu.org>
parents:
diff changeset
147 terminology section (@pxref{Terminology}).
Dave Love <fx@gnu.org>
parents:
diff changeset
148
Dave Love <fx@gnu.org>
parents:
diff changeset
149 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
150 * Finding the News:: Choosing a method for getting news.
Dave Love <fx@gnu.org>
parents:
diff changeset
151 * The First Time:: What does Gnus do the first time you start it?
Dave Love <fx@gnu.org>
parents:
diff changeset
152 * The Server is Down:: How can I read my mail then?
Dave Love <fx@gnu.org>
parents:
diff changeset
153 * Slave Gnusae:: You can have more than one Gnus active at a time.
Dave Love <fx@gnu.org>
parents:
diff changeset
154 * Fetching a Group:: Starting Gnus just to read a group.
Dave Love <fx@gnu.org>
parents:
diff changeset
155 * New Groups:: What is Gnus supposed to do with new groups?
Dave Love <fx@gnu.org>
parents:
diff changeset
156 * Startup Files:: Those pesky startup files---@file{.newsrc}.
Dave Love <fx@gnu.org>
parents:
diff changeset
157 * Auto Save:: Recovering from a crash.
Dave Love <fx@gnu.org>
parents:
diff changeset
158 * The Active File:: Reading the active file over a slow line Takes Time.
Dave Love <fx@gnu.org>
parents:
diff changeset
159 * Changing Servers:: You may want to move from one server to another.
Dave Love <fx@gnu.org>
parents:
diff changeset
160 * Startup Variables:: Other variables you might change.
Dave Love <fx@gnu.org>
parents:
diff changeset
161 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
162
Dave Love <fx@gnu.org>
parents:
diff changeset
163
Dave Love <fx@gnu.org>
parents:
diff changeset
164 @node Finding the News
Dave Love <fx@gnu.org>
parents:
diff changeset
165 @section Finding the News
Dave Love <fx@gnu.org>
parents:
diff changeset
166 @cindex finding news
Dave Love <fx@gnu.org>
parents:
diff changeset
167
Dave Love <fx@gnu.org>
parents:
diff changeset
168 @vindex gnus-select-method
Dave Love <fx@gnu.org>
parents:
diff changeset
169 @c @head
Dave Love <fx@gnu.org>
parents:
diff changeset
170 The @code{gnus-select-method} variable says where Gnus should look for
Dave Love <fx@gnu.org>
parents:
diff changeset
171 news. This variable should be a list where the first element says
Dave Love <fx@gnu.org>
parents:
diff changeset
172 @dfn{how} and the second element says @dfn{where}. This method is your
Dave Love <fx@gnu.org>
parents:
diff changeset
173 native method. All groups not fetched with this method are
Dave Love <fx@gnu.org>
parents:
diff changeset
174 foreign groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
175
Dave Love <fx@gnu.org>
parents:
diff changeset
176 For instance, if the @samp{news.somewhere.edu} @sc{nntp} server is where
Dave Love <fx@gnu.org>
parents:
diff changeset
177 you want to get your daily dosage of news from, you'd say:
Dave Love <fx@gnu.org>
parents:
diff changeset
178
Dave Love <fx@gnu.org>
parents:
diff changeset
179 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
180 (setq gnus-select-method '(nntp "news.somewhere.edu"))
Dave Love <fx@gnu.org>
parents:
diff changeset
181 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
182
Dave Love <fx@gnu.org>
parents:
diff changeset
183 If you want to read directly from the local spool, say:
Dave Love <fx@gnu.org>
parents:
diff changeset
184
Dave Love <fx@gnu.org>
parents:
diff changeset
185 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
186 (setq gnus-select-method '(nnspool ""))
Dave Love <fx@gnu.org>
parents:
diff changeset
187 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
188
Dave Love <fx@gnu.org>
parents:
diff changeset
189 If you can use a local spool, you probably should, as it will almost
Dave Love <fx@gnu.org>
parents:
diff changeset
190 certainly be much faster.
Dave Love <fx@gnu.org>
parents:
diff changeset
191
Dave Love <fx@gnu.org>
parents:
diff changeset
192 @vindex gnus-nntpserver-file
Dave Love <fx@gnu.org>
parents:
diff changeset
193 @cindex NNTPSERVER
Dave Love <fx@gnu.org>
parents:
diff changeset
194 @cindex @sc{nntp} server
Dave Love <fx@gnu.org>
parents:
diff changeset
195 If this variable is not set, Gnus will take a look at the
Dave Love <fx@gnu.org>
parents:
diff changeset
196 @code{NNTPSERVER} environment variable. If that variable isn't set,
Dave Love <fx@gnu.org>
parents:
diff changeset
197 Gnus will see whether @code{gnus-nntpserver-file}
Dave Love <fx@gnu.org>
parents:
diff changeset
198 (@file{/etc/nntpserver} by default) has any opinions on the matter. If
Dave Love <fx@gnu.org>
parents:
diff changeset
199 that fails as well, Gnus will try to use the machine running Emacs as an @sc{nntp} server. That's a long shot, though.
Dave Love <fx@gnu.org>
parents:
diff changeset
200
Dave Love <fx@gnu.org>
parents:
diff changeset
201 @vindex gnus-nntp-server
Dave Love <fx@gnu.org>
parents:
diff changeset
202 If @code{gnus-nntp-server} is set, this variable will override
Dave Love <fx@gnu.org>
parents:
diff changeset
203 @code{gnus-select-method}. You should therefore set
Dave Love <fx@gnu.org>
parents:
diff changeset
204 @code{gnus-nntp-server} to @code{nil}, which is what it is by default.
Dave Love <fx@gnu.org>
parents:
diff changeset
205
Dave Love <fx@gnu.org>
parents:
diff changeset
206 @vindex gnus-secondary-servers
Dave Love <fx@gnu.org>
parents:
diff changeset
207 You can also make Gnus prompt you interactively for the name of an
Dave Love <fx@gnu.org>
parents:
diff changeset
208 @sc{nntp} server. If you give a non-numerical prefix to @code{gnus}
Dave Love <fx@gnu.org>
parents:
diff changeset
209 (i.e., @kbd{C-u M-x gnus}), Gnus will let you choose between the servers
Dave Love <fx@gnu.org>
parents:
diff changeset
210 in the @code{gnus-secondary-servers} list (if any). You can also just
Dave Love <fx@gnu.org>
parents:
diff changeset
211 type in the name of any server you feel like visiting.
Dave Love <fx@gnu.org>
parents:
diff changeset
212
Dave Love <fx@gnu.org>
parents:
diff changeset
213 @findex gnus-group-browse-foreign-server
Dave Love <fx@gnu.org>
parents:
diff changeset
214 @kindex B (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
215 However, if you use one @sc{nntp} server regularly and are just
Dave Love <fx@gnu.org>
parents:
diff changeset
216 interested in a couple of groups from a different server, you would be
Dave Love <fx@gnu.org>
parents:
diff changeset
217 better served by using the @kbd{B} command in the group buffer. It will
Dave Love <fx@gnu.org>
parents:
diff changeset
218 let you have a look at what groups are available, and you can subscribe
Dave Love <fx@gnu.org>
parents:
diff changeset
219 to any of the groups you want to. This also makes @file{.newsrc}
Dave Love <fx@gnu.org>
parents:
diff changeset
220 maintenance much tidier. @xref{Foreign Groups}.
Dave Love <fx@gnu.org>
parents:
diff changeset
221
Dave Love <fx@gnu.org>
parents:
diff changeset
222 @vindex gnus-secondary-select-methods
Dave Love <fx@gnu.org>
parents:
diff changeset
223 @c @head
Dave Love <fx@gnu.org>
parents:
diff changeset
224 A slightly different approach to foreign groups is to set the
Dave Love <fx@gnu.org>
parents:
diff changeset
225 @code{gnus-secondary-select-methods} variable. The select methods
Dave Love <fx@gnu.org>
parents:
diff changeset
226 listed in this variable are in many ways just as native as the
Dave Love <fx@gnu.org>
parents:
diff changeset
227 @code{gnus-select-method} server. They will also be queried for active
Dave Love <fx@gnu.org>
parents:
diff changeset
228 files during startup (if that's required), and new newsgroups that
Dave Love <fx@gnu.org>
parents:
diff changeset
229 appear on these servers will be subscribed (or not) just as native
Dave Love <fx@gnu.org>
parents:
diff changeset
230 groups are.
Dave Love <fx@gnu.org>
parents:
diff changeset
231
Dave Love <fx@gnu.org>
parents:
diff changeset
232 For instance, if you use the @code{nnmbox} backend to read your mail, you
Dave Love <fx@gnu.org>
parents:
diff changeset
233 would typically set this variable to
Dave Love <fx@gnu.org>
parents:
diff changeset
234
Dave Love <fx@gnu.org>
parents:
diff changeset
235 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
236 (setq gnus-secondary-select-methods '((nnmbox "")))
Dave Love <fx@gnu.org>
parents:
diff changeset
237 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
238
Dave Love <fx@gnu.org>
parents:
diff changeset
239
Dave Love <fx@gnu.org>
parents:
diff changeset
240 @node The First Time
Dave Love <fx@gnu.org>
parents:
diff changeset
241 @section The First Time
Dave Love <fx@gnu.org>
parents:
diff changeset
242 @cindex first time usage
Dave Love <fx@gnu.org>
parents:
diff changeset
243
Dave Love <fx@gnu.org>
parents:
diff changeset
244 If no startup files exist, Gnus will try to determine what groups should
Dave Love <fx@gnu.org>
parents:
diff changeset
245 be subscribed by default.
Dave Love <fx@gnu.org>
parents:
diff changeset
246
Dave Love <fx@gnu.org>
parents:
diff changeset
247 @vindex gnus-default-subscribed-newsgroups
Dave Love <fx@gnu.org>
parents:
diff changeset
248 If the variable @code{gnus-default-subscribed-newsgroups} is set, Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
249 will subscribe you to just those groups in that list, leaving the rest
Dave Love <fx@gnu.org>
parents:
diff changeset
250 killed. Your system administrator should have set this variable to
Dave Love <fx@gnu.org>
parents:
diff changeset
251 something useful.
Dave Love <fx@gnu.org>
parents:
diff changeset
252
Dave Love <fx@gnu.org>
parents:
diff changeset
253 Since she hasn't, Gnus will just subscribe you to a few arbitrarily
Dave Love <fx@gnu.org>
parents:
diff changeset
254 picked groups (i.e., @samp{*.newusers}). (@dfn{Arbitrary} is defined
Dave Love <fx@gnu.org>
parents:
diff changeset
255 here as @dfn{whatever Lars thinks you should read}.)
Dave Love <fx@gnu.org>
parents:
diff changeset
256
Dave Love <fx@gnu.org>
parents:
diff changeset
257 You'll also be subscribed to the Gnus documentation group, which should
Dave Love <fx@gnu.org>
parents:
diff changeset
258 help you with most common problems.
Dave Love <fx@gnu.org>
parents:
diff changeset
259
Dave Love <fx@gnu.org>
parents:
diff changeset
260 If @code{gnus-default-subscribed-newsgroups} is @code{t}, Gnus will just
Dave Love <fx@gnu.org>
parents:
diff changeset
261 use the normal functions for handling new groups, and not do anything
Dave Love <fx@gnu.org>
parents:
diff changeset
262 special.
Dave Love <fx@gnu.org>
parents:
diff changeset
263
Dave Love <fx@gnu.org>
parents:
diff changeset
264
Dave Love <fx@gnu.org>
parents:
diff changeset
265 @node The Server is Down
Dave Love <fx@gnu.org>
parents:
diff changeset
266 @section The Server is Down
Dave Love <fx@gnu.org>
parents:
diff changeset
267 @cindex server errors
Dave Love <fx@gnu.org>
parents:
diff changeset
268
Dave Love <fx@gnu.org>
parents:
diff changeset
269 If the default server is down, Gnus will understandably have some
Dave Love <fx@gnu.org>
parents:
diff changeset
270 problems starting. However, if you have some mail groups in addition to
Dave Love <fx@gnu.org>
parents:
diff changeset
271 the news groups, you may want to start Gnus anyway.
Dave Love <fx@gnu.org>
parents:
diff changeset
272
Dave Love <fx@gnu.org>
parents:
diff changeset
273 Gnus, being the trusting sort of program, will ask whether to proceed
Dave Love <fx@gnu.org>
parents:
diff changeset
274 without a native select method if that server can't be contacted. This
Dave Love <fx@gnu.org>
parents:
diff changeset
275 will happen whether the server doesn't actually exist (i.e., you have
Dave Love <fx@gnu.org>
parents:
diff changeset
276 given the wrong address) or the server has just momentarily taken ill
Dave Love <fx@gnu.org>
parents:
diff changeset
277 for some reason or other. If you decide to continue and have no foreign
Dave Love <fx@gnu.org>
parents:
diff changeset
278 groups, you'll find it difficult to actually do anything in the group
Dave Love <fx@gnu.org>
parents:
diff changeset
279 buffer. But, hey, that's your problem. Blllrph!
Dave Love <fx@gnu.org>
parents:
diff changeset
280
Dave Love <fx@gnu.org>
parents:
diff changeset
281 @findex gnus-no-server
Dave Love <fx@gnu.org>
parents:
diff changeset
282 @kindex M-x gnus-no-server
Dave Love <fx@gnu.org>
parents:
diff changeset
283 @c @head
Dave Love <fx@gnu.org>
parents:
diff changeset
284 If you know that the server is definitely down, or you just want to read
Dave Love <fx@gnu.org>
parents:
diff changeset
285 your mail without bothering with the server at all, you can use the
Dave Love <fx@gnu.org>
parents:
diff changeset
286 @code{gnus-no-server} command to start Gnus. That might come in handy
Dave Love <fx@gnu.org>
parents:
diff changeset
287 if you're in a hurry as well. This command will not attempt to contact
Dave Love <fx@gnu.org>
parents:
diff changeset
288 your primary server---instead, it will just activate all groups on level
Dave Love <fx@gnu.org>
parents:
diff changeset
289 1 and 2. (You should preferably keep no native groups on those two
Dave Love <fx@gnu.org>
parents:
diff changeset
290 levels.)
Dave Love <fx@gnu.org>
parents:
diff changeset
291
Dave Love <fx@gnu.org>
parents:
diff changeset
292
Dave Love <fx@gnu.org>
parents:
diff changeset
293 @node Slave Gnusae
Dave Love <fx@gnu.org>
parents:
diff changeset
294 @section Slave Gnusae
Dave Love <fx@gnu.org>
parents:
diff changeset
295 @cindex slave
Dave Love <fx@gnu.org>
parents:
diff changeset
296
Dave Love <fx@gnu.org>
parents:
diff changeset
297 You might want to run more than one Emacs with more than one Gnus at the
Dave Love <fx@gnu.org>
parents:
diff changeset
298 same time. If you are using different @file{.newsrc} files (e.g., if you
Dave Love <fx@gnu.org>
parents:
diff changeset
299 are using the two different Gnusae to read from two different servers),
Dave Love <fx@gnu.org>
parents:
diff changeset
300 that is no problem whatsoever. You just do it.
Dave Love <fx@gnu.org>
parents:
diff changeset
301
Dave Love <fx@gnu.org>
parents:
diff changeset
302 The problem appears when you want to run two Gnusae that use the same
Dave Love <fx@gnu.org>
parents:
diff changeset
303 @code{.newsrc} file.
Dave Love <fx@gnu.org>
parents:
diff changeset
304
Dave Love <fx@gnu.org>
parents:
diff changeset
305 To work around that problem some, we here at the Think-Tank at the Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
306 Towers have come up with a new concept: @dfn{Masters} and
Dave Love <fx@gnu.org>
parents:
diff changeset
307 @dfn{slaves}. (We have applied for a patent on this concept, and have
Dave Love <fx@gnu.org>
parents:
diff changeset
308 taken out a copyright on those words. If you wish to use those words in
Dave Love <fx@gnu.org>
parents:
diff changeset
309 conjunction with each other, you have to send $1 per usage instance to
Dave Love <fx@gnu.org>
parents:
diff changeset
310 me. Usage of the patent (@dfn{Master/Slave Relationships In Computer
Dave Love <fx@gnu.org>
parents:
diff changeset
311 Applications}) will be much more expensive, of course.)
Dave Love <fx@gnu.org>
parents:
diff changeset
312
Dave Love <fx@gnu.org>
parents:
diff changeset
313 Anyways, you start one Gnus up the normal way with @kbd{M-x gnus} (or
Dave Love <fx@gnu.org>
parents:
diff changeset
314 however you do it). Each subsequent slave Gnusae should be started with
Dave Love <fx@gnu.org>
parents:
diff changeset
315 @kbd{M-x gnus-slave}. These slaves won't save normal @file{.newsrc}
Dave Love <fx@gnu.org>
parents:
diff changeset
316 files, but instead save @dfn{slave files} that contain information only
Dave Love <fx@gnu.org>
parents:
diff changeset
317 on what groups have been read in the slave session. When a master Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
318 starts, it will read (and delete) these slave files, incorporating all
Dave Love <fx@gnu.org>
parents:
diff changeset
319 information from them. (The slave files will be read in the sequence
Dave Love <fx@gnu.org>
parents:
diff changeset
320 they were created, so the latest changes will have precedence.)
Dave Love <fx@gnu.org>
parents:
diff changeset
321
Dave Love <fx@gnu.org>
parents:
diff changeset
322 Information from the slave files has, of course, precedence over the
Dave Love <fx@gnu.org>
parents:
diff changeset
323 information in the normal (i.e., master) @code{.newsrc} file.
Dave Love <fx@gnu.org>
parents:
diff changeset
324
Dave Love <fx@gnu.org>
parents:
diff changeset
325
Dave Love <fx@gnu.org>
parents:
diff changeset
326 @node Fetching a Group
Dave Love <fx@gnu.org>
parents:
diff changeset
327 @section Fetching a Group
Dave Love <fx@gnu.org>
parents:
diff changeset
328 @cindex fetching a group
Dave Love <fx@gnu.org>
parents:
diff changeset
329
Dave Love <fx@gnu.org>
parents:
diff changeset
330 @findex gnus-fetch-group
Dave Love <fx@gnu.org>
parents:
diff changeset
331 It is sometimes convenient to be able to just say ``I want to read this
Dave Love <fx@gnu.org>
parents:
diff changeset
332 group and I don't care whether Gnus has been started or not''. This is
Dave Love <fx@gnu.org>
parents:
diff changeset
333 perhaps more useful for people who write code than for users, but the
Dave Love <fx@gnu.org>
parents:
diff changeset
334 command @code{gnus-fetch-group} provides this functionality in any case.
Dave Love <fx@gnu.org>
parents:
diff changeset
335 It takes the group name as a parameter.
Dave Love <fx@gnu.org>
parents:
diff changeset
336
Dave Love <fx@gnu.org>
parents:
diff changeset
337
Dave Love <fx@gnu.org>
parents:
diff changeset
338 @node New Groups
Dave Love <fx@gnu.org>
parents:
diff changeset
339 @section New Groups
Dave Love <fx@gnu.org>
parents:
diff changeset
340 @cindex new groups
Dave Love <fx@gnu.org>
parents:
diff changeset
341 @cindex subscription
Dave Love <fx@gnu.org>
parents:
diff changeset
342
Dave Love <fx@gnu.org>
parents:
diff changeset
343 @vindex gnus-check-new-newsgroups
Dave Love <fx@gnu.org>
parents:
diff changeset
344 If you are satisfied that you really never want to see any new groups,
Dave Love <fx@gnu.org>
parents:
diff changeset
345 you can set @code{gnus-check-new-newsgroups} to @code{nil}. This will
Dave Love <fx@gnu.org>
parents:
diff changeset
346 also save you some time at startup. Even if this variable is
Dave Love <fx@gnu.org>
parents:
diff changeset
347 @code{nil}, you can always subscribe to the new groups just by pressing
Dave Love <fx@gnu.org>
parents:
diff changeset
348 @kbd{U} in the group buffer (@pxref{Group Maintenance}). This variable
Dave Love <fx@gnu.org>
parents:
diff changeset
349 is @code{ask-server} by default. If you set this variable to
Dave Love <fx@gnu.org>
parents:
diff changeset
350 @code{always}, then Gnus will query the backends for new groups even
Dave Love <fx@gnu.org>
parents:
diff changeset
351 when you do the @kbd{g} command (@pxref{Scanning New Messages}).
Dave Love <fx@gnu.org>
parents:
diff changeset
352
Dave Love <fx@gnu.org>
parents:
diff changeset
353 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
354 * Checking New Groups:: Determining what groups are new.
Dave Love <fx@gnu.org>
parents:
diff changeset
355 * Subscription Methods:: What Gnus should do with new groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
356 * Filtering New Groups:: Making Gnus ignore certain new groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
357 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
358
Dave Love <fx@gnu.org>
parents:
diff changeset
359
Dave Love <fx@gnu.org>
parents:
diff changeset
360 @node Checking New Groups
Dave Love <fx@gnu.org>
parents:
diff changeset
361 @subsection Checking New Groups
Dave Love <fx@gnu.org>
parents:
diff changeset
362
Dave Love <fx@gnu.org>
parents:
diff changeset
363 Gnus normally determines whether a group is new or not by comparing the
Dave Love <fx@gnu.org>
parents:
diff changeset
364 list of groups from the active file(s) with the lists of subscribed and
Dave Love <fx@gnu.org>
parents:
diff changeset
365 dead groups. This isn't a particularly fast method. If
Dave Love <fx@gnu.org>
parents:
diff changeset
366 @code{gnus-check-new-newsgroups} is @code{ask-server}, Gnus will ask the
Dave Love <fx@gnu.org>
parents:
diff changeset
367 server for new groups since the last time. This is both faster and
Dave Love <fx@gnu.org>
parents:
diff changeset
368 cheaper. This also means that you can get rid of the list of killed
Dave Love <fx@gnu.org>
parents:
diff changeset
369 groups altogether, so you may set @code{gnus-save-killed-list} to
Dave Love <fx@gnu.org>
parents:
diff changeset
370 @code{nil}, which will save time both at startup, at exit, and all over.
Dave Love <fx@gnu.org>
parents:
diff changeset
371 Saves disk space, too. Why isn't this the default, then?
Dave Love <fx@gnu.org>
parents:
diff changeset
372 Unfortunately, not all servers support this command.
Dave Love <fx@gnu.org>
parents:
diff changeset
373
Dave Love <fx@gnu.org>
parents:
diff changeset
374 I bet I know what you're thinking now: How do I find out whether my
Dave Love <fx@gnu.org>
parents:
diff changeset
375 server supports @code{ask-server}? No? Good, because I don't have a
Dave Love <fx@gnu.org>
parents:
diff changeset
376 fail-safe answer. I would suggest just setting this variable to
Dave Love <fx@gnu.org>
parents:
diff changeset
377 @code{ask-server} and see whether any new groups appear within the next
Dave Love <fx@gnu.org>
parents:
diff changeset
378 few days. If any do, then it works. If none do, then it doesn't
Dave Love <fx@gnu.org>
parents:
diff changeset
379 work. I could write a function to make Gnus guess whether the server
Dave Love <fx@gnu.org>
parents:
diff changeset
380 supports @code{ask-server}, but it would just be a guess. So I won't.
Dave Love <fx@gnu.org>
parents:
diff changeset
381 You could @code{telnet} to the server and say @code{HELP} and see
Dave Love <fx@gnu.org>
parents:
diff changeset
382 whether it lists @samp{NEWGROUPS} among the commands it understands. If
Dave Love <fx@gnu.org>
parents:
diff changeset
383 it does, then it might work. (But there are servers that lists
Dave Love <fx@gnu.org>
parents:
diff changeset
384 @samp{NEWGROUPS} without supporting the function properly.)
Dave Love <fx@gnu.org>
parents:
diff changeset
385
Dave Love <fx@gnu.org>
parents:
diff changeset
386 This variable can also be a list of select methods. If so, Gnus will
Dave Love <fx@gnu.org>
parents:
diff changeset
387 issue an @code{ask-server} command to each of the select methods, and
Dave Love <fx@gnu.org>
parents:
diff changeset
388 subscribe them (or not) using the normal methods. This might be handy
Dave Love <fx@gnu.org>
parents:
diff changeset
389 if you are monitoring a few servers for new groups. A side effect is
Dave Love <fx@gnu.org>
parents:
diff changeset
390 that startup will take much longer, so you can meditate while waiting.
Dave Love <fx@gnu.org>
parents:
diff changeset
391 Use the mantra ``dingnusdingnusdingnus'' to achieve permanent bliss.
Dave Love <fx@gnu.org>
parents:
diff changeset
392
Dave Love <fx@gnu.org>
parents:
diff changeset
393
Dave Love <fx@gnu.org>
parents:
diff changeset
394 @node Subscription Methods
Dave Love <fx@gnu.org>
parents:
diff changeset
395 @subsection Subscription Methods
Dave Love <fx@gnu.org>
parents:
diff changeset
396
Dave Love <fx@gnu.org>
parents:
diff changeset
397 @vindex gnus-subscribe-newsgroup-method
Dave Love <fx@gnu.org>
parents:
diff changeset
398 What Gnus does when it encounters a new group is determined by the
Dave Love <fx@gnu.org>
parents:
diff changeset
399 @code{gnus-subscribe-newsgroup-method} variable.
Dave Love <fx@gnu.org>
parents:
diff changeset
400
Dave Love <fx@gnu.org>
parents:
diff changeset
401 This variable should contain a function. This function will be called
Dave Love <fx@gnu.org>
parents:
diff changeset
402 with the name of the new group as the only parameter.
Dave Love <fx@gnu.org>
parents:
diff changeset
403
Dave Love <fx@gnu.org>
parents:
diff changeset
404 Some handy pre-fab functions are:
Dave Love <fx@gnu.org>
parents:
diff changeset
405
Dave Love <fx@gnu.org>
parents:
diff changeset
406 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
407
Dave Love <fx@gnu.org>
parents:
diff changeset
408 @item gnus-subscribe-zombies
Dave Love <fx@gnu.org>
parents:
diff changeset
409 @vindex gnus-subscribe-zombies
Dave Love <fx@gnu.org>
parents:
diff changeset
410 Make all new groups zombies. This is the default. You can browse the
Dave Love <fx@gnu.org>
parents:
diff changeset
411 zombies later (with @kbd{A z}) and either kill them all off properly
Dave Love <fx@gnu.org>
parents:
diff changeset
412 (with @kbd{S z}), or subscribe to them (with @kbd{u}).
Dave Love <fx@gnu.org>
parents:
diff changeset
413
Dave Love <fx@gnu.org>
parents:
diff changeset
414 @item gnus-subscribe-randomly
Dave Love <fx@gnu.org>
parents:
diff changeset
415 @vindex gnus-subscribe-randomly
Dave Love <fx@gnu.org>
parents:
diff changeset
416 Subscribe all new groups in arbitrary order. This really means that all
Dave Love <fx@gnu.org>
parents:
diff changeset
417 new groups will be added at ``the top'' of the group buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
418
Dave Love <fx@gnu.org>
parents:
diff changeset
419 @item gnus-subscribe-alphabetically
Dave Love <fx@gnu.org>
parents:
diff changeset
420 @vindex gnus-subscribe-alphabetically
Dave Love <fx@gnu.org>
parents:
diff changeset
421 Subscribe all new groups in alphabetical order.
Dave Love <fx@gnu.org>
parents:
diff changeset
422
Dave Love <fx@gnu.org>
parents:
diff changeset
423 @item gnus-subscribe-hierarchically
Dave Love <fx@gnu.org>
parents:
diff changeset
424 @vindex gnus-subscribe-hierarchically
Dave Love <fx@gnu.org>
parents:
diff changeset
425 Subscribe all new groups hierarchically. The difference between this
Dave Love <fx@gnu.org>
parents:
diff changeset
426 function and @code{gnus-subscribe-alphabetically} is slight.
Dave Love <fx@gnu.org>
parents:
diff changeset
427 @code{gnus-subscribe-alphabetically} will subscribe new groups in a strictly
Dave Love <fx@gnu.org>
parents:
diff changeset
428 alphabetical fashion, while this function will enter groups into it's
Dave Love <fx@gnu.org>
parents:
diff changeset
429 hierarchy. So if you want to have the @samp{rec} hierarchy before the
Dave Love <fx@gnu.org>
parents:
diff changeset
430 @samp{comp} hierarchy, this function will not mess that configuration
Dave Love <fx@gnu.org>
parents:
diff changeset
431 up. Or something like that.
Dave Love <fx@gnu.org>
parents:
diff changeset
432
Dave Love <fx@gnu.org>
parents:
diff changeset
433 @item gnus-subscribe-interactively
Dave Love <fx@gnu.org>
parents:
diff changeset
434 @vindex gnus-subscribe-interactively
Dave Love <fx@gnu.org>
parents:
diff changeset
435 Subscribe new groups interactively. This means that Gnus will ask
Dave Love <fx@gnu.org>
parents:
diff changeset
436 you about @strong{all} new groups. The groups you choose to subscribe
Dave Love <fx@gnu.org>
parents:
diff changeset
437 to will be subscribed hierarchically.
Dave Love <fx@gnu.org>
parents:
diff changeset
438
Dave Love <fx@gnu.org>
parents:
diff changeset
439 @item gnus-subscribe-killed
Dave Love <fx@gnu.org>
parents:
diff changeset
440 @vindex gnus-subscribe-killed
Dave Love <fx@gnu.org>
parents:
diff changeset
441 Kill all new groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
442
Dave Love <fx@gnu.org>
parents:
diff changeset
443 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
444
Dave Love <fx@gnu.org>
parents:
diff changeset
445 @vindex gnus-subscribe-hierarchical-interactive
Dave Love <fx@gnu.org>
parents:
diff changeset
446 A closely related variable is
Dave Love <fx@gnu.org>
parents:
diff changeset
447 @code{gnus-subscribe-hierarchical-interactive}. (That's quite a
Dave Love <fx@gnu.org>
parents:
diff changeset
448 mouthful.) If this variable is non-@code{nil}, Gnus will ask you in a
Dave Love <fx@gnu.org>
parents:
diff changeset
449 hierarchical fashion whether to subscribe to new groups or not. Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
450 will ask you for each sub-hierarchy whether you want to descend the
Dave Love <fx@gnu.org>
parents:
diff changeset
451 hierarchy or not.
Dave Love <fx@gnu.org>
parents:
diff changeset
452
Dave Love <fx@gnu.org>
parents:
diff changeset
453 One common mistake is to set the variable a few paragraphs above
Dave Love <fx@gnu.org>
parents:
diff changeset
454 (@code{gnus-subscribe-newsgroup-method}) to
Dave Love <fx@gnu.org>
parents:
diff changeset
455 @code{gnus-subscribe-hierarchical-interactive}. This is an error. This
Dave Love <fx@gnu.org>
parents:
diff changeset
456 will not work. This is ga-ga. So don't do it.
Dave Love <fx@gnu.org>
parents:
diff changeset
457
Dave Love <fx@gnu.org>
parents:
diff changeset
458
Dave Love <fx@gnu.org>
parents:
diff changeset
459 @node Filtering New Groups
Dave Love <fx@gnu.org>
parents:
diff changeset
460 @subsection Filtering New Groups
Dave Love <fx@gnu.org>
parents:
diff changeset
461
Dave Love <fx@gnu.org>
parents:
diff changeset
462 A nice and portable way to control which new newsgroups should be
Dave Love <fx@gnu.org>
parents:
diff changeset
463 subscribed (or ignored) is to put an @dfn{options} line at the start of
Dave Love <fx@gnu.org>
parents:
diff changeset
464 the @file{.newsrc} file. Here's an example:
Dave Love <fx@gnu.org>
parents:
diff changeset
465
Dave Love <fx@gnu.org>
parents:
diff changeset
466 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
467 options -n !alt.all !rec.all sci.all
Dave Love <fx@gnu.org>
parents:
diff changeset
468 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
469
Dave Love <fx@gnu.org>
parents:
diff changeset
470 @vindex gnus-subscribe-options-newsgroup-method
Dave Love <fx@gnu.org>
parents:
diff changeset
471 This line obviously belongs to a serious-minded intellectual scientific
Dave Love <fx@gnu.org>
parents:
diff changeset
472 person (or she may just be plain old boring), because it says that all
Dave Love <fx@gnu.org>
parents:
diff changeset
473 groups that have names beginning with @samp{alt} and @samp{rec} should
Dave Love <fx@gnu.org>
parents:
diff changeset
474 be ignored, and all groups with names beginning with @samp{sci} should
Dave Love <fx@gnu.org>
parents:
diff changeset
475 be subscribed. Gnus will not use the normal subscription method for
Dave Love <fx@gnu.org>
parents:
diff changeset
476 subscribing these groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
477 @code{gnus-subscribe-options-newsgroup-method} is used instead. This
Dave Love <fx@gnu.org>
parents:
diff changeset
478 variable defaults to @code{gnus-subscribe-alphabetically}.
Dave Love <fx@gnu.org>
parents:
diff changeset
479
Dave Love <fx@gnu.org>
parents:
diff changeset
480 @vindex gnus-options-not-subscribe
Dave Love <fx@gnu.org>
parents:
diff changeset
481 @vindex gnus-options-subscribe
Dave Love <fx@gnu.org>
parents:
diff changeset
482 If you don't want to mess with your @file{.newsrc} file, you can just
Dave Love <fx@gnu.org>
parents:
diff changeset
483 set the two variables @code{gnus-options-subscribe} and
Dave Love <fx@gnu.org>
parents:
diff changeset
484 @code{gnus-options-not-subscribe}. These two variables do exactly the
Dave Love <fx@gnu.org>
parents:
diff changeset
485 same as the @file{.newsrc} @samp{options -n} trick. Both are regexps,
Dave Love <fx@gnu.org>
parents:
diff changeset
486 and if the new group matches the former, it will be unconditionally
Dave Love <fx@gnu.org>
parents:
diff changeset
487 subscribed, and if it matches the latter, it will be ignored.
Dave Love <fx@gnu.org>
parents:
diff changeset
488
Dave Love <fx@gnu.org>
parents:
diff changeset
489 @vindex gnus-auto-subscribed-groups
Dave Love <fx@gnu.org>
parents:
diff changeset
490 Yet another variable that meddles here is
Dave Love <fx@gnu.org>
parents:
diff changeset
491 @code{gnus-auto-subscribed-groups}. It works exactly like
Dave Love <fx@gnu.org>
parents:
diff changeset
492 @code{gnus-options-subscribe}, and is therefore really superfluous, but I
Dave Love <fx@gnu.org>
parents:
diff changeset
493 thought it would be nice to have two of these. This variable is more
Dave Love <fx@gnu.org>
parents:
diff changeset
494 meant for setting some ground rules, while the other variable is used
Dave Love <fx@gnu.org>
parents:
diff changeset
495 more for user fiddling. By default this variable makes all new groups
Dave Love <fx@gnu.org>
parents:
diff changeset
496 that come from mail backends (@code{nnml}, @code{nnbabyl},
Dave Love <fx@gnu.org>
parents:
diff changeset
497 @code{nnfolder}, @code{nnmbox}, and @code{nnmh}) subscribed. If you
Dave Love <fx@gnu.org>
parents:
diff changeset
498 don't like that, just set this variable to @code{nil}.
Dave Love <fx@gnu.org>
parents:
diff changeset
499
Dave Love <fx@gnu.org>
parents:
diff changeset
500 New groups that match this regexp are subscribed using
Dave Love <fx@gnu.org>
parents:
diff changeset
501 @code{gnus-subscribe-options-newsgroup-method}.
Dave Love <fx@gnu.org>
parents:
diff changeset
502
Dave Love <fx@gnu.org>
parents:
diff changeset
503
Dave Love <fx@gnu.org>
parents:
diff changeset
504 @node Changing Servers
Dave Love <fx@gnu.org>
parents:
diff changeset
505 @section Changing Servers
Dave Love <fx@gnu.org>
parents:
diff changeset
506 @cindex changing servers
Dave Love <fx@gnu.org>
parents:
diff changeset
507
Dave Love <fx@gnu.org>
parents:
diff changeset
508 Sometimes it is necessary to move from one @sc{nntp} server to another.
Dave Love <fx@gnu.org>
parents:
diff changeset
509 This happens very rarely, but perhaps you change jobs, or one server is
Dave Love <fx@gnu.org>
parents:
diff changeset
510 very flaky and you want to use another.
Dave Love <fx@gnu.org>
parents:
diff changeset
511
Dave Love <fx@gnu.org>
parents:
diff changeset
512 Changing the server is pretty easy, right? You just change
Dave Love <fx@gnu.org>
parents:
diff changeset
513 @code{gnus-select-method} to point to the new server?
Dave Love <fx@gnu.org>
parents:
diff changeset
514
Dave Love <fx@gnu.org>
parents:
diff changeset
515 @emph{Wrong!}
Dave Love <fx@gnu.org>
parents:
diff changeset
516
Dave Love <fx@gnu.org>
parents:
diff changeset
517 Article numbers are not (in any way) kept synchronized between different
Dave Love <fx@gnu.org>
parents:
diff changeset
518 @sc{nntp} servers, and the only way Gnus keeps track of what articles
Dave Love <fx@gnu.org>
parents:
diff changeset
519 you have read is by keeping track of article numbers. So when you
Dave Love <fx@gnu.org>
parents:
diff changeset
520 change @code{gnus-select-method}, your @file{.newsrc} file becomes
Dave Love <fx@gnu.org>
parents:
diff changeset
521 worthless.
Dave Love <fx@gnu.org>
parents:
diff changeset
522
Dave Love <fx@gnu.org>
parents:
diff changeset
523 Gnus provides a few functions to attempt to translate a @file{.newsrc}
Dave Love <fx@gnu.org>
parents:
diff changeset
524 file from one server to another. They all have one thing in
Dave Love <fx@gnu.org>
parents:
diff changeset
525 common---they take a looong time to run. You don't want to use these
Dave Love <fx@gnu.org>
parents:
diff changeset
526 functions more than absolutely necessary.
Dave Love <fx@gnu.org>
parents:
diff changeset
527
Dave Love <fx@gnu.org>
parents:
diff changeset
528 @kindex M-x gnus-change-server
Dave Love <fx@gnu.org>
parents:
diff changeset
529 @findex gnus-change-server
Dave Love <fx@gnu.org>
parents:
diff changeset
530 If you have access to both servers, Gnus can request the headers for all
Dave Love <fx@gnu.org>
parents:
diff changeset
531 the articles you have read and compare @code{Message-ID}s and map the
Dave Love <fx@gnu.org>
parents:
diff changeset
532 article numbers of the read articles and article marks. The @kbd{M-x
Dave Love <fx@gnu.org>
parents:
diff changeset
533 gnus-change-server} command will do this for all your native groups. It
Dave Love <fx@gnu.org>
parents:
diff changeset
534 will prompt for the method you want to move to.
Dave Love <fx@gnu.org>
parents:
diff changeset
535
Dave Love <fx@gnu.org>
parents:
diff changeset
536 @kindex M-x gnus-group-move-group-to-server
Dave Love <fx@gnu.org>
parents:
diff changeset
537 @findex gnus-group-move-group-to-server
Dave Love <fx@gnu.org>
parents:
diff changeset
538 You can also move individual groups with the @kbd{M-x
Dave Love <fx@gnu.org>
parents:
diff changeset
539 gnus-group-move-group-to-server} command. This is useful if you want to
Dave Love <fx@gnu.org>
parents:
diff changeset
540 move a (foreign) group from one server to another.
Dave Love <fx@gnu.org>
parents:
diff changeset
541
Dave Love <fx@gnu.org>
parents:
diff changeset
542 @kindex M-x gnus-group-clear-data-on-native-groups
Dave Love <fx@gnu.org>
parents:
diff changeset
543 @findex gnus-group-clear-data-on-native-groups
Dave Love <fx@gnu.org>
parents:
diff changeset
544 If you don't have access to both the old and new server, all your marks
Dave Love <fx@gnu.org>
parents:
diff changeset
545 and read ranges have become worthless. You can use the @kbd{M-x
Dave Love <fx@gnu.org>
parents:
diff changeset
546 gnus-group-clear-data-on-native-groups} command to clear out all data
Dave Love <fx@gnu.org>
parents:
diff changeset
547 that you have on your native groups. Use with caution.
Dave Love <fx@gnu.org>
parents:
diff changeset
548
Dave Love <fx@gnu.org>
parents:
diff changeset
549
Dave Love <fx@gnu.org>
parents:
diff changeset
550 @node Startup Files
Dave Love <fx@gnu.org>
parents:
diff changeset
551 @section Startup Files
Dave Love <fx@gnu.org>
parents:
diff changeset
552 @cindex startup files
Dave Love <fx@gnu.org>
parents:
diff changeset
553 @cindex .newsrc
Dave Love <fx@gnu.org>
parents:
diff changeset
554 @cindex .newsrc.el
Dave Love <fx@gnu.org>
parents:
diff changeset
555 @cindex .newsrc.eld
Dave Love <fx@gnu.org>
parents:
diff changeset
556
Dave Love <fx@gnu.org>
parents:
diff changeset
557 Now, you all know about the @file{.newsrc} file. All subscription
Dave Love <fx@gnu.org>
parents:
diff changeset
558 information is traditionally stored in this file.
Dave Love <fx@gnu.org>
parents:
diff changeset
559
Dave Love <fx@gnu.org>
parents:
diff changeset
560 Things got a bit more complicated with @sc{gnus}. In addition to
Dave Love <fx@gnu.org>
parents:
diff changeset
561 keeping the @file{.newsrc} file updated, it also used a file called
Dave Love <fx@gnu.org>
parents:
diff changeset
562 @file{.newsrc.el} for storing all the information that didn't fit into
Dave Love <fx@gnu.org>
parents:
diff changeset
563 the @file{.newsrc} file. (Actually, it also duplicated everything in
Dave Love <fx@gnu.org>
parents:
diff changeset
564 the @file{.newsrc} file.) @sc{gnus} would read whichever one of these
Dave Love <fx@gnu.org>
parents:
diff changeset
565 files was the most recently saved, which enabled people to swap between
Dave Love <fx@gnu.org>
parents:
diff changeset
566 @sc{gnus} and other newsreaders.
Dave Love <fx@gnu.org>
parents:
diff changeset
567
Dave Love <fx@gnu.org>
parents:
diff changeset
568 That was kinda silly, so Gnus went one better: In addition to the
Dave Love <fx@gnu.org>
parents:
diff changeset
569 @file{.newsrc} and @file{.newsrc.el} files, Gnus also has a file called
Dave Love <fx@gnu.org>
parents:
diff changeset
570 @file{.newsrc.eld}. It will read whichever of these files that are most
Dave Love <fx@gnu.org>
parents:
diff changeset
571 recent, but it will never write a @file{.newsrc.el} file. You should
Dave Love <fx@gnu.org>
parents:
diff changeset
572 never delete the @file{.newsrc.eld} file---it contains much information
Dave Love <fx@gnu.org>
parents:
diff changeset
573 not stored in the @file{.newsrc} file.
Dave Love <fx@gnu.org>
parents:
diff changeset
574
Dave Love <fx@gnu.org>
parents:
diff changeset
575 @vindex gnus-save-newsrc-file
Dave Love <fx@gnu.org>
parents:
diff changeset
576 You can turn off writing the @file{.newsrc} file by setting
Dave Love <fx@gnu.org>
parents:
diff changeset
577 @code{gnus-save-newsrc-file} to @code{nil}, which means you can delete
Dave Love <fx@gnu.org>
parents:
diff changeset
578 the file and save some space, as well as exiting from Gnus faster.
Dave Love <fx@gnu.org>
parents:
diff changeset
579 However, this will make it impossible to use other newsreaders than
Dave Love <fx@gnu.org>
parents:
diff changeset
580 Gnus. But hey, who would want to, right?
Dave Love <fx@gnu.org>
parents:
diff changeset
581
Dave Love <fx@gnu.org>
parents:
diff changeset
582 @vindex gnus-save-killed-list
Dave Love <fx@gnu.org>
parents:
diff changeset
583 If @code{gnus-save-killed-list} (default @code{t}) is @code{nil}, Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
584 will not save the list of killed groups to the startup file. This will
Dave Love <fx@gnu.org>
parents:
diff changeset
585 save both time (when starting and quitting) and space (on disk). It
Dave Love <fx@gnu.org>
parents:
diff changeset
586 will also mean that Gnus has no record of what groups are new or old,
Dave Love <fx@gnu.org>
parents:
diff changeset
587 so the automatic new groups subscription methods become meaningless.
Dave Love <fx@gnu.org>
parents:
diff changeset
588 You should always set @code{gnus-check-new-newsgroups} to @code{nil} or
Dave Love <fx@gnu.org>
parents:
diff changeset
589 @code{ask-server} if you set this variable to @code{nil} (@pxref{New
Dave Love <fx@gnu.org>
parents:
diff changeset
590 Groups}). This variable can also be a regular expression. If that's
Dave Love <fx@gnu.org>
parents:
diff changeset
591 the case, remove all groups that do not match this regexp before
Dave Love <fx@gnu.org>
parents:
diff changeset
592 saving. This can be useful in certain obscure situations that involve
Dave Love <fx@gnu.org>
parents:
diff changeset
593 several servers where not all servers support @code{ask-server}.
Dave Love <fx@gnu.org>
parents:
diff changeset
594
Dave Love <fx@gnu.org>
parents:
diff changeset
595 @vindex gnus-startup-file
Dave Love <fx@gnu.org>
parents:
diff changeset
596 The @code{gnus-startup-file} variable says where the startup files are.
Dave Love <fx@gnu.org>
parents:
diff changeset
597 The default value is @file{~/.newsrc}, with the Gnus (El Dingo) startup
Dave Love <fx@gnu.org>
parents:
diff changeset
598 file being whatever that one is, with a @samp{.eld} appended.
Dave Love <fx@gnu.org>
parents:
diff changeset
599
Dave Love <fx@gnu.org>
parents:
diff changeset
600 @vindex gnus-save-newsrc-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
601 @vindex gnus-save-quick-newsrc-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
602 @vindex gnus-save-standard-newsrc-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
603 @code{gnus-save-newsrc-hook} is called before saving any of the newsrc
Dave Love <fx@gnu.org>
parents:
diff changeset
604 files, while @code{gnus-save-quick-newsrc-hook} is called just before
Dave Love <fx@gnu.org>
parents:
diff changeset
605 saving the @file{.newsrc.eld} file, and
Dave Love <fx@gnu.org>
parents:
diff changeset
606 @code{gnus-save-standard-newsrc-hook} is called just before saving the
Dave Love <fx@gnu.org>
parents:
diff changeset
607 @file{.newsrc} file. The latter two are commonly used to turn version
Dave Love <fx@gnu.org>
parents:
diff changeset
608 control on or off. Version control is on by default when saving the
Dave Love <fx@gnu.org>
parents:
diff changeset
609 startup files. If you want to turn backup creation off, say something like:
Dave Love <fx@gnu.org>
parents:
diff changeset
610
Dave Love <fx@gnu.org>
parents:
diff changeset
611 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
612 (defun turn-off-backup ()
Dave Love <fx@gnu.org>
parents:
diff changeset
613 (set (make-local-variable 'backup-inhibited) t))
Dave Love <fx@gnu.org>
parents:
diff changeset
614
Dave Love <fx@gnu.org>
parents:
diff changeset
615 (add-hook 'gnus-save-quick-newsrc-hook 'turn-off-backup)
Dave Love <fx@gnu.org>
parents:
diff changeset
616 (add-hook 'gnus-save-standard-newsrc-hook 'turn-off-backup)
Dave Love <fx@gnu.org>
parents:
diff changeset
617 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
618
Dave Love <fx@gnu.org>
parents:
diff changeset
619 @vindex gnus-init-file
Dave Love <fx@gnu.org>
parents:
diff changeset
620 When Gnus starts, it will read the @code{gnus-site-init-file}
Dave Love <fx@gnu.org>
parents:
diff changeset
621 (@file{.../site-lisp/gnus} by default) and @code{gnus-init-file}
Dave Love <fx@gnu.org>
parents:
diff changeset
622 (@file{~/.gnus} by default) files. These are normal Emacs Lisp files
Dave Love <fx@gnu.org>
parents:
diff changeset
623 and can be used to avoid cluttering your @file{~/.emacs} and
Dave Love <fx@gnu.org>
parents:
diff changeset
624 @file{site-init} files with Gnus stuff. Gnus will also check for files
Dave Love <fx@gnu.org>
parents:
diff changeset
625 with the same names as these, but with @file{.elc} and @file{.el}
Dave Love <fx@gnu.org>
parents:
diff changeset
626 suffixes. In other words, if you have set @code{gnus-init-file} to
Dave Love <fx@gnu.org>
parents:
diff changeset
627 @file{~/.gnus}, it will look for @file{~/.gnus.elc}, @file{~/.gnus.el},
Dave Love <fx@gnu.org>
parents:
diff changeset
628 and finally @file{~/.gnus} (in this order).
Dave Love <fx@gnu.org>
parents:
diff changeset
629
Dave Love <fx@gnu.org>
parents:
diff changeset
630
Dave Love <fx@gnu.org>
parents:
diff changeset
631
Dave Love <fx@gnu.org>
parents:
diff changeset
632 @node Auto Save
Dave Love <fx@gnu.org>
parents:
diff changeset
633 @section Auto Save
Dave Love <fx@gnu.org>
parents:
diff changeset
634 @cindex dribble file
Dave Love <fx@gnu.org>
parents:
diff changeset
635 @cindex auto-save
Dave Love <fx@gnu.org>
parents:
diff changeset
636
Dave Love <fx@gnu.org>
parents:
diff changeset
637 Whenever you do something that changes the Gnus data (reading articles,
Dave Love <fx@gnu.org>
parents:
diff changeset
638 catching up, killing/subscribing groups), the change is added to a
Dave Love <fx@gnu.org>
parents:
diff changeset
639 special @dfn{dribble buffer}. This buffer is auto-saved the normal
Dave Love <fx@gnu.org>
parents:
diff changeset
640 Emacs way. If your Emacs should crash before you have saved the
Dave Love <fx@gnu.org>
parents:
diff changeset
641 @file{.newsrc} files, all changes you have made can be recovered from
Dave Love <fx@gnu.org>
parents:
diff changeset
642 this file.
Dave Love <fx@gnu.org>
parents:
diff changeset
643
Dave Love <fx@gnu.org>
parents:
diff changeset
644 If Gnus detects this file at startup, it will ask the user whether to
Dave Love <fx@gnu.org>
parents:
diff changeset
645 read it. The auto save file is deleted whenever the real startup file is
Dave Love <fx@gnu.org>
parents:
diff changeset
646 saved.
Dave Love <fx@gnu.org>
parents:
diff changeset
647
Dave Love <fx@gnu.org>
parents:
diff changeset
648 @vindex gnus-use-dribble-file
Dave Love <fx@gnu.org>
parents:
diff changeset
649 If @code{gnus-use-dribble-file} is @code{nil}, Gnus won't create and
Dave Love <fx@gnu.org>
parents:
diff changeset
650 maintain a dribble buffer. The default is @code{t}.
Dave Love <fx@gnu.org>
parents:
diff changeset
651
Dave Love <fx@gnu.org>
parents:
diff changeset
652 @vindex gnus-dribble-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
653 Gnus will put the dribble file(s) in @code{gnus-dribble-directory}. If
Dave Love <fx@gnu.org>
parents:
diff changeset
654 this variable is @code{nil}, which it is by default, Gnus will dribble
Dave Love <fx@gnu.org>
parents:
diff changeset
655 into the directory where the @file{.newsrc} file is located. (This is
Dave Love <fx@gnu.org>
parents:
diff changeset
656 normally the user's home directory.) The dribble file will get the same
Dave Love <fx@gnu.org>
parents:
diff changeset
657 file permissions as the @code{.newsrc} file.
Dave Love <fx@gnu.org>
parents:
diff changeset
658
Dave Love <fx@gnu.org>
parents:
diff changeset
659 @vindex gnus-always-read-dribble-file
Dave Love <fx@gnu.org>
parents:
diff changeset
660 If @code{gnus-always-read-dribble-file} is non-@code{nil}, Gnus will
Dave Love <fx@gnu.org>
parents:
diff changeset
661 read the dribble file on startup without querying the user.
Dave Love <fx@gnu.org>
parents:
diff changeset
662
Dave Love <fx@gnu.org>
parents:
diff changeset
663
Dave Love <fx@gnu.org>
parents:
diff changeset
664 @node The Active File
Dave Love <fx@gnu.org>
parents:
diff changeset
665 @section The Active File
Dave Love <fx@gnu.org>
parents:
diff changeset
666 @cindex active file
Dave Love <fx@gnu.org>
parents:
diff changeset
667 @cindex ignored groups
Dave Love <fx@gnu.org>
parents:
diff changeset
668
Dave Love <fx@gnu.org>
parents:
diff changeset
669 When Gnus starts, or indeed whenever it tries to determine whether new
Dave Love <fx@gnu.org>
parents:
diff changeset
670 articles have arrived, it reads the active file. This is a very large
Dave Love <fx@gnu.org>
parents:
diff changeset
671 file that lists all the active groups and articles on the server.
Dave Love <fx@gnu.org>
parents:
diff changeset
672
Dave Love <fx@gnu.org>
parents:
diff changeset
673 @vindex gnus-ignored-newsgroups
Dave Love <fx@gnu.org>
parents:
diff changeset
674 Before examining the active file, Gnus deletes all lines that match the
Dave Love <fx@gnu.org>
parents:
diff changeset
675 regexp @code{gnus-ignored-newsgroups}. This is done primarily to reject
Dave Love <fx@gnu.org>
parents:
diff changeset
676 any groups with bogus names, but you can use this variable to make Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
677 ignore hierarchies you aren't ever interested in. However, this is not
Dave Love <fx@gnu.org>
parents:
diff changeset
678 recommended. In fact, it's highly discouraged. Instead, @pxref{New
Dave Love <fx@gnu.org>
parents:
diff changeset
679 Groups} for an overview of other variables that can be used instead.
Dave Love <fx@gnu.org>
parents:
diff changeset
680
Dave Love <fx@gnu.org>
parents:
diff changeset
681 @c This variable is
Dave Love <fx@gnu.org>
parents:
diff changeset
682 @c @code{nil} by default, and will slow down active file handling somewhat
Dave Love <fx@gnu.org>
parents:
diff changeset
683 @c if you set it to anything else.
Dave Love <fx@gnu.org>
parents:
diff changeset
684
Dave Love <fx@gnu.org>
parents:
diff changeset
685 @vindex gnus-read-active-file
Dave Love <fx@gnu.org>
parents:
diff changeset
686 @c @head
Dave Love <fx@gnu.org>
parents:
diff changeset
687 The active file can be rather Huge, so if you have a slow network, you
Dave Love <fx@gnu.org>
parents:
diff changeset
688 can set @code{gnus-read-active-file} to @code{nil} to prevent Gnus from
Dave Love <fx@gnu.org>
parents:
diff changeset
689 reading the active file. This variable is @code{some} by default.
Dave Love <fx@gnu.org>
parents:
diff changeset
690
Dave Love <fx@gnu.org>
parents:
diff changeset
691 Gnus will try to make do by getting information just on the groups that
Dave Love <fx@gnu.org>
parents:
diff changeset
692 you actually subscribe to.
Dave Love <fx@gnu.org>
parents:
diff changeset
693
Dave Love <fx@gnu.org>
parents:
diff changeset
694 Note that if you subscribe to lots and lots of groups, setting this
Dave Love <fx@gnu.org>
parents:
diff changeset
695 variable to @code{nil} will probably make Gnus slower, not faster. At
Dave Love <fx@gnu.org>
parents:
diff changeset
696 present, having this variable @code{nil} will slow Gnus down
Dave Love <fx@gnu.org>
parents:
diff changeset
697 considerably, unless you read news over a 2400 baud modem.
Dave Love <fx@gnu.org>
parents:
diff changeset
698
Dave Love <fx@gnu.org>
parents:
diff changeset
699 This variable can also have the value @code{some}. Gnus will then
Dave Love <fx@gnu.org>
parents:
diff changeset
700 attempt to read active info only on the subscribed groups. On some
Dave Love <fx@gnu.org>
parents:
diff changeset
701 servers this is quite fast (on sparkling, brand new INN servers that
Dave Love <fx@gnu.org>
parents:
diff changeset
702 support the @code{LIST ACTIVE group} command), on others this isn't fast
Dave Love <fx@gnu.org>
parents:
diff changeset
703 at all. In any case, @code{some} should be faster than @code{nil}, and
Dave Love <fx@gnu.org>
parents:
diff changeset
704 is certainly faster than @code{t} over slow lines.
Dave Love <fx@gnu.org>
parents:
diff changeset
705
Dave Love <fx@gnu.org>
parents:
diff changeset
706 If this variable is @code{nil}, Gnus will ask for group info in total
Dave Love <fx@gnu.org>
parents:
diff changeset
707 lock-step, which isn't very fast. If it is @code{some} and you use an
Dave Love <fx@gnu.org>
parents:
diff changeset
708 @sc{nntp} server, Gnus will pump out commands as fast as it can, and
Dave Love <fx@gnu.org>
parents:
diff changeset
709 read all the replies in one swoop. This will normally result in better
Dave Love <fx@gnu.org>
parents:
diff changeset
710 performance, but if the server does not support the aforementioned
Dave Love <fx@gnu.org>
parents:
diff changeset
711 @code{LIST ACTIVE group} command, this isn't very nice to the server.
Dave Love <fx@gnu.org>
parents:
diff changeset
712
Dave Love <fx@gnu.org>
parents:
diff changeset
713 In any case, if you use @code{some} or @code{nil}, you should definitely
Dave Love <fx@gnu.org>
parents:
diff changeset
714 kill all groups that you aren't interested in to speed things up.
Dave Love <fx@gnu.org>
parents:
diff changeset
715
Dave Love <fx@gnu.org>
parents:
diff changeset
716 Note that this variable also affects active file retrieval from
Dave Love <fx@gnu.org>
parents:
diff changeset
717 secondary select methods.
Dave Love <fx@gnu.org>
parents:
diff changeset
718
Dave Love <fx@gnu.org>
parents:
diff changeset
719
Dave Love <fx@gnu.org>
parents:
diff changeset
720 @node Startup Variables
Dave Love <fx@gnu.org>
parents:
diff changeset
721 @section Startup Variables
Dave Love <fx@gnu.org>
parents:
diff changeset
722
Dave Love <fx@gnu.org>
parents:
diff changeset
723 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
724
Dave Love <fx@gnu.org>
parents:
diff changeset
725 @item gnus-load-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
726 @vindex gnus-load-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
727 A hook run while Gnus is being loaded. Note that this hook will
Dave Love <fx@gnu.org>
parents:
diff changeset
728 normally be run just once in each Emacs session, no matter how many
Dave Love <fx@gnu.org>
parents:
diff changeset
729 times you start Gnus.
Dave Love <fx@gnu.org>
parents:
diff changeset
730
Dave Love <fx@gnu.org>
parents:
diff changeset
731 @item gnus-before-startup-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
732 @vindex gnus-before-startup-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
733 A hook run after starting up Gnus successfully.
Dave Love <fx@gnu.org>
parents:
diff changeset
734
Dave Love <fx@gnu.org>
parents:
diff changeset
735 @item gnus-startup-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
736 @vindex gnus-startup-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
737 A hook run as the very last thing after starting up Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
738
Dave Love <fx@gnu.org>
parents:
diff changeset
739 @item gnus-started-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
740 @vindex gnus-started-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
741 A hook that is run as the very last thing after starting up Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
742 successfully.
Dave Love <fx@gnu.org>
parents:
diff changeset
743
Dave Love <fx@gnu.org>
parents:
diff changeset
744 @item gnus-started-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
745 @vindex gnus-started-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
746 A hook that is run after reading the @file{.newsrc} file(s), but before
Dave Love <fx@gnu.org>
parents:
diff changeset
747 generating the group buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
748
Dave Love <fx@gnu.org>
parents:
diff changeset
749 @item gnus-check-bogus-newsgroups
Dave Love <fx@gnu.org>
parents:
diff changeset
750 @vindex gnus-check-bogus-newsgroups
Dave Love <fx@gnu.org>
parents:
diff changeset
751 If non-@code{nil}, Gnus will check for and delete all bogus groups at
Dave Love <fx@gnu.org>
parents:
diff changeset
752 startup. A @dfn{bogus group} is a group that you have in your
Dave Love <fx@gnu.org>
parents:
diff changeset
753 @file{.newsrc} file, but doesn't exist on the news server. Checking for
Dave Love <fx@gnu.org>
parents:
diff changeset
754 bogus groups can take quite a while, so to save time and resources it's
Dave Love <fx@gnu.org>
parents:
diff changeset
755 best to leave this option off, and do the checking for bogus groups once
Dave Love <fx@gnu.org>
parents:
diff changeset
756 in a while from the group buffer instead (@pxref{Group Maintenance}).
Dave Love <fx@gnu.org>
parents:
diff changeset
757
Dave Love <fx@gnu.org>
parents:
diff changeset
758 @item gnus-inhibit-startup-message
Dave Love <fx@gnu.org>
parents:
diff changeset
759 @vindex gnus-inhibit-startup-message
Dave Love <fx@gnu.org>
parents:
diff changeset
760 If non-@code{nil}, the startup message won't be displayed. That way,
Dave Love <fx@gnu.org>
parents:
diff changeset
761 your boss might not notice as easily that you are reading news instead
Dave Love <fx@gnu.org>
parents:
diff changeset
762 of doing your job. Note that this variable is used before
Dave Love <fx@gnu.org>
parents:
diff changeset
763 @file{.gnus.el} is loaded, so it should be set in @code{.emacs} instead.
Dave Love <fx@gnu.org>
parents:
diff changeset
764
Dave Love <fx@gnu.org>
parents:
diff changeset
765 @item gnus-no-groups-message
Dave Love <fx@gnu.org>
parents:
diff changeset
766 @vindex gnus-no-groups-message
Dave Love <fx@gnu.org>
parents:
diff changeset
767 Message displayed by Gnus when no groups are available.
Dave Love <fx@gnu.org>
parents:
diff changeset
768
Dave Love <fx@gnu.org>
parents:
diff changeset
769 @item gnus-play-startup-jingle
Dave Love <fx@gnu.org>
parents:
diff changeset
770 @vindex gnus-play-startup-jingle
Dave Love <fx@gnu.org>
parents:
diff changeset
771 If non-@code{nil}, play the Gnus jingle at startup.
Dave Love <fx@gnu.org>
parents:
diff changeset
772
Dave Love <fx@gnu.org>
parents:
diff changeset
773 @item gnus-startup-jingle
Dave Love <fx@gnu.org>
parents:
diff changeset
774 @vindex gnus-startup-jingle
Dave Love <fx@gnu.org>
parents:
diff changeset
775 Jingle to be played if the above variable is non-@code{nil}. The
Dave Love <fx@gnu.org>
parents:
diff changeset
776 default is @samp{Tuxedomoon.Jingle4.au}.
Dave Love <fx@gnu.org>
parents:
diff changeset
777
Dave Love <fx@gnu.org>
parents:
diff changeset
778 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
779
Dave Love <fx@gnu.org>
parents:
diff changeset
780
Dave Love <fx@gnu.org>
parents:
diff changeset
781 @node The Group Buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
782 @chapter The Group Buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
783 @cindex group buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
784
Dave Love <fx@gnu.org>
parents:
diff changeset
785 The @dfn{group buffer} lists all (or parts) of the available groups. It
Dave Love <fx@gnu.org>
parents:
diff changeset
786 is the first buffer shown when Gnus starts, and will never be killed as
Dave Love <fx@gnu.org>
parents:
diff changeset
787 long as Gnus is active.
Dave Love <fx@gnu.org>
parents:
diff changeset
788
Dave Love <fx@gnu.org>
parents:
diff changeset
789
Dave Love <fx@gnu.org>
parents:
diff changeset
790 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
791 * Group Buffer Format:: Information listed and how you can change it.
Dave Love <fx@gnu.org>
parents:
diff changeset
792 * Group Maneuvering:: Commands for moving in the group buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
793 * Selecting a Group:: Actually reading news.
Dave Love <fx@gnu.org>
parents:
diff changeset
794 * Group Data:: Changing the info for a group.
Dave Love <fx@gnu.org>
parents:
diff changeset
795 * Subscription Commands:: Unsubscribing, killing, subscribing.
Dave Love <fx@gnu.org>
parents:
diff changeset
796 * Group Levels:: Levels? What are those, then?
Dave Love <fx@gnu.org>
parents:
diff changeset
797 * Group Score:: A mechanism for finding out what groups you like.
Dave Love <fx@gnu.org>
parents:
diff changeset
798 * Marking Groups:: You can mark groups for later processing.
Dave Love <fx@gnu.org>
parents:
diff changeset
799 * Foreign Groups:: Creating and editing groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
800 * Group Parameters:: Each group may have different parameters set.
Dave Love <fx@gnu.org>
parents:
diff changeset
801 * Listing Groups:: Gnus can list various subsets of the groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
802 * Sorting Groups:: Re-arrange the group order.
Dave Love <fx@gnu.org>
parents:
diff changeset
803 * Group Maintenance:: Maintaining a tidy @file{.newsrc} file.
Dave Love <fx@gnu.org>
parents:
diff changeset
804 * Browse Foreign Server:: You can browse a server. See what it has to offer.
Dave Love <fx@gnu.org>
parents:
diff changeset
805 * Exiting Gnus:: Stop reading news and get some work done.
Dave Love <fx@gnu.org>
parents:
diff changeset
806 * Group Topics:: A folding group mode divided into topics.
Dave Love <fx@gnu.org>
parents:
diff changeset
807 * Misc Group Stuff:: Other stuff that you can to do.
Dave Love <fx@gnu.org>
parents:
diff changeset
808 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
809
Dave Love <fx@gnu.org>
parents:
diff changeset
810
Dave Love <fx@gnu.org>
parents:
diff changeset
811 @node Group Buffer Format
Dave Love <fx@gnu.org>
parents:
diff changeset
812 @section Group Buffer Format
Dave Love <fx@gnu.org>
parents:
diff changeset
813
Dave Love <fx@gnu.org>
parents:
diff changeset
814 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
815 * Group Line Specification:: Deciding how the group buffer is to look.
Dave Love <fx@gnu.org>
parents:
diff changeset
816 * Group Modeline Specification:: The group buffer modeline.
Dave Love <fx@gnu.org>
parents:
diff changeset
817 * Group Highlighting:: Having nice colors in the group buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
818 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
819
Dave Love <fx@gnu.org>
parents:
diff changeset
820
Dave Love <fx@gnu.org>
parents:
diff changeset
821 @node Group Line Specification
Dave Love <fx@gnu.org>
parents:
diff changeset
822 @subsection Group Line Specification
Dave Love <fx@gnu.org>
parents:
diff changeset
823 @cindex group buffer format
Dave Love <fx@gnu.org>
parents:
diff changeset
824
Dave Love <fx@gnu.org>
parents:
diff changeset
825 The default format of the group buffer is nice and dull, but you can
Dave Love <fx@gnu.org>
parents:
diff changeset
826 make it as exciting and ugly as you feel like.
Dave Love <fx@gnu.org>
parents:
diff changeset
827
Dave Love <fx@gnu.org>
parents:
diff changeset
828 Here's a couple of example group lines:
Dave Love <fx@gnu.org>
parents:
diff changeset
829
Dave Love <fx@gnu.org>
parents:
diff changeset
830 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
831 25: news.announce.newusers
Dave Love <fx@gnu.org>
parents:
diff changeset
832 * 0: alt.fan.andrea-dworkin
Dave Love <fx@gnu.org>
parents:
diff changeset
833 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
834
Dave Love <fx@gnu.org>
parents:
diff changeset
835 Quite simple, huh?
Dave Love <fx@gnu.org>
parents:
diff changeset
836
Dave Love <fx@gnu.org>
parents:
diff changeset
837 You can see that there are 25 unread articles in
Dave Love <fx@gnu.org>
parents:
diff changeset
838 @samp{news.announce.newusers}. There are no unread articles, but some
Dave Love <fx@gnu.org>
parents:
diff changeset
839 ticked articles, in @samp{alt.fan.andrea-dworkin} (see that little
Dave Love <fx@gnu.org>
parents:
diff changeset
840 asterisk at the beginning of the line?).
Dave Love <fx@gnu.org>
parents:
diff changeset
841
Dave Love <fx@gnu.org>
parents:
diff changeset
842 @vindex gnus-group-line-format
Dave Love <fx@gnu.org>
parents:
diff changeset
843 You can change that format to whatever you want by fiddling with the
Dave Love <fx@gnu.org>
parents:
diff changeset
844 @code{gnus-group-line-format} variable. This variable works along the
Dave Love <fx@gnu.org>
parents:
diff changeset
845 lines of a @code{format} specification, which is pretty much the same as
Dave Love <fx@gnu.org>
parents:
diff changeset
846 a @code{printf} specifications, for those of you who use (feh!) C.
Dave Love <fx@gnu.org>
parents:
diff changeset
847 @xref{Formatting Variables}.
Dave Love <fx@gnu.org>
parents:
diff changeset
848
Dave Love <fx@gnu.org>
parents:
diff changeset
849 @samp{%M%S%5y: %(%g%)\n} is the value that produced those lines above.
Dave Love <fx@gnu.org>
parents:
diff changeset
850
Dave Love <fx@gnu.org>
parents:
diff changeset
851 There should always be a colon on the line; the cursor always moves to
Dave Love <fx@gnu.org>
parents:
diff changeset
852 the colon after performing an operation. Nothing else is required---not
Dave Love <fx@gnu.org>
parents:
diff changeset
853 even the group name. All displayed text is just window dressing, and is
Dave Love <fx@gnu.org>
parents:
diff changeset
854 never examined by Gnus. Gnus stores all real information it needs using
Dave Love <fx@gnu.org>
parents:
diff changeset
855 text properties.
Dave Love <fx@gnu.org>
parents:
diff changeset
856
Dave Love <fx@gnu.org>
parents:
diff changeset
857 (Note that if you make a really strange, wonderful, spreadsheet-like
Dave Love <fx@gnu.org>
parents:
diff changeset
858 layout, everybody will believe you are hard at work with the accounting
Dave Love <fx@gnu.org>
parents:
diff changeset
859 instead of wasting time reading news.)
Dave Love <fx@gnu.org>
parents:
diff changeset
860
Dave Love <fx@gnu.org>
parents:
diff changeset
861 Here's a list of all available format characters:
Dave Love <fx@gnu.org>
parents:
diff changeset
862
Dave Love <fx@gnu.org>
parents:
diff changeset
863 @table @samp
Dave Love <fx@gnu.org>
parents:
diff changeset
864
Dave Love <fx@gnu.org>
parents:
diff changeset
865 @item M
Dave Love <fx@gnu.org>
parents:
diff changeset
866 An asterisk if the group only has marked articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
867
Dave Love <fx@gnu.org>
parents:
diff changeset
868 @item S
Dave Love <fx@gnu.org>
parents:
diff changeset
869 Whether the group is subscribed.
Dave Love <fx@gnu.org>
parents:
diff changeset
870
Dave Love <fx@gnu.org>
parents:
diff changeset
871 @item L
Dave Love <fx@gnu.org>
parents:
diff changeset
872 Level of subscribedness.
Dave Love <fx@gnu.org>
parents:
diff changeset
873
Dave Love <fx@gnu.org>
parents:
diff changeset
874 @item N
Dave Love <fx@gnu.org>
parents:
diff changeset
875 Number of unread articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
876
Dave Love <fx@gnu.org>
parents:
diff changeset
877 @item I
Dave Love <fx@gnu.org>
parents:
diff changeset
878 Number of dormant articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
879
Dave Love <fx@gnu.org>
parents:
diff changeset
880 @item T
Dave Love <fx@gnu.org>
parents:
diff changeset
881 Number of ticked articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
882
Dave Love <fx@gnu.org>
parents:
diff changeset
883 @item R
Dave Love <fx@gnu.org>
parents:
diff changeset
884 Number of read articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
885
Dave Love <fx@gnu.org>
parents:
diff changeset
886 @item t
Dave Love <fx@gnu.org>
parents:
diff changeset
887 Estimated total number of articles. (This is really @var{max-number}
Dave Love <fx@gnu.org>
parents:
diff changeset
888 minus @var{min-number} plus 1.)
Dave Love <fx@gnu.org>
parents:
diff changeset
889
Dave Love <fx@gnu.org>
parents:
diff changeset
890 @item y
Dave Love <fx@gnu.org>
parents:
diff changeset
891 Number of unread, unticked, non-dormant articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
892
Dave Love <fx@gnu.org>
parents:
diff changeset
893 @item i
Dave Love <fx@gnu.org>
parents:
diff changeset
894 Number of ticked and dormant articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
895
Dave Love <fx@gnu.org>
parents:
diff changeset
896 @item g
Dave Love <fx@gnu.org>
parents:
diff changeset
897 Full group name.
Dave Love <fx@gnu.org>
parents:
diff changeset
898
Dave Love <fx@gnu.org>
parents:
diff changeset
899 @item G
Dave Love <fx@gnu.org>
parents:
diff changeset
900 Group name.
Dave Love <fx@gnu.org>
parents:
diff changeset
901
Dave Love <fx@gnu.org>
parents:
diff changeset
902 @item D
Dave Love <fx@gnu.org>
parents:
diff changeset
903 Newsgroup description.
Dave Love <fx@gnu.org>
parents:
diff changeset
904
Dave Love <fx@gnu.org>
parents:
diff changeset
905 @item o
Dave Love <fx@gnu.org>
parents:
diff changeset
906 @samp{m} if moderated.
Dave Love <fx@gnu.org>
parents:
diff changeset
907
Dave Love <fx@gnu.org>
parents:
diff changeset
908 @item O
Dave Love <fx@gnu.org>
parents:
diff changeset
909 @samp{(m)} if moderated.
Dave Love <fx@gnu.org>
parents:
diff changeset
910
Dave Love <fx@gnu.org>
parents:
diff changeset
911 @item s
Dave Love <fx@gnu.org>
parents:
diff changeset
912 Select method.
Dave Love <fx@gnu.org>
parents:
diff changeset
913
Dave Love <fx@gnu.org>
parents:
diff changeset
914 @item n
Dave Love <fx@gnu.org>
parents:
diff changeset
915 Select from where.
Dave Love <fx@gnu.org>
parents:
diff changeset
916
Dave Love <fx@gnu.org>
parents:
diff changeset
917 @item z
Dave Love <fx@gnu.org>
parents:
diff changeset
918 A string that looks like @samp{<%s:%n>} if a foreign select method is
Dave Love <fx@gnu.org>
parents:
diff changeset
919 used.
Dave Love <fx@gnu.org>
parents:
diff changeset
920
Dave Love <fx@gnu.org>
parents:
diff changeset
921 @item P
Dave Love <fx@gnu.org>
parents:
diff changeset
922 Indentation based on the level of the topic (@pxref{Group Topics}).
Dave Love <fx@gnu.org>
parents:
diff changeset
923
Dave Love <fx@gnu.org>
parents:
diff changeset
924 @item c
Dave Love <fx@gnu.org>
parents:
diff changeset
925 @vindex gnus-group-uncollapsed-levels
Dave Love <fx@gnu.org>
parents:
diff changeset
926 Short (collapsed) group name. The @code{gnus-group-uncollapsed-levels}
Dave Love <fx@gnu.org>
parents:
diff changeset
927 variable says how many levels to leave at the end of the group name.
Dave Love <fx@gnu.org>
parents:
diff changeset
928 The default is 1---this will mean that group names like
Dave Love <fx@gnu.org>
parents:
diff changeset
929 @samp{gnu.emacs.gnus} will be shortened to @samp{g.emacs.gnus}.
Dave Love <fx@gnu.org>
parents:
diff changeset
930
Dave Love <fx@gnu.org>
parents:
diff changeset
931 @item m
Dave Love <fx@gnu.org>
parents:
diff changeset
932 @vindex gnus-new-mail-mark
Dave Love <fx@gnu.org>
parents:
diff changeset
933 @cindex %
Dave Love <fx@gnu.org>
parents:
diff changeset
934 @samp{%} (@code{gnus-new-mail-mark}) if there has arrived new mail to
Dave Love <fx@gnu.org>
parents:
diff changeset
935 the group lately.
Dave Love <fx@gnu.org>
parents:
diff changeset
936
Dave Love <fx@gnu.org>
parents:
diff changeset
937 @item d
Dave Love <fx@gnu.org>
parents:
diff changeset
938 A string that says when you last read the group (@pxref{Group
Dave Love <fx@gnu.org>
parents:
diff changeset
939 Timestamp}).
Dave Love <fx@gnu.org>
parents:
diff changeset
940
Dave Love <fx@gnu.org>
parents:
diff changeset
941 @item u
Dave Love <fx@gnu.org>
parents:
diff changeset
942 User defined specifier. The next character in the format string should
Dave Love <fx@gnu.org>
parents:
diff changeset
943 be a letter. Gnus will call the function
Dave Love <fx@gnu.org>
parents:
diff changeset
944 @code{gnus-user-format-function-}@samp{X}, where @samp{X} is the letter
Dave Love <fx@gnu.org>
parents:
diff changeset
945 following @samp{%u}. The function will be passed a single dummy
Dave Love <fx@gnu.org>
parents:
diff changeset
946 parameter as argument. The function should return a string, which will
Dave Love <fx@gnu.org>
parents:
diff changeset
947 be inserted into the buffer just like information from any other
Dave Love <fx@gnu.org>
parents:
diff changeset
948 specifier.
Dave Love <fx@gnu.org>
parents:
diff changeset
949 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
950
Dave Love <fx@gnu.org>
parents:
diff changeset
951 @cindex *
Dave Love <fx@gnu.org>
parents:
diff changeset
952 All the ``number-of'' specs will be filled with an asterisk (@samp{*})
Dave Love <fx@gnu.org>
parents:
diff changeset
953 if no info is available---for instance, if it is a non-activated foreign
Dave Love <fx@gnu.org>
parents:
diff changeset
954 group, or a bogus native group.
Dave Love <fx@gnu.org>
parents:
diff changeset
955
Dave Love <fx@gnu.org>
parents:
diff changeset
956
Dave Love <fx@gnu.org>
parents:
diff changeset
957 @node Group Modeline Specification
Dave Love <fx@gnu.org>
parents:
diff changeset
958 @subsection Group Modeline Specification
Dave Love <fx@gnu.org>
parents:
diff changeset
959 @cindex group modeline
Dave Love <fx@gnu.org>
parents:
diff changeset
960
Dave Love <fx@gnu.org>
parents:
diff changeset
961 @vindex gnus-group-mode-line-format
Dave Love <fx@gnu.org>
parents:
diff changeset
962 The mode line can be changed by setting
Dave Love <fx@gnu.org>
parents:
diff changeset
963 @code{gnus-group-mode-line-format} (@pxref{Mode Line Formatting}). It
Dave Love <fx@gnu.org>
parents:
diff changeset
964 doesn't understand that many format specifiers:
Dave Love <fx@gnu.org>
parents:
diff changeset
965
Dave Love <fx@gnu.org>
parents:
diff changeset
966 @table @samp
Dave Love <fx@gnu.org>
parents:
diff changeset
967 @item S
Dave Love <fx@gnu.org>
parents:
diff changeset
968 The native news server.
Dave Love <fx@gnu.org>
parents:
diff changeset
969 @item M
Dave Love <fx@gnu.org>
parents:
diff changeset
970 The native select method.
Dave Love <fx@gnu.org>
parents:
diff changeset
971 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
972
Dave Love <fx@gnu.org>
parents:
diff changeset
973
Dave Love <fx@gnu.org>
parents:
diff changeset
974 @node Group Highlighting
Dave Love <fx@gnu.org>
parents:
diff changeset
975 @subsection Group Highlighting
Dave Love <fx@gnu.org>
parents:
diff changeset
976 @cindex highlighting
Dave Love <fx@gnu.org>
parents:
diff changeset
977 @cindex group highlighting
Dave Love <fx@gnu.org>
parents:
diff changeset
978
Dave Love <fx@gnu.org>
parents:
diff changeset
979 @vindex gnus-group-highlight
Dave Love <fx@gnu.org>
parents:
diff changeset
980 Highlighting in the group buffer is controlled by the
Dave Love <fx@gnu.org>
parents:
diff changeset
981 @code{gnus-group-highlight} variable. This is an alist with elements
26290
df10644e22b5 Fix complaints from makeinfo 4.0.
Dave Love <fx@gnu.org>
parents: 25829
diff changeset
982 that look like @code{(@var{form} . @var{face})}. If @var{form} evaluates to
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
983 something non-@code{nil}, the @var{face} will be used on the line.
Dave Love <fx@gnu.org>
parents:
diff changeset
984
Dave Love <fx@gnu.org>
parents:
diff changeset
985 Here's an example value for this variable that might look nice if the
Dave Love <fx@gnu.org>
parents:
diff changeset
986 background is dark:
Dave Love <fx@gnu.org>
parents:
diff changeset
987
Dave Love <fx@gnu.org>
parents:
diff changeset
988 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
989 (face-spec-set 'my-group-face-1
Dave Love <fx@gnu.org>
parents:
diff changeset
990 '((t (:foreground "Red" :bold t))))
Dave Love <fx@gnu.org>
parents:
diff changeset
991 (face-spec-set 'my-group-face-2
Dave Love <fx@gnu.org>
parents:
diff changeset
992 '((t (:foreground "SeaGreen" :bold t))))
Dave Love <fx@gnu.org>
parents:
diff changeset
993 (face-spec-set 'my-group-face-3
Dave Love <fx@gnu.org>
parents:
diff changeset
994 '((t (:foreground "SpringGreen" :bold t))))
Dave Love <fx@gnu.org>
parents:
diff changeset
995 (face-spec-set 'my-group-face-4
Dave Love <fx@gnu.org>
parents:
diff changeset
996 '((t (:foreground "SteelBlue" :bold t))))
Dave Love <fx@gnu.org>
parents:
diff changeset
997 (face-spec-set 'my-group-face-5
Dave Love <fx@gnu.org>
parents:
diff changeset
998 '((t (:foreground "SkyBlue" :bold t))))
Dave Love <fx@gnu.org>
parents:
diff changeset
999
Dave Love <fx@gnu.org>
parents:
diff changeset
1000 (setq gnus-group-highlight
Dave Love <fx@gnu.org>
parents:
diff changeset
1001 '(((> unread 200) . my-group-face-1)
Dave Love <fx@gnu.org>
parents:
diff changeset
1002 ((and (< level 3) (zerop unread)) . my-group-face-2)
Dave Love <fx@gnu.org>
parents:
diff changeset
1003 ((< level 3) . my-group-face-3)
Dave Love <fx@gnu.org>
parents:
diff changeset
1004 ((zerop unread) . my-group-face-4)
Dave Love <fx@gnu.org>
parents:
diff changeset
1005 (t . my-group-face-5)))
Dave Love <fx@gnu.org>
parents:
diff changeset
1006 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
1007
Dave Love <fx@gnu.org>
parents:
diff changeset
1008 Also @pxref{Faces and Fonts}.
Dave Love <fx@gnu.org>
parents:
diff changeset
1009
Dave Love <fx@gnu.org>
parents:
diff changeset
1010 Variables that are dynamically bound when the forms are evaluated
Dave Love <fx@gnu.org>
parents:
diff changeset
1011 include:
Dave Love <fx@gnu.org>
parents:
diff changeset
1012
Dave Love <fx@gnu.org>
parents:
diff changeset
1013 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
1014 @item group
Dave Love <fx@gnu.org>
parents:
diff changeset
1015 The group name.
Dave Love <fx@gnu.org>
parents:
diff changeset
1016 @item unread
Dave Love <fx@gnu.org>
parents:
diff changeset
1017 The number of unread articles in the group.
Dave Love <fx@gnu.org>
parents:
diff changeset
1018 @item method
Dave Love <fx@gnu.org>
parents:
diff changeset
1019 The select method.
Dave Love <fx@gnu.org>
parents:
diff changeset
1020 @item mailp
Dave Love <fx@gnu.org>
parents:
diff changeset
1021 Whether the group is a mail group.
Dave Love <fx@gnu.org>
parents:
diff changeset
1022 @item level
Dave Love <fx@gnu.org>
parents:
diff changeset
1023 The level of the group.
Dave Love <fx@gnu.org>
parents:
diff changeset
1024 @item score
Dave Love <fx@gnu.org>
parents:
diff changeset
1025 The score of the group.
Dave Love <fx@gnu.org>
parents:
diff changeset
1026 @item ticked
Dave Love <fx@gnu.org>
parents:
diff changeset
1027 The number of ticked articles in the group.
Dave Love <fx@gnu.org>
parents:
diff changeset
1028 @item total
Dave Love <fx@gnu.org>
parents:
diff changeset
1029 The total number of articles in the group. Or rather, MAX-NUMBER minus
Dave Love <fx@gnu.org>
parents:
diff changeset
1030 MIN-NUMBER plus one.
Dave Love <fx@gnu.org>
parents:
diff changeset
1031 @item topic
Dave Love <fx@gnu.org>
parents:
diff changeset
1032 When using the topic minor mode, this variable is bound to the current
Dave Love <fx@gnu.org>
parents:
diff changeset
1033 topic being inserted.
Dave Love <fx@gnu.org>
parents:
diff changeset
1034 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
1035
Dave Love <fx@gnu.org>
parents:
diff changeset
1036 When the forms are @code{eval}ed, point is at the beginning of the line
Dave Love <fx@gnu.org>
parents:
diff changeset
1037 of the group in question, so you can use many of the normal Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
1038 functions for snarfing info on the group.
Dave Love <fx@gnu.org>
parents:
diff changeset
1039
Dave Love <fx@gnu.org>
parents:
diff changeset
1040 @vindex gnus-group-update-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
1041 @findex gnus-group-highlight-line
Dave Love <fx@gnu.org>
parents:
diff changeset
1042 @code{gnus-group-update-hook} is called when a group line is changed.
Dave Love <fx@gnu.org>
parents:
diff changeset
1043 It will not be called when @code{gnus-visual} is @code{nil}. This hook
Dave Love <fx@gnu.org>
parents:
diff changeset
1044 calls @code{gnus-group-highlight-line} by default.
Dave Love <fx@gnu.org>
parents:
diff changeset
1045
Dave Love <fx@gnu.org>
parents:
diff changeset
1046
Dave Love <fx@gnu.org>
parents:
diff changeset
1047 @node Group Maneuvering
Dave Love <fx@gnu.org>
parents:
diff changeset
1048 @section Group Maneuvering
Dave Love <fx@gnu.org>
parents:
diff changeset
1049 @cindex group movement
Dave Love <fx@gnu.org>
parents:
diff changeset
1050
Dave Love <fx@gnu.org>
parents:
diff changeset
1051 All movement commands understand the numeric prefix and will behave as
Dave Love <fx@gnu.org>
parents:
diff changeset
1052 expected, hopefully.
Dave Love <fx@gnu.org>
parents:
diff changeset
1053
Dave Love <fx@gnu.org>
parents:
diff changeset
1054 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
1055
Dave Love <fx@gnu.org>
parents:
diff changeset
1056 @item n
Dave Love <fx@gnu.org>
parents:
diff changeset
1057 @kindex n (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1058 @findex gnus-group-next-unread-group
Dave Love <fx@gnu.org>
parents:
diff changeset
1059 Go to the next group that has unread articles
Dave Love <fx@gnu.org>
parents:
diff changeset
1060 (@code{gnus-group-next-unread-group}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1061
Dave Love <fx@gnu.org>
parents:
diff changeset
1062 @item p
Dave Love <fx@gnu.org>
parents:
diff changeset
1063 @itemx DEL
Dave Love <fx@gnu.org>
parents:
diff changeset
1064 @kindex DEL (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1065 @kindex p (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1066 @findex gnus-group-prev-unread-group
Dave Love <fx@gnu.org>
parents:
diff changeset
1067 Go to the previous group that has unread articles
Dave Love <fx@gnu.org>
parents:
diff changeset
1068 (@code{gnus-group-prev-unread-group}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1069
Dave Love <fx@gnu.org>
parents:
diff changeset
1070 @item N
Dave Love <fx@gnu.org>
parents:
diff changeset
1071 @kindex N (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1072 @findex gnus-group-next-group
Dave Love <fx@gnu.org>
parents:
diff changeset
1073 Go to the next group (@code{gnus-group-next-group}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1074
Dave Love <fx@gnu.org>
parents:
diff changeset
1075 @item P
Dave Love <fx@gnu.org>
parents:
diff changeset
1076 @kindex P (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1077 @findex gnus-group-prev-group
Dave Love <fx@gnu.org>
parents:
diff changeset
1078 Go to the previous group (@code{gnus-group-prev-group}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1079
Dave Love <fx@gnu.org>
parents:
diff changeset
1080 @item M-n
Dave Love <fx@gnu.org>
parents:
diff changeset
1081 @kindex M-n (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1082 @findex gnus-group-next-unread-group-same-level
Dave Love <fx@gnu.org>
parents:
diff changeset
1083 Go to the next unread group on the same (or lower) level
Dave Love <fx@gnu.org>
parents:
diff changeset
1084 (@code{gnus-group-next-unread-group-same-level}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1085
Dave Love <fx@gnu.org>
parents:
diff changeset
1086 @item M-p
Dave Love <fx@gnu.org>
parents:
diff changeset
1087 @kindex M-p (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1088 @findex gnus-group-prev-unread-group-same-level
Dave Love <fx@gnu.org>
parents:
diff changeset
1089 Go to the previous unread group on the same (or lower) level
Dave Love <fx@gnu.org>
parents:
diff changeset
1090 (@code{gnus-group-prev-unread-group-same-level}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1091 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
1092
Dave Love <fx@gnu.org>
parents:
diff changeset
1093 Three commands for jumping to groups:
Dave Love <fx@gnu.org>
parents:
diff changeset
1094
Dave Love <fx@gnu.org>
parents:
diff changeset
1095 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
1096
Dave Love <fx@gnu.org>
parents:
diff changeset
1097 @item j
Dave Love <fx@gnu.org>
parents:
diff changeset
1098 @kindex j (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1099 @findex gnus-group-jump-to-group
Dave Love <fx@gnu.org>
parents:
diff changeset
1100 Jump to a group (and make it visible if it isn't already)
Dave Love <fx@gnu.org>
parents:
diff changeset
1101 (@code{gnus-group-jump-to-group}). Killed groups can be jumped to, just
Dave Love <fx@gnu.org>
parents:
diff changeset
1102 like living groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
1103
Dave Love <fx@gnu.org>
parents:
diff changeset
1104 @item ,
Dave Love <fx@gnu.org>
parents:
diff changeset
1105 @kindex , (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1106 @findex gnus-group-best-unread-group
Dave Love <fx@gnu.org>
parents:
diff changeset
1107 Jump to the unread group with the lowest level
Dave Love <fx@gnu.org>
parents:
diff changeset
1108 (@code{gnus-group-best-unread-group}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1109
Dave Love <fx@gnu.org>
parents:
diff changeset
1110 @item .
Dave Love <fx@gnu.org>
parents:
diff changeset
1111 @kindex . (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1112 @findex gnus-group-first-unread-group
Dave Love <fx@gnu.org>
parents:
diff changeset
1113 Jump to the first group with unread articles
Dave Love <fx@gnu.org>
parents:
diff changeset
1114 (@code{gnus-group-first-unread-group}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1115 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
1116
Dave Love <fx@gnu.org>
parents:
diff changeset
1117 @vindex gnus-group-goto-unread
Dave Love <fx@gnu.org>
parents:
diff changeset
1118 If @code{gnus-group-goto-unread} is @code{nil}, all the movement
Dave Love <fx@gnu.org>
parents:
diff changeset
1119 commands will move to the next group, not the next unread group. Even
Dave Love <fx@gnu.org>
parents:
diff changeset
1120 the commands that say they move to the next unread group. The default
Dave Love <fx@gnu.org>
parents:
diff changeset
1121 is @code{t}.
Dave Love <fx@gnu.org>
parents:
diff changeset
1122
Dave Love <fx@gnu.org>
parents:
diff changeset
1123
Dave Love <fx@gnu.org>
parents:
diff changeset
1124 @node Selecting a Group
Dave Love <fx@gnu.org>
parents:
diff changeset
1125 @section Selecting a Group
Dave Love <fx@gnu.org>
parents:
diff changeset
1126 @cindex group selection
Dave Love <fx@gnu.org>
parents:
diff changeset
1127
Dave Love <fx@gnu.org>
parents:
diff changeset
1128 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
1129
Dave Love <fx@gnu.org>
parents:
diff changeset
1130 @item SPACE
Dave Love <fx@gnu.org>
parents:
diff changeset
1131 @kindex SPACE (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1132 @findex gnus-group-read-group
Dave Love <fx@gnu.org>
parents:
diff changeset
1133 Select the current group, switch to the summary buffer and display the
Dave Love <fx@gnu.org>
parents:
diff changeset
1134 first unread article (@code{gnus-group-read-group}). If there are no
Dave Love <fx@gnu.org>
parents:
diff changeset
1135 unread articles in the group, or if you give a non-numerical prefix to
Dave Love <fx@gnu.org>
parents:
diff changeset
1136 this command, Gnus will offer to fetch all the old articles in this
Dave Love <fx@gnu.org>
parents:
diff changeset
1137 group from the server. If you give a numerical prefix @var{N}, @var{N}
Dave Love <fx@gnu.org>
parents:
diff changeset
1138 determines the number of articles Gnus will fetch. If @var{N} is
Dave Love <fx@gnu.org>
parents:
diff changeset
1139 positive, Gnus fetches the @var{N} newest articles, if @var{N} is
26290
df10644e22b5 Fix complaints from makeinfo 4.0.
Dave Love <fx@gnu.org>
parents: 25829
diff changeset
1140 negative, Gnus fetches the @math{abs(N)} oldest articles.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1141
Dave Love <fx@gnu.org>
parents:
diff changeset
1142 @item RET
Dave Love <fx@gnu.org>
parents:
diff changeset
1143 @kindex RET (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1144 @findex gnus-group-select-group
Dave Love <fx@gnu.org>
parents:
diff changeset
1145 Select the current group and switch to the summary buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
1146 (@code{gnus-group-select-group}). Takes the same arguments as
Dave Love <fx@gnu.org>
parents:
diff changeset
1147 @code{gnus-group-read-group}---the only difference is that this command
Dave Love <fx@gnu.org>
parents:
diff changeset
1148 does not display the first unread article automatically upon group
Dave Love <fx@gnu.org>
parents:
diff changeset
1149 entry.
Dave Love <fx@gnu.org>
parents:
diff changeset
1150
Dave Love <fx@gnu.org>
parents:
diff changeset
1151 @item M-RET
Dave Love <fx@gnu.org>
parents:
diff changeset
1152 @kindex M-RET (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1153 @findex gnus-group-quick-select-group
Dave Love <fx@gnu.org>
parents:
diff changeset
1154 This does the same as the command above, but tries to do it with the
Dave Love <fx@gnu.org>
parents:
diff changeset
1155 minimum amount of fuzz (@code{gnus-group-quick-select-group}). No
Dave Love <fx@gnu.org>
parents:
diff changeset
1156 scoring/killing will be performed, there will be no highlights and no
Dave Love <fx@gnu.org>
parents:
diff changeset
1157 expunging. This might be useful if you're in a real hurry and have to
Dave Love <fx@gnu.org>
parents:
diff changeset
1158 enter some humongous group. If you give a 0 prefix to this command
Dave Love <fx@gnu.org>
parents:
diff changeset
1159 (i.e., @kbd{0 M-RET}), Gnus won't even generate the summary buffer,
Dave Love <fx@gnu.org>
parents:
diff changeset
1160 which is useful if you want to toggle threading before generating the
Dave Love <fx@gnu.org>
parents:
diff changeset
1161 summary buffer (@pxref{Summary Generation Commands}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1162
Dave Love <fx@gnu.org>
parents:
diff changeset
1163 @item M-SPACE
Dave Love <fx@gnu.org>
parents:
diff changeset
1164 @kindex M-SPACE (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1165 @findex gnus-group-visible-select-group
Dave Love <fx@gnu.org>
parents:
diff changeset
1166 This is yet one more command that does the same as the @kbd{RET}
Dave Love <fx@gnu.org>
parents:
diff changeset
1167 command, but this one does it without expunging and hiding dormants
Dave Love <fx@gnu.org>
parents:
diff changeset
1168 (@code{gnus-group-visible-select-group}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1169
Dave Love <fx@gnu.org>
parents:
diff changeset
1170 @item M-C-RET
Dave Love <fx@gnu.org>
parents:
diff changeset
1171 @kindex M-C-RET (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1172 @findex gnus-group-select-group-ephemerally
Dave Love <fx@gnu.org>
parents:
diff changeset
1173 Finally, this command selects the current group ephemerally without
Dave Love <fx@gnu.org>
parents:
diff changeset
1174 doing any processing of its contents
Dave Love <fx@gnu.org>
parents:
diff changeset
1175 (@code{gnus-group-select-group-ephemerally}). Even threading has been
Dave Love <fx@gnu.org>
parents:
diff changeset
1176 turned off. Everything you do in the group after selecting it in this
Dave Love <fx@gnu.org>
parents:
diff changeset
1177 manner will have no permanent effects.
Dave Love <fx@gnu.org>
parents:
diff changeset
1178
Dave Love <fx@gnu.org>
parents:
diff changeset
1179 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
1180
Dave Love <fx@gnu.org>
parents:
diff changeset
1181 @vindex gnus-large-newsgroup
Dave Love <fx@gnu.org>
parents:
diff changeset
1182 The @code{gnus-large-newsgroup} variable says what Gnus should consider
Dave Love <fx@gnu.org>
parents:
diff changeset
1183 to be a big group. This is 200 by default. If the group has more
Dave Love <fx@gnu.org>
parents:
diff changeset
1184 (unread and/or ticked) articles than this, Gnus will query the user
Dave Love <fx@gnu.org>
parents:
diff changeset
1185 before entering the group. The user can then specify how many articles
Dave Love <fx@gnu.org>
parents:
diff changeset
1186 should be fetched from the server. If the user specifies a negative
Dave Love <fx@gnu.org>
parents:
diff changeset
1187 number (@code{-n}), the @code{n} oldest articles will be fetched. If it
Dave Love <fx@gnu.org>
parents:
diff changeset
1188 is positive, the @code{n} articles that have arrived most recently will
Dave Love <fx@gnu.org>
parents:
diff changeset
1189 be fetched.
Dave Love <fx@gnu.org>
parents:
diff changeset
1190
Dave Love <fx@gnu.org>
parents:
diff changeset
1191 @vindex gnus-select-group-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
1192 @vindex gnus-auto-select-first
Dave Love <fx@gnu.org>
parents:
diff changeset
1193 @code{gnus-auto-select-first} control whether any articles are selected
Dave Love <fx@gnu.org>
parents:
diff changeset
1194 automatically when entering a group with the @kbd{SPACE} command.
Dave Love <fx@gnu.org>
parents:
diff changeset
1195
Dave Love <fx@gnu.org>
parents:
diff changeset
1196 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
1197
Dave Love <fx@gnu.org>
parents:
diff changeset
1198 @item nil
Dave Love <fx@gnu.org>
parents:
diff changeset
1199 Don't select any articles when entering the group. Just display the
Dave Love <fx@gnu.org>
parents:
diff changeset
1200 full summary buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
1201
Dave Love <fx@gnu.org>
parents:
diff changeset
1202 @item t
Dave Love <fx@gnu.org>
parents:
diff changeset
1203 Select the first unread article when entering the group.
Dave Love <fx@gnu.org>
parents:
diff changeset
1204
Dave Love <fx@gnu.org>
parents:
diff changeset
1205 @item best
Dave Love <fx@gnu.org>
parents:
diff changeset
1206 Select the highest scored article in the group when entering the
Dave Love <fx@gnu.org>
parents:
diff changeset
1207 group.
Dave Love <fx@gnu.org>
parents:
diff changeset
1208 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
1209
Dave Love <fx@gnu.org>
parents:
diff changeset
1210 If you want to prevent automatic selection in some group (say, in a
Dave Love <fx@gnu.org>
parents:
diff changeset
1211 binary group with Huge articles) you can set this variable to @code{nil}
Dave Love <fx@gnu.org>
parents:
diff changeset
1212 in @code{gnus-select-group-hook}, which is called when a group is
Dave Love <fx@gnu.org>
parents:
diff changeset
1213 selected.
Dave Love <fx@gnu.org>
parents:
diff changeset
1214
Dave Love <fx@gnu.org>
parents:
diff changeset
1215
Dave Love <fx@gnu.org>
parents:
diff changeset
1216 @node Subscription Commands
Dave Love <fx@gnu.org>
parents:
diff changeset
1217 @section Subscription Commands
Dave Love <fx@gnu.org>
parents:
diff changeset
1218 @cindex subscription
Dave Love <fx@gnu.org>
parents:
diff changeset
1219
Dave Love <fx@gnu.org>
parents:
diff changeset
1220 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
1221
Dave Love <fx@gnu.org>
parents:
diff changeset
1222 @item S t
Dave Love <fx@gnu.org>
parents:
diff changeset
1223 @itemx u
Dave Love <fx@gnu.org>
parents:
diff changeset
1224 @kindex S t (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1225 @kindex u (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1226 @findex gnus-group-unsubscribe-current-group
Dave Love <fx@gnu.org>
parents:
diff changeset
1227 @c @icon{gnus-group-unsubscribe}
Dave Love <fx@gnu.org>
parents:
diff changeset
1228 Toggle subscription to the current group
Dave Love <fx@gnu.org>
parents:
diff changeset
1229 (@code{gnus-group-unsubscribe-current-group}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1230
Dave Love <fx@gnu.org>
parents:
diff changeset
1231 @item S s
Dave Love <fx@gnu.org>
parents:
diff changeset
1232 @itemx U
Dave Love <fx@gnu.org>
parents:
diff changeset
1233 @kindex S s (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1234 @kindex U (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1235 @findex gnus-group-unsubscribe-group
Dave Love <fx@gnu.org>
parents:
diff changeset
1236 Prompt for a group to subscribe, and then subscribe it. If it was
Dave Love <fx@gnu.org>
parents:
diff changeset
1237 subscribed already, unsubscribe it instead
Dave Love <fx@gnu.org>
parents:
diff changeset
1238 (@code{gnus-group-unsubscribe-group}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1239
Dave Love <fx@gnu.org>
parents:
diff changeset
1240 @item S k
Dave Love <fx@gnu.org>
parents:
diff changeset
1241 @itemx C-k
Dave Love <fx@gnu.org>
parents:
diff changeset
1242 @kindex S k (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1243 @kindex C-k (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1244 @findex gnus-group-kill-group
Dave Love <fx@gnu.org>
parents:
diff changeset
1245 @c @icon{gnus-group-kill-group}
Dave Love <fx@gnu.org>
parents:
diff changeset
1246 Kill the current group (@code{gnus-group-kill-group}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1247
Dave Love <fx@gnu.org>
parents:
diff changeset
1248 @item S y
Dave Love <fx@gnu.org>
parents:
diff changeset
1249 @itemx C-y
Dave Love <fx@gnu.org>
parents:
diff changeset
1250 @kindex S y (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1251 @kindex C-y (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1252 @findex gnus-group-yank-group
Dave Love <fx@gnu.org>
parents:
diff changeset
1253 Yank the last killed group (@code{gnus-group-yank-group}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1254
Dave Love <fx@gnu.org>
parents:
diff changeset
1255 @item C-x C-t
Dave Love <fx@gnu.org>
parents:
diff changeset
1256 @kindex C-x C-t (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1257 @findex gnus-group-transpose-groups
Dave Love <fx@gnu.org>
parents:
diff changeset
1258 Transpose two groups (@code{gnus-group-transpose-groups}). This isn't
Dave Love <fx@gnu.org>
parents:
diff changeset
1259 really a subscription command, but you can use it instead of a
Dave Love <fx@gnu.org>
parents:
diff changeset
1260 kill-and-yank sequence sometimes.
Dave Love <fx@gnu.org>
parents:
diff changeset
1261
Dave Love <fx@gnu.org>
parents:
diff changeset
1262 @item S w
Dave Love <fx@gnu.org>
parents:
diff changeset
1263 @itemx C-w
Dave Love <fx@gnu.org>
parents:
diff changeset
1264 @kindex S w (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1265 @kindex C-w (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1266 @findex gnus-group-kill-region
Dave Love <fx@gnu.org>
parents:
diff changeset
1267 Kill all groups in the region (@code{gnus-group-kill-region}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1268
Dave Love <fx@gnu.org>
parents:
diff changeset
1269 @item S z
Dave Love <fx@gnu.org>
parents:
diff changeset
1270 @kindex S z (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1271 @findex gnus-group-kill-all-zombies
Dave Love <fx@gnu.org>
parents:
diff changeset
1272 Kill all zombie groups (@code{gnus-group-kill-all-zombies}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1273
Dave Love <fx@gnu.org>
parents:
diff changeset
1274 @item S C-k
Dave Love <fx@gnu.org>
parents:
diff changeset
1275 @kindex S C-k (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1276 @findex gnus-group-kill-level
Dave Love <fx@gnu.org>
parents:
diff changeset
1277 Kill all groups on a certain level (@code{gnus-group-kill-level}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1278 These groups can't be yanked back after killing, so this command should
Dave Love <fx@gnu.org>
parents:
diff changeset
1279 be used with some caution. The only time where this command comes in
Dave Love <fx@gnu.org>
parents:
diff changeset
1280 really handy is when you have a @file{.newsrc} with lots of unsubscribed
Dave Love <fx@gnu.org>
parents:
diff changeset
1281 groups that you want to get rid off. @kbd{S C-k} on level 7 will
Dave Love <fx@gnu.org>
parents:
diff changeset
1282 kill off all unsubscribed groups that do not have message numbers in the
Dave Love <fx@gnu.org>
parents:
diff changeset
1283 @file{.newsrc} file.
Dave Love <fx@gnu.org>
parents:
diff changeset
1284
Dave Love <fx@gnu.org>
parents:
diff changeset
1285 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
1286
Dave Love <fx@gnu.org>
parents:
diff changeset
1287 Also @pxref{Group Levels}.
Dave Love <fx@gnu.org>
parents:
diff changeset
1288
Dave Love <fx@gnu.org>
parents:
diff changeset
1289
Dave Love <fx@gnu.org>
parents:
diff changeset
1290 @node Group Data
Dave Love <fx@gnu.org>
parents:
diff changeset
1291 @section Group Data
Dave Love <fx@gnu.org>
parents:
diff changeset
1292
Dave Love <fx@gnu.org>
parents:
diff changeset
1293 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
1294
Dave Love <fx@gnu.org>
parents:
diff changeset
1295 @item c
Dave Love <fx@gnu.org>
parents:
diff changeset
1296 @kindex c (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1297 @findex gnus-group-catchup-current
Dave Love <fx@gnu.org>
parents:
diff changeset
1298 @vindex gnus-group-catchup-group-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
1299 @c @icon{gnus-group-catchup-current}
Dave Love <fx@gnu.org>
parents:
diff changeset
1300 Mark all unticked articles in this group as read
Dave Love <fx@gnu.org>
parents:
diff changeset
1301 (@code{gnus-group-catchup-current}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1302 @code{gnus-group-catchup-group-hook} is called when catching up a group from
Dave Love <fx@gnu.org>
parents:
diff changeset
1303 the group buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
1304
Dave Love <fx@gnu.org>
parents:
diff changeset
1305 @item C
Dave Love <fx@gnu.org>
parents:
diff changeset
1306 @kindex C (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1307 @findex gnus-group-catchup-current-all
Dave Love <fx@gnu.org>
parents:
diff changeset
1308 Mark all articles in this group, even the ticked ones, as read
Dave Love <fx@gnu.org>
parents:
diff changeset
1309 (@code{gnus-group-catchup-current-all}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1310
Dave Love <fx@gnu.org>
parents:
diff changeset
1311 @item M-c
Dave Love <fx@gnu.org>
parents:
diff changeset
1312 @kindex M-c (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1313 @findex gnus-group-clear-data
Dave Love <fx@gnu.org>
parents:
diff changeset
1314 Clear the data from the current group---nix out marks and the list of
Dave Love <fx@gnu.org>
parents:
diff changeset
1315 read articles (@code{gnus-group-clear-data}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1316
Dave Love <fx@gnu.org>
parents:
diff changeset
1317 @item M-x gnus-group-clear-data-on-native-groups
Dave Love <fx@gnu.org>
parents:
diff changeset
1318 @kindex M-x gnus-group-clear-data-on-native-groups
Dave Love <fx@gnu.org>
parents:
diff changeset
1319 @findex gnus-group-clear-data-on-native-groups
Dave Love <fx@gnu.org>
parents:
diff changeset
1320 If you have switched from one @sc{nntp} server to another, all your marks
Dave Love <fx@gnu.org>
parents:
diff changeset
1321 and read ranges have become worthless. You can use this command to
Dave Love <fx@gnu.org>
parents:
diff changeset
1322 clear out all data that you have on your native groups. Use with
Dave Love <fx@gnu.org>
parents:
diff changeset
1323 caution.
Dave Love <fx@gnu.org>
parents:
diff changeset
1324
Dave Love <fx@gnu.org>
parents:
diff changeset
1325 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
1326
Dave Love <fx@gnu.org>
parents:
diff changeset
1327
Dave Love <fx@gnu.org>
parents:
diff changeset
1328 @node Group Levels
Dave Love <fx@gnu.org>
parents:
diff changeset
1329 @section Group Levels
Dave Love <fx@gnu.org>
parents:
diff changeset
1330 @cindex group level
Dave Love <fx@gnu.org>
parents:
diff changeset
1331 @cindex level
Dave Love <fx@gnu.org>
parents:
diff changeset
1332
Dave Love <fx@gnu.org>
parents:
diff changeset
1333 All groups have a level of @dfn{subscribedness}. For instance, if a
Dave Love <fx@gnu.org>
parents:
diff changeset
1334 group is on level 2, it is more subscribed than a group on level 5. You
Dave Love <fx@gnu.org>
parents:
diff changeset
1335 can ask Gnus to just list groups on a given level or lower
Dave Love <fx@gnu.org>
parents:
diff changeset
1336 (@pxref{Listing Groups}), or to just check for new articles in groups on
Dave Love <fx@gnu.org>
parents:
diff changeset
1337 a given level or lower (@pxref{Scanning New Messages}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1338
Dave Love <fx@gnu.org>
parents:
diff changeset
1339 Remember: The higher the level of the group, the less important it is.
Dave Love <fx@gnu.org>
parents:
diff changeset
1340
Dave Love <fx@gnu.org>
parents:
diff changeset
1341 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
1342
Dave Love <fx@gnu.org>
parents:
diff changeset
1343 @item S l
Dave Love <fx@gnu.org>
parents:
diff changeset
1344 @kindex S l (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1345 @findex gnus-group-set-current-level
Dave Love <fx@gnu.org>
parents:
diff changeset
1346 Set the level of the current group. If a numeric prefix is given, the
Dave Love <fx@gnu.org>
parents:
diff changeset
1347 next @var{n} groups will have their levels set. The user will be
Dave Love <fx@gnu.org>
parents:
diff changeset
1348 prompted for a level.
Dave Love <fx@gnu.org>
parents:
diff changeset
1349 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
1350
Dave Love <fx@gnu.org>
parents:
diff changeset
1351 @vindex gnus-level-killed
Dave Love <fx@gnu.org>
parents:
diff changeset
1352 @vindex gnus-level-zombie
Dave Love <fx@gnu.org>
parents:
diff changeset
1353 @vindex gnus-level-unsubscribed
Dave Love <fx@gnu.org>
parents:
diff changeset
1354 @vindex gnus-level-subscribed
Dave Love <fx@gnu.org>
parents:
diff changeset
1355 Gnus considers groups from levels 1 to
Dave Love <fx@gnu.org>
parents:
diff changeset
1356 @code{gnus-level-subscribed} (inclusive) (default 5) to be subscribed,
Dave Love <fx@gnu.org>
parents:
diff changeset
1357 @code{gnus-level-subscribed} (exclusive) and
Dave Love <fx@gnu.org>
parents:
diff changeset
1358 @code{gnus-level-unsubscribed} (inclusive) (default 7) to be
Dave Love <fx@gnu.org>
parents:
diff changeset
1359 unsubscribed, @code{gnus-level-zombie} to be zombies (walking dead)
Dave Love <fx@gnu.org>
parents:
diff changeset
1360 (default 8) and @code{gnus-level-killed} to be killed (completely dead)
Dave Love <fx@gnu.org>
parents:
diff changeset
1361 (default 9). Gnus treats subscribed and unsubscribed groups exactly the
Dave Love <fx@gnu.org>
parents:
diff changeset
1362 same, but zombie and killed groups have no information on what articles
Dave Love <fx@gnu.org>
parents:
diff changeset
1363 you have read, etc, stored. This distinction between dead and living
Dave Love <fx@gnu.org>
parents:
diff changeset
1364 groups isn't done because it is nice or clever, it is done purely for
Dave Love <fx@gnu.org>
parents:
diff changeset
1365 reasons of efficiency.
Dave Love <fx@gnu.org>
parents:
diff changeset
1366
Dave Love <fx@gnu.org>
parents:
diff changeset
1367 It is recommended that you keep all your mail groups (if any) on quite
Dave Love <fx@gnu.org>
parents:
diff changeset
1368 low levels (e.g. 1 or 2).
Dave Love <fx@gnu.org>
parents:
diff changeset
1369
Dave Love <fx@gnu.org>
parents:
diff changeset
1370 If you want to play with the level variables, you should show some care.
Dave Love <fx@gnu.org>
parents:
diff changeset
1371 Set them once, and don't touch them ever again. Better yet, don't touch
Dave Love <fx@gnu.org>
parents:
diff changeset
1372 them at all unless you know exactly what you're doing.
Dave Love <fx@gnu.org>
parents:
diff changeset
1373
Dave Love <fx@gnu.org>
parents:
diff changeset
1374 @vindex gnus-level-default-unsubscribed
Dave Love <fx@gnu.org>
parents:
diff changeset
1375 @vindex gnus-level-default-subscribed
Dave Love <fx@gnu.org>
parents:
diff changeset
1376 Two closely related variables are @code{gnus-level-default-subscribed}
Dave Love <fx@gnu.org>
parents:
diff changeset
1377 (default 3) and @code{gnus-level-default-unsubscribed} (default 6),
Dave Love <fx@gnu.org>
parents:
diff changeset
1378 which are the levels that new groups will be put on if they are
Dave Love <fx@gnu.org>
parents:
diff changeset
1379 (un)subscribed. These two variables should, of course, be inside the
Dave Love <fx@gnu.org>
parents:
diff changeset
1380 relevant valid ranges.
Dave Love <fx@gnu.org>
parents:
diff changeset
1381
Dave Love <fx@gnu.org>
parents:
diff changeset
1382 @vindex gnus-keep-same-level
Dave Love <fx@gnu.org>
parents:
diff changeset
1383 If @code{gnus-keep-same-level} is non-@code{nil}, some movement commands
Dave Love <fx@gnu.org>
parents:
diff changeset
1384 will only move to groups of the same level (or lower). In
Dave Love <fx@gnu.org>
parents:
diff changeset
1385 particular, going from the last article in one group to the next group
Dave Love <fx@gnu.org>
parents:
diff changeset
1386 will go to the next group of the same level (or lower). This might be
Dave Love <fx@gnu.org>
parents:
diff changeset
1387 handy if you want to read the most important groups before you read the
Dave Love <fx@gnu.org>
parents:
diff changeset
1388 rest.
Dave Love <fx@gnu.org>
parents:
diff changeset
1389
Dave Love <fx@gnu.org>
parents:
diff changeset
1390 @vindex gnus-group-default-list-level
Dave Love <fx@gnu.org>
parents:
diff changeset
1391 All groups with a level less than or equal to
Dave Love <fx@gnu.org>
parents:
diff changeset
1392 @code{gnus-group-default-list-level} will be listed in the group buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
1393 by default.
Dave Love <fx@gnu.org>
parents:
diff changeset
1394
Dave Love <fx@gnu.org>
parents:
diff changeset
1395 @vindex gnus-group-list-inactive-groups
Dave Love <fx@gnu.org>
parents:
diff changeset
1396 If @code{gnus-group-list-inactive-groups} is non-@code{nil}, non-active
Dave Love <fx@gnu.org>
parents:
diff changeset
1397 groups will be listed along with the unread groups. This variable is
Dave Love <fx@gnu.org>
parents:
diff changeset
1398 @code{t} by default. If it is @code{nil}, inactive groups won't be
Dave Love <fx@gnu.org>
parents:
diff changeset
1399 listed.
Dave Love <fx@gnu.org>
parents:
diff changeset
1400
Dave Love <fx@gnu.org>
parents:
diff changeset
1401 @vindex gnus-group-use-permanent-levels
Dave Love <fx@gnu.org>
parents:
diff changeset
1402 If @code{gnus-group-use-permanent-levels} is non-@code{nil}, once you
Dave Love <fx@gnu.org>
parents:
diff changeset
1403 give a level prefix to @kbd{g} or @kbd{l}, all subsequent commands will
Dave Love <fx@gnu.org>
parents:
diff changeset
1404 use this level as the ``work'' level.
Dave Love <fx@gnu.org>
parents:
diff changeset
1405
Dave Love <fx@gnu.org>
parents:
diff changeset
1406 @vindex gnus-activate-level
Dave Love <fx@gnu.org>
parents:
diff changeset
1407 Gnus will normally just activate (i. e., query the server about) groups
Dave Love <fx@gnu.org>
parents:
diff changeset
1408 on level @code{gnus-activate-level} or less. If you don't want to
Dave Love <fx@gnu.org>
parents:
diff changeset
1409 activate unsubscribed groups, for instance, you might set this variable
Dave Love <fx@gnu.org>
parents:
diff changeset
1410 to 5. The default is 6.
Dave Love <fx@gnu.org>
parents:
diff changeset
1411
Dave Love <fx@gnu.org>
parents:
diff changeset
1412
Dave Love <fx@gnu.org>
parents:
diff changeset
1413 @node Group Score
Dave Love <fx@gnu.org>
parents:
diff changeset
1414 @section Group Score
Dave Love <fx@gnu.org>
parents:
diff changeset
1415 @cindex group score
Dave Love <fx@gnu.org>
parents:
diff changeset
1416 @cindex group rank
Dave Love <fx@gnu.org>
parents:
diff changeset
1417 @cindex rank
Dave Love <fx@gnu.org>
parents:
diff changeset
1418
Dave Love <fx@gnu.org>
parents:
diff changeset
1419 You would normally keep important groups on high levels, but that scheme
Dave Love <fx@gnu.org>
parents:
diff changeset
1420 is somewhat restrictive. Don't you wish you could have Gnus sort the
Dave Love <fx@gnu.org>
parents:
diff changeset
1421 group buffer according to how often you read groups, perhaps? Within
Dave Love <fx@gnu.org>
parents:
diff changeset
1422 reason?
Dave Love <fx@gnu.org>
parents:
diff changeset
1423
Dave Love <fx@gnu.org>
parents:
diff changeset
1424 This is what @dfn{group score} is for. You can assign a score to each
Dave Love <fx@gnu.org>
parents:
diff changeset
1425 group. You can then sort the group buffer based on this score.
Dave Love <fx@gnu.org>
parents:
diff changeset
1426 Alternatively, you can sort on score and then level. (Taken together,
Dave Love <fx@gnu.org>
parents:
diff changeset
1427 the level and the score is called the @dfn{rank} of the group. A group
Dave Love <fx@gnu.org>
parents:
diff changeset
1428 that is on level 4 and has a score of 1 has a higher rank than a group
Dave Love <fx@gnu.org>
parents:
diff changeset
1429 on level 5 that has a score of 300. (The level is the most significant
Dave Love <fx@gnu.org>
parents:
diff changeset
1430 part and the score is the least significant part.))
Dave Love <fx@gnu.org>
parents:
diff changeset
1431
Dave Love <fx@gnu.org>
parents:
diff changeset
1432 @findex gnus-summary-bubble-group
Dave Love <fx@gnu.org>
parents:
diff changeset
1433 If you want groups you read often to get higher scores than groups you
Dave Love <fx@gnu.org>
parents:
diff changeset
1434 read seldom you can add the @code{gnus-summary-bubble-group} function to
Dave Love <fx@gnu.org>
parents:
diff changeset
1435 the @code{gnus-summary-exit-hook} hook. This will result (after
Dave Love <fx@gnu.org>
parents:
diff changeset
1436 sorting) in a bubbling sort of action. If you want to see that in
Dave Love <fx@gnu.org>
parents:
diff changeset
1437 action after each summary exit, you can add
Dave Love <fx@gnu.org>
parents:
diff changeset
1438 @code{gnus-group-sort-groups-by-rank} or
Dave Love <fx@gnu.org>
parents:
diff changeset
1439 @code{gnus-group-sort-groups-by-score} to the same hook, but that will
Dave Love <fx@gnu.org>
parents:
diff changeset
1440 slow things down somewhat.
Dave Love <fx@gnu.org>
parents:
diff changeset
1441
Dave Love <fx@gnu.org>
parents:
diff changeset
1442
Dave Love <fx@gnu.org>
parents:
diff changeset
1443 @node Marking Groups
Dave Love <fx@gnu.org>
parents:
diff changeset
1444 @section Marking Groups
Dave Love <fx@gnu.org>
parents:
diff changeset
1445 @cindex marking groups
Dave Love <fx@gnu.org>
parents:
diff changeset
1446
Dave Love <fx@gnu.org>
parents:
diff changeset
1447 If you want to perform some command on several groups, and they appear
Dave Love <fx@gnu.org>
parents:
diff changeset
1448 subsequently in the group buffer, you would normally just give a
Dave Love <fx@gnu.org>
parents:
diff changeset
1449 numerical prefix to the command. Most group commands will then do your
Dave Love <fx@gnu.org>
parents:
diff changeset
1450 bidding on those groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
1451
Dave Love <fx@gnu.org>
parents:
diff changeset
1452 However, if the groups are not in sequential order, you can still
Dave Love <fx@gnu.org>
parents:
diff changeset
1453 perform a command on several groups. You simply mark the groups first
Dave Love <fx@gnu.org>
parents:
diff changeset
1454 with the process mark and then execute the command.
Dave Love <fx@gnu.org>
parents:
diff changeset
1455
Dave Love <fx@gnu.org>
parents:
diff changeset
1456 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
1457
Dave Love <fx@gnu.org>
parents:
diff changeset
1458 @item #
Dave Love <fx@gnu.org>
parents:
diff changeset
1459 @kindex # (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1460 @itemx M m
Dave Love <fx@gnu.org>
parents:
diff changeset
1461 @kindex M m (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1462 @findex gnus-group-mark-group
Dave Love <fx@gnu.org>
parents:
diff changeset
1463 Set the mark on the current group (@code{gnus-group-mark-group}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1464
Dave Love <fx@gnu.org>
parents:
diff changeset
1465 @item M-#
Dave Love <fx@gnu.org>
parents:
diff changeset
1466 @kindex M-# (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1467 @itemx M u
Dave Love <fx@gnu.org>
parents:
diff changeset
1468 @kindex M u (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1469 @findex gnus-group-unmark-group
Dave Love <fx@gnu.org>
parents:
diff changeset
1470 Remove the mark from the current group
Dave Love <fx@gnu.org>
parents:
diff changeset
1471 (@code{gnus-group-unmark-group}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1472
Dave Love <fx@gnu.org>
parents:
diff changeset
1473 @item M U
Dave Love <fx@gnu.org>
parents:
diff changeset
1474 @kindex M U (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1475 @findex gnus-group-unmark-all-groups
Dave Love <fx@gnu.org>
parents:
diff changeset
1476 Remove the mark from all groups (@code{gnus-group-unmark-all-groups}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1477
Dave Love <fx@gnu.org>
parents:
diff changeset
1478 @item M w
Dave Love <fx@gnu.org>
parents:
diff changeset
1479 @kindex M w (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1480 @findex gnus-group-mark-region
Dave Love <fx@gnu.org>
parents:
diff changeset
1481 Mark all groups between point and mark (@code{gnus-group-mark-region}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1482
Dave Love <fx@gnu.org>
parents:
diff changeset
1483 @item M b
Dave Love <fx@gnu.org>
parents:
diff changeset
1484 @kindex M b (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1485 @findex gnus-group-mark-buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
1486 Mark all groups in the buffer (@code{gnus-group-mark-buffer}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1487
Dave Love <fx@gnu.org>
parents:
diff changeset
1488 @item M r
Dave Love <fx@gnu.org>
parents:
diff changeset
1489 @kindex M r (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1490 @findex gnus-group-mark-regexp
Dave Love <fx@gnu.org>
parents:
diff changeset
1491 Mark all groups that match some regular expression
Dave Love <fx@gnu.org>
parents:
diff changeset
1492 (@code{gnus-group-mark-regexp}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1493 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
1494
Dave Love <fx@gnu.org>
parents:
diff changeset
1495 Also @pxref{Process/Prefix}.
Dave Love <fx@gnu.org>
parents:
diff changeset
1496
Dave Love <fx@gnu.org>
parents:
diff changeset
1497 @findex gnus-group-universal-argument
Dave Love <fx@gnu.org>
parents:
diff changeset
1498 If you want to execute some command on all groups that have been marked
Dave Love <fx@gnu.org>
parents:
diff changeset
1499 with the process mark, you can use the @kbd{M-&}
Dave Love <fx@gnu.org>
parents:
diff changeset
1500 (@code{gnus-group-universal-argument}) command. It will prompt you for
Dave Love <fx@gnu.org>
parents:
diff changeset
1501 the command to be executed.
Dave Love <fx@gnu.org>
parents:
diff changeset
1502
Dave Love <fx@gnu.org>
parents:
diff changeset
1503
Dave Love <fx@gnu.org>
parents:
diff changeset
1504 @node Foreign Groups
Dave Love <fx@gnu.org>
parents:
diff changeset
1505 @section Foreign Groups
Dave Love <fx@gnu.org>
parents:
diff changeset
1506 @cindex foreign groups
Dave Love <fx@gnu.org>
parents:
diff changeset
1507
Dave Love <fx@gnu.org>
parents:
diff changeset
1508 Below are some group mode commands for making and editing general foreign
Dave Love <fx@gnu.org>
parents:
diff changeset
1509 groups, as well as commands to ease the creation of a few
Dave Love <fx@gnu.org>
parents:
diff changeset
1510 special-purpose groups. All these commands insert the newly created
Dave Love <fx@gnu.org>
parents:
diff changeset
1511 groups under point---@code{gnus-subscribe-newsgroup-method} is not
Dave Love <fx@gnu.org>
parents:
diff changeset
1512 consulted.
Dave Love <fx@gnu.org>
parents:
diff changeset
1513
Dave Love <fx@gnu.org>
parents:
diff changeset
1514 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
1515
Dave Love <fx@gnu.org>
parents:
diff changeset
1516 @item G m
Dave Love <fx@gnu.org>
parents:
diff changeset
1517 @kindex G m (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1518 @findex gnus-group-make-group
Dave Love <fx@gnu.org>
parents:
diff changeset
1519 @cindex making groups
Dave Love <fx@gnu.org>
parents:
diff changeset
1520 Make a new group (@code{gnus-group-make-group}). Gnus will prompt you
Dave Love <fx@gnu.org>
parents:
diff changeset
1521 for a name, a method and possibly an @dfn{address}. For an easier way
Dave Love <fx@gnu.org>
parents:
diff changeset
1522 to subscribe to @sc{nntp} groups, @pxref{Browse Foreign Server}.
Dave Love <fx@gnu.org>
parents:
diff changeset
1523
Dave Love <fx@gnu.org>
parents:
diff changeset
1524 @item G r
Dave Love <fx@gnu.org>
parents:
diff changeset
1525 @kindex G r (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1526 @findex gnus-group-rename-group
Dave Love <fx@gnu.org>
parents:
diff changeset
1527 @cindex renaming groups
Dave Love <fx@gnu.org>
parents:
diff changeset
1528 Rename the current group to something else
Dave Love <fx@gnu.org>
parents:
diff changeset
1529 (@code{gnus-group-rename-group}). This is valid only on some
Dave Love <fx@gnu.org>
parents:
diff changeset
1530 groups---mail groups mostly. This command might very well be quite slow
Dave Love <fx@gnu.org>
parents:
diff changeset
1531 on some backends.
Dave Love <fx@gnu.org>
parents:
diff changeset
1532
Dave Love <fx@gnu.org>
parents:
diff changeset
1533 @item G c
Dave Love <fx@gnu.org>
parents:
diff changeset
1534 @kindex G c (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1535 @cindex customizing
Dave Love <fx@gnu.org>
parents:
diff changeset
1536 @findex gnus-group-customize
Dave Love <fx@gnu.org>
parents:
diff changeset
1537 Customize the group parameters (@code{gnus-group-customize}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1538
Dave Love <fx@gnu.org>
parents:
diff changeset
1539 @item G e
Dave Love <fx@gnu.org>
parents:
diff changeset
1540 @kindex G e (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1541 @findex gnus-group-edit-group-method
Dave Love <fx@gnu.org>
parents:
diff changeset
1542 @cindex renaming groups
Dave Love <fx@gnu.org>
parents:
diff changeset
1543 Enter a buffer where you can edit the select method of the current
Dave Love <fx@gnu.org>
parents:
diff changeset
1544 group (@code{gnus-group-edit-group-method}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1545
Dave Love <fx@gnu.org>
parents:
diff changeset
1546 @item G p
Dave Love <fx@gnu.org>
parents:
diff changeset
1547 @kindex G p (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1548 @findex gnus-group-edit-group-parameters
Dave Love <fx@gnu.org>
parents:
diff changeset
1549 Enter a buffer where you can edit the group parameters
Dave Love <fx@gnu.org>
parents:
diff changeset
1550 (@code{gnus-group-edit-group-parameters}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1551
Dave Love <fx@gnu.org>
parents:
diff changeset
1552 @item G E
Dave Love <fx@gnu.org>
parents:
diff changeset
1553 @kindex G E (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1554 @findex gnus-group-edit-group
Dave Love <fx@gnu.org>
parents:
diff changeset
1555 Enter a buffer where you can edit the group info
Dave Love <fx@gnu.org>
parents:
diff changeset
1556 (@code{gnus-group-edit-group}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1557
Dave Love <fx@gnu.org>
parents:
diff changeset
1558 @item G d
Dave Love <fx@gnu.org>
parents:
diff changeset
1559 @kindex G d (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1560 @findex gnus-group-make-directory-group
Dave Love <fx@gnu.org>
parents:
diff changeset
1561 @cindex nndir
Dave Love <fx@gnu.org>
parents:
diff changeset
1562 Make a directory group (@pxref{Directory Groups}). You will be prompted
Dave Love <fx@gnu.org>
parents:
diff changeset
1563 for a directory name (@code{gnus-group-make-directory-group}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1564
Dave Love <fx@gnu.org>
parents:
diff changeset
1565 @item G h
Dave Love <fx@gnu.org>
parents:
diff changeset
1566 @kindex G h (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1567 @cindex help group
Dave Love <fx@gnu.org>
parents:
diff changeset
1568 @findex gnus-group-make-help-group
Dave Love <fx@gnu.org>
parents:
diff changeset
1569 Make the Gnus help group (@code{gnus-group-make-help-group}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1570
Dave Love <fx@gnu.org>
parents:
diff changeset
1571 @item G a
Dave Love <fx@gnu.org>
parents:
diff changeset
1572 @kindex G a (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1573 @cindex (ding) archive
Dave Love <fx@gnu.org>
parents:
diff changeset
1574 @cindex archive group
Dave Love <fx@gnu.org>
parents:
diff changeset
1575 @findex gnus-group-make-archive-group
Dave Love <fx@gnu.org>
parents:
diff changeset
1576 @vindex gnus-group-archive-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
1577 @vindex gnus-group-recent-archive-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
1578 Make a Gnus archive group (@code{gnus-group-make-archive-group}). By
Dave Love <fx@gnu.org>
parents:
diff changeset
1579 default a group pointing to the most recent articles will be created
Dave Love <fx@gnu.org>
parents:
diff changeset
1580 (@code{gnus-group-recent-archive-directory}), but given a prefix, a full
Dave Love <fx@gnu.org>
parents:
diff changeset
1581 group will be created from @code{gnus-group-archive-directory}.
Dave Love <fx@gnu.org>
parents:
diff changeset
1582
Dave Love <fx@gnu.org>
parents:
diff changeset
1583 @item G k
Dave Love <fx@gnu.org>
parents:
diff changeset
1584 @kindex G k (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1585 @findex gnus-group-make-kiboze-group
Dave Love <fx@gnu.org>
parents:
diff changeset
1586 @cindex nnkiboze
Dave Love <fx@gnu.org>
parents:
diff changeset
1587 Make a kiboze group. You will be prompted for a name, for a regexp to
Dave Love <fx@gnu.org>
parents:
diff changeset
1588 match groups to be ``included'' in the kiboze group, and a series of
Dave Love <fx@gnu.org>
parents:
diff changeset
1589 strings to match on headers (@code{gnus-group-make-kiboze-group}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1590 @xref{Kibozed Groups}.
Dave Love <fx@gnu.org>
parents:
diff changeset
1591
Dave Love <fx@gnu.org>
parents:
diff changeset
1592 @item G D
Dave Love <fx@gnu.org>
parents:
diff changeset
1593 @kindex G D (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1594 @findex gnus-group-enter-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
1595 @cindex nneething
Dave Love <fx@gnu.org>
parents:
diff changeset
1596 Read an arbitrary directory as if it were a newsgroup with the
Dave Love <fx@gnu.org>
parents:
diff changeset
1597 @code{nneething} backend (@code{gnus-group-enter-directory}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1598 @xref{Anything Groups}.
Dave Love <fx@gnu.org>
parents:
diff changeset
1599
Dave Love <fx@gnu.org>
parents:
diff changeset
1600 @item G f
Dave Love <fx@gnu.org>
parents:
diff changeset
1601 @kindex G f (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1602 @findex gnus-group-make-doc-group
Dave Love <fx@gnu.org>
parents:
diff changeset
1603 @cindex ClariNet Briefs
Dave Love <fx@gnu.org>
parents:
diff changeset
1604 @cindex nndoc
Dave Love <fx@gnu.org>
parents:
diff changeset
1605 Make a group based on some file or other
Dave Love <fx@gnu.org>
parents:
diff changeset
1606 (@code{gnus-group-make-doc-group}). If you give a prefix to this
Dave Love <fx@gnu.org>
parents:
diff changeset
1607 command, you will be prompted for a file name and a file type.
Dave Love <fx@gnu.org>
parents:
diff changeset
1608 Currently supported types are @code{babyl}, @code{mbox}, @code{digest},
Dave Love <fx@gnu.org>
parents:
diff changeset
1609 @code{mmdf}, @code{news}, @code{rnews}, @code{clari-briefs},
Dave Love <fx@gnu.org>
parents:
diff changeset
1610 @code{rfc934}, @code{rfc822-forward}, and @code{forward}. If you run
Dave Love <fx@gnu.org>
parents:
diff changeset
1611 this command without a prefix, Gnus will guess at the file type.
Dave Love <fx@gnu.org>
parents:
diff changeset
1612 @xref{Document Groups}.
Dave Love <fx@gnu.org>
parents:
diff changeset
1613
Dave Love <fx@gnu.org>
parents:
diff changeset
1614 @item G u
Dave Love <fx@gnu.org>
parents:
diff changeset
1615 @kindex G u (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1616 @vindex gnus-useful-groups
Dave Love <fx@gnu.org>
parents:
diff changeset
1617 @findex gnus-group-make-useful-group
Dave Love <fx@gnu.org>
parents:
diff changeset
1618 Create one of the groups mentioned in @code{gnus-useful-groups}
Dave Love <fx@gnu.org>
parents:
diff changeset
1619 (@code{gnus-group-make-useful-group}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1620
Dave Love <fx@gnu.org>
parents:
diff changeset
1621 @item G w
Dave Love <fx@gnu.org>
parents:
diff changeset
1622 @kindex G w (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1623 @findex gnus-group-make-web-group
Dave Love <fx@gnu.org>
parents:
diff changeset
1624 @cindex DejaNews
Dave Love <fx@gnu.org>
parents:
diff changeset
1625 @cindex Alta Vista
Dave Love <fx@gnu.org>
parents:
diff changeset
1626 @cindex InReference
Dave Love <fx@gnu.org>
parents:
diff changeset
1627 @cindex nnweb
Dave Love <fx@gnu.org>
parents:
diff changeset
1628 Make an ephemeral group based on a web search
Dave Love <fx@gnu.org>
parents:
diff changeset
1629 (@code{gnus-group-make-web-group}). If you give a prefix to this
Dave Love <fx@gnu.org>
parents:
diff changeset
1630 command, make a solid group instead. You will be prompted for the
Dave Love <fx@gnu.org>
parents:
diff changeset
1631 search engine type and the search string. Valid search engine types
Dave Love <fx@gnu.org>
parents:
diff changeset
1632 include @code{dejanews}, @code{altavista} and @code{reference}.
Dave Love <fx@gnu.org>
parents:
diff changeset
1633 @xref{Web Searches}.
Dave Love <fx@gnu.org>
parents:
diff changeset
1634
Dave Love <fx@gnu.org>
parents:
diff changeset
1635 If you use the @code{dejanews} search engine, you can limit the search
Dave Love <fx@gnu.org>
parents:
diff changeset
1636 to a particular group by using a match string like
Dave Love <fx@gnu.org>
parents:
diff changeset
1637 @samp{~g alt.sysadmin.recovery shaving}.
Dave Love <fx@gnu.org>
parents:
diff changeset
1638
Dave Love <fx@gnu.org>
parents:
diff changeset
1639 @item G DEL
Dave Love <fx@gnu.org>
parents:
diff changeset
1640 @kindex G DEL (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1641 @findex gnus-group-delete-group
Dave Love <fx@gnu.org>
parents:
diff changeset
1642 This function will delete the current group
Dave Love <fx@gnu.org>
parents:
diff changeset
1643 (@code{gnus-group-delete-group}). If given a prefix, this function will
Dave Love <fx@gnu.org>
parents:
diff changeset
1644 actually delete all the articles in the group, and forcibly remove the
Dave Love <fx@gnu.org>
parents:
diff changeset
1645 group itself from the face of the Earth. Use a prefix only if you are
Dave Love <fx@gnu.org>
parents:
diff changeset
1646 absolutely sure of what you are doing. This command can't be used on
Dave Love <fx@gnu.org>
parents:
diff changeset
1647 read-only groups (like @code{nntp} group), though.
Dave Love <fx@gnu.org>
parents:
diff changeset
1648
Dave Love <fx@gnu.org>
parents:
diff changeset
1649 @item G V
Dave Love <fx@gnu.org>
parents:
diff changeset
1650 @kindex G V (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1651 @findex gnus-group-make-empty-virtual
Dave Love <fx@gnu.org>
parents:
diff changeset
1652 Make a new, fresh, empty @code{nnvirtual} group
Dave Love <fx@gnu.org>
parents:
diff changeset
1653 (@code{gnus-group-make-empty-virtual}). @xref{Virtual Groups}.
Dave Love <fx@gnu.org>
parents:
diff changeset
1654
Dave Love <fx@gnu.org>
parents:
diff changeset
1655 @item G v
Dave Love <fx@gnu.org>
parents:
diff changeset
1656 @kindex G v (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1657 @findex gnus-group-add-to-virtual
Dave Love <fx@gnu.org>
parents:
diff changeset
1658 Add the current group to an @code{nnvirtual} group
Dave Love <fx@gnu.org>
parents:
diff changeset
1659 (@code{gnus-group-add-to-virtual}). Uses the process/prefix convention.
Dave Love <fx@gnu.org>
parents:
diff changeset
1660 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
1661
Dave Love <fx@gnu.org>
parents:
diff changeset
1662 @xref{Select Methods}, for more information on the various select
Dave Love <fx@gnu.org>
parents:
diff changeset
1663 methods.
Dave Love <fx@gnu.org>
parents:
diff changeset
1664
Dave Love <fx@gnu.org>
parents:
diff changeset
1665 @vindex gnus-activate-foreign-newsgroups
Dave Love <fx@gnu.org>
parents:
diff changeset
1666 If @code{gnus-activate-foreign-newsgroups} is a positive number,
Dave Love <fx@gnu.org>
parents:
diff changeset
1667 Gnus will check all foreign groups with this level or lower at startup.
Dave Love <fx@gnu.org>
parents:
diff changeset
1668 This might take quite a while, especially if you subscribe to lots of
Dave Love <fx@gnu.org>
parents:
diff changeset
1669 groups from different @sc{nntp} servers. Also @pxref{Group Levels};
Dave Love <fx@gnu.org>
parents:
diff changeset
1670 @code{gnus-activate-level} also affects activation of foreign
Dave Love <fx@gnu.org>
parents:
diff changeset
1671 newsgroups.
Dave Love <fx@gnu.org>
parents:
diff changeset
1672
Dave Love <fx@gnu.org>
parents:
diff changeset
1673
Dave Love <fx@gnu.org>
parents:
diff changeset
1674 @node Group Parameters
Dave Love <fx@gnu.org>
parents:
diff changeset
1675 @section Group Parameters
Dave Love <fx@gnu.org>
parents:
diff changeset
1676 @cindex group parameters
Dave Love <fx@gnu.org>
parents:
diff changeset
1677
Dave Love <fx@gnu.org>
parents:
diff changeset
1678 The group parameters store information local to a particular group.
Dave Love <fx@gnu.org>
parents:
diff changeset
1679 Here's an example group parameter list:
Dave Love <fx@gnu.org>
parents:
diff changeset
1680
Dave Love <fx@gnu.org>
parents:
diff changeset
1681 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
1682 ((to-address . "ding@@gnus.org")
Dave Love <fx@gnu.org>
parents:
diff changeset
1683 (auto-expire . t))
Dave Love <fx@gnu.org>
parents:
diff changeset
1684 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
1685
Dave Love <fx@gnu.org>
parents:
diff changeset
1686 We see that each element consists of a "dotted pair"---the thing before
Dave Love <fx@gnu.org>
parents:
diff changeset
1687 the dot is the key, while the thing after the dot is the value. All the
Dave Love <fx@gnu.org>
parents:
diff changeset
1688 parameters have this form @emph{except} local variable specs, which are
Dave Love <fx@gnu.org>
parents:
diff changeset
1689 not dotted pairs, but proper lists.
Dave Love <fx@gnu.org>
parents:
diff changeset
1690
Dave Love <fx@gnu.org>
parents:
diff changeset
1691 The following group parameters can be used:
Dave Love <fx@gnu.org>
parents:
diff changeset
1692
Dave Love <fx@gnu.org>
parents:
diff changeset
1693 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
1694 @item to-address
Dave Love <fx@gnu.org>
parents:
diff changeset
1695 @cindex to-address
Dave Love <fx@gnu.org>
parents:
diff changeset
1696 Address used by when doing followups and new posts.
Dave Love <fx@gnu.org>
parents:
diff changeset
1697
Dave Love <fx@gnu.org>
parents:
diff changeset
1698 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
1699 (to-address . "some@@where.com")
Dave Love <fx@gnu.org>
parents:
diff changeset
1700 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
1701
Dave Love <fx@gnu.org>
parents:
diff changeset
1702 This is primarily useful in mail groups that represent closed mailing
Dave Love <fx@gnu.org>
parents:
diff changeset
1703 lists---mailing lists where it's expected that everybody that writes to
Dave Love <fx@gnu.org>
parents:
diff changeset
1704 the mailing list is subscribed to it. Since using this parameter
Dave Love <fx@gnu.org>
parents:
diff changeset
1705 ensures that the mail only goes to the mailing list itself, it means
Dave Love <fx@gnu.org>
parents:
diff changeset
1706 that members won't receive two copies of your followups.
Dave Love <fx@gnu.org>
parents:
diff changeset
1707
Dave Love <fx@gnu.org>
parents:
diff changeset
1708 Using @code{to-address} will actually work whether the group is foreign
Dave Love <fx@gnu.org>
parents:
diff changeset
1709 or not. Let's say there's a group on the server that is called
Dave Love <fx@gnu.org>
parents:
diff changeset
1710 @samp{fa.4ad-l}. This is a real newsgroup, but the server has gotten
Dave Love <fx@gnu.org>
parents:
diff changeset
1711 the articles from a mail-to-news gateway. Posting directly to this
Dave Love <fx@gnu.org>
parents:
diff changeset
1712 group is therefore impossible---you have to send mail to the mailing
Dave Love <fx@gnu.org>
parents:
diff changeset
1713 list address instead.
Dave Love <fx@gnu.org>
parents:
diff changeset
1714
Dave Love <fx@gnu.org>
parents:
diff changeset
1715 @item to-list
Dave Love <fx@gnu.org>
parents:
diff changeset
1716 @cindex to-list
Dave Love <fx@gnu.org>
parents:
diff changeset
1717 Address used when doing a @kbd{a} in that group.
Dave Love <fx@gnu.org>
parents:
diff changeset
1718
Dave Love <fx@gnu.org>
parents:
diff changeset
1719 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
1720 (to-list . "some@@where.com")
Dave Love <fx@gnu.org>
parents:
diff changeset
1721 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
1722
Dave Love <fx@gnu.org>
parents:
diff changeset
1723 It is totally ignored
Dave Love <fx@gnu.org>
parents:
diff changeset
1724 when doing a followup---except that if it is present in a news group,
Dave Love <fx@gnu.org>
parents:
diff changeset
1725 you'll get mail group semantics when doing @kbd{f}.
Dave Love <fx@gnu.org>
parents:
diff changeset
1726
Dave Love <fx@gnu.org>
parents:
diff changeset
1727 If you do an @kbd{a} command in a mail group and you have neither a
Dave Love <fx@gnu.org>
parents:
diff changeset
1728 @code{to-list} group parameter nor a @code{to-address} group parameter,
Dave Love <fx@gnu.org>
parents:
diff changeset
1729 then a @code{to-list} group parameter will be added automatically upon
Dave Love <fx@gnu.org>
parents:
diff changeset
1730 sending the message if @code{gnus-add-to-list} is set to @code{t}.
Dave Love <fx@gnu.org>
parents:
diff changeset
1731 @vindex gnus-add-to-list
Dave Love <fx@gnu.org>
parents:
diff changeset
1732
Dave Love <fx@gnu.org>
parents:
diff changeset
1733 If you do an @kbd{a} command in a mail group and you don't have a
Dave Love <fx@gnu.org>
parents:
diff changeset
1734 @code{to-list} group parameter, one will be added automatically upon
Dave Love <fx@gnu.org>
parents:
diff changeset
1735 sending the message.
Dave Love <fx@gnu.org>
parents:
diff changeset
1736
Dave Love <fx@gnu.org>
parents:
diff changeset
1737 @item visible
Dave Love <fx@gnu.org>
parents:
diff changeset
1738 @cindex visible
Dave Love <fx@gnu.org>
parents:
diff changeset
1739 If the group parameter list has the element @code{(visible . t)},
Dave Love <fx@gnu.org>
parents:
diff changeset
1740 that group will always be visible in the Group buffer, regardless
Dave Love <fx@gnu.org>
parents:
diff changeset
1741 of whether it has any unread articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
1742
Dave Love <fx@gnu.org>
parents:
diff changeset
1743 @item broken-reply-to
Dave Love <fx@gnu.org>
parents:
diff changeset
1744 @cindex broken-reply-to
Dave Love <fx@gnu.org>
parents:
diff changeset
1745 Elements like @code{(broken-reply-to . t)} signals that @code{Reply-To}
Dave Love <fx@gnu.org>
parents:
diff changeset
1746 headers in this group are to be ignored. This can be useful if you're
Dave Love <fx@gnu.org>
parents:
diff changeset
1747 reading a mailing list group where the listserv has inserted
Dave Love <fx@gnu.org>
parents:
diff changeset
1748 @code{Reply-To} headers that point back to the listserv itself. This is
Dave Love <fx@gnu.org>
parents:
diff changeset
1749 broken behavior. So there!
Dave Love <fx@gnu.org>
parents:
diff changeset
1750
Dave Love <fx@gnu.org>
parents:
diff changeset
1751 @item to-group
Dave Love <fx@gnu.org>
parents:
diff changeset
1752 @cindex to-group
Dave Love <fx@gnu.org>
parents:
diff changeset
1753 Elements like @code{(to-group . "some.group.name")} means that all
Dave Love <fx@gnu.org>
parents:
diff changeset
1754 posts in that group will be sent to @code{some.group.name}.
Dave Love <fx@gnu.org>
parents:
diff changeset
1755
Dave Love <fx@gnu.org>
parents:
diff changeset
1756 @item newsgroup
Dave Love <fx@gnu.org>
parents:
diff changeset
1757 @cindex newsgroup
Dave Love <fx@gnu.org>
parents:
diff changeset
1758 If you have @code{(newsgroup . t)} in the group parameter list, Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
1759 will treat all responses as if they were responses to news articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
1760 This can be useful if you have a mail group that's really a mirror of a
Dave Love <fx@gnu.org>
parents:
diff changeset
1761 news group.
Dave Love <fx@gnu.org>
parents:
diff changeset
1762
Dave Love <fx@gnu.org>
parents:
diff changeset
1763 @item gcc-self
Dave Love <fx@gnu.org>
parents:
diff changeset
1764 @cindex gcc-self
Dave Love <fx@gnu.org>
parents:
diff changeset
1765 If @code{(gcc-self . t)} is present in the group parameter list, newly
Dave Love <fx@gnu.org>
parents:
diff changeset
1766 composed messages will be @code{Gcc}'d to the current group. If
Dave Love <fx@gnu.org>
parents:
diff changeset
1767 @code{(gcc-self . none)} is present, no @code{Gcc:} header will be
Dave Love <fx@gnu.org>
parents:
diff changeset
1768 generated, if @code{(gcc-self . "string")} is present, this string will
Dave Love <fx@gnu.org>
parents:
diff changeset
1769 be inserted literally as a @code{gcc} header. This parameter takes
Dave Love <fx@gnu.org>
parents:
diff changeset
1770 precedence over any default @code{Gcc} rules as described later
Dave Love <fx@gnu.org>
parents:
diff changeset
1771 (@pxref{Archived Messages}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1772
Dave Love <fx@gnu.org>
parents:
diff changeset
1773 @item auto-expire
Dave Love <fx@gnu.org>
parents:
diff changeset
1774 @cindex auto-expire
Dave Love <fx@gnu.org>
parents:
diff changeset
1775 If the group parameter has an element that looks like @code{(auto-expire
Dave Love <fx@gnu.org>
parents:
diff changeset
1776 . t)}, all articles read will be marked as expirable. For an
Dave Love <fx@gnu.org>
parents:
diff changeset
1777 alternative approach, @pxref{Expiring Mail}.
Dave Love <fx@gnu.org>
parents:
diff changeset
1778
Dave Love <fx@gnu.org>
parents:
diff changeset
1779 @item total-expire
Dave Love <fx@gnu.org>
parents:
diff changeset
1780 @cindex total-expire
Dave Love <fx@gnu.org>
parents:
diff changeset
1781 If the group parameter has an element that looks like
Dave Love <fx@gnu.org>
parents:
diff changeset
1782 @code{(total-expire . t)}, all read articles will be put through the
Dave Love <fx@gnu.org>
parents:
diff changeset
1783 expiry process, even if they are not marked as expirable. Use with
Dave Love <fx@gnu.org>
parents:
diff changeset
1784 caution. Unread, ticked and dormant articles are not eligible for
Dave Love <fx@gnu.org>
parents:
diff changeset
1785 expiry.
Dave Love <fx@gnu.org>
parents:
diff changeset
1786
Dave Love <fx@gnu.org>
parents:
diff changeset
1787 @item expiry-wait
Dave Love <fx@gnu.org>
parents:
diff changeset
1788 @cindex expiry-wait
Dave Love <fx@gnu.org>
parents:
diff changeset
1789 @vindex nnmail-expiry-wait-function
Dave Love <fx@gnu.org>
parents:
diff changeset
1790 If the group parameter has an element that looks like @code{(expiry-wait
Dave Love <fx@gnu.org>
parents:
diff changeset
1791 . 10)}, this value will override any @code{nnmail-expiry-wait} and
Dave Love <fx@gnu.org>
parents:
diff changeset
1792 @code{nnmail-expiry-wait-function} when expiring expirable messages.
Dave Love <fx@gnu.org>
parents:
diff changeset
1793 The value can either be a number of days (not necessarily an integer) or
Dave Love <fx@gnu.org>
parents:
diff changeset
1794 the symbols @code{never} or @code{immediate}.
Dave Love <fx@gnu.org>
parents:
diff changeset
1795
Dave Love <fx@gnu.org>
parents:
diff changeset
1796 @item score-file
Dave Love <fx@gnu.org>
parents:
diff changeset
1797 @cindex score file group parameter
Dave Love <fx@gnu.org>
parents:
diff changeset
1798 Elements that look like @code{(score-file . "file")} will make
Dave Love <fx@gnu.org>
parents:
diff changeset
1799 @file{file} into the current score file for the group in question. All
Dave Love <fx@gnu.org>
parents:
diff changeset
1800 interactive score entries will be put into this file.
Dave Love <fx@gnu.org>
parents:
diff changeset
1801
Dave Love <fx@gnu.org>
parents:
diff changeset
1802 @item adapt-file
Dave Love <fx@gnu.org>
parents:
diff changeset
1803 @cindex adapt file group parameter
Dave Love <fx@gnu.org>
parents:
diff changeset
1804 Elements that look like @code{(adapt-file . "file")} will make
Dave Love <fx@gnu.org>
parents:
diff changeset
1805 @file{file} into the current adaptive file for the group in question.
Dave Love <fx@gnu.org>
parents:
diff changeset
1806 All adaptive score entries will be put into this file.
Dave Love <fx@gnu.org>
parents:
diff changeset
1807
Dave Love <fx@gnu.org>
parents:
diff changeset
1808 @item admin-address
Dave Love <fx@gnu.org>
parents:
diff changeset
1809 When unsubscribing from a mailing list you should never send the
Dave Love <fx@gnu.org>
parents:
diff changeset
1810 unsubscription notice to the mailing list itself. Instead, you'd send
Dave Love <fx@gnu.org>
parents:
diff changeset
1811 messages to the administrative address. This parameter allows you to
Dave Love <fx@gnu.org>
parents:
diff changeset
1812 put the admin address somewhere convenient.
Dave Love <fx@gnu.org>
parents:
diff changeset
1813
Dave Love <fx@gnu.org>
parents:
diff changeset
1814 @item display
Dave Love <fx@gnu.org>
parents:
diff changeset
1815 Elements that look like @code{(display . MODE)} say which articles to
Dave Love <fx@gnu.org>
parents:
diff changeset
1816 display on entering the group. Valid values are:
Dave Love <fx@gnu.org>
parents:
diff changeset
1817
Dave Love <fx@gnu.org>
parents:
diff changeset
1818 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
1819 @item all
Dave Love <fx@gnu.org>
parents:
diff changeset
1820 Display all articles, both read and unread.
Dave Love <fx@gnu.org>
parents:
diff changeset
1821
Dave Love <fx@gnu.org>
parents:
diff changeset
1822 @item default
Dave Love <fx@gnu.org>
parents:
diff changeset
1823 Display the default visible articles, which normally includes unread and
Dave Love <fx@gnu.org>
parents:
diff changeset
1824 ticked articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
1825 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
1826
Dave Love <fx@gnu.org>
parents:
diff changeset
1827 @item comment
Dave Love <fx@gnu.org>
parents:
diff changeset
1828 Elements that look like @code{(comment . "This is a comment")}
Dave Love <fx@gnu.org>
parents:
diff changeset
1829 are arbitrary comments on the group. They are currently ignored by
Dave Love <fx@gnu.org>
parents:
diff changeset
1830 Gnus, but provide a place for you to store information on particular
Dave Love <fx@gnu.org>
parents:
diff changeset
1831 groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
1832
26290
df10644e22b5 Fix complaints from makeinfo 4.0.
Dave Love <fx@gnu.org>
parents: 25829
diff changeset
1833 @item @code{(@var{variable} @var{form})}
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1834 You can use the group parameters to set variables local to the group you
Dave Love <fx@gnu.org>
parents:
diff changeset
1835 are entering. If you want to turn threading off in @samp{news.answers},
Dave Love <fx@gnu.org>
parents:
diff changeset
1836 you could put @code{(gnus-show-threads nil)} in the group parameters of
Dave Love <fx@gnu.org>
parents:
diff changeset
1837 that group. @code{gnus-show-threads} will be made into a local variable
Dave Love <fx@gnu.org>
parents:
diff changeset
1838 in the summary buffer you enter, and the form @code{nil} will be
Dave Love <fx@gnu.org>
parents:
diff changeset
1839 @code{eval}ed there.
Dave Love <fx@gnu.org>
parents:
diff changeset
1840
Dave Love <fx@gnu.org>
parents:
diff changeset
1841 This can also be used as a group-specific hook function, if you'd like.
Dave Love <fx@gnu.org>
parents:
diff changeset
1842 If you want to hear a beep when you enter a group, you could put
Dave Love <fx@gnu.org>
parents:
diff changeset
1843 something like @code{(dummy-variable (ding))} in the parameters of that
Dave Love <fx@gnu.org>
parents:
diff changeset
1844 group. @code{dummy-variable} will be set to the result of the
Dave Love <fx@gnu.org>
parents:
diff changeset
1845 @code{(ding)} form, but who cares?
Dave Love <fx@gnu.org>
parents:
diff changeset
1846
Dave Love <fx@gnu.org>
parents:
diff changeset
1847 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
1848
Dave Love <fx@gnu.org>
parents:
diff changeset
1849 Use the @kbd{G p} command to edit group parameters of a group. You
Dave Love <fx@gnu.org>
parents:
diff changeset
1850 might also be interested in reading about topic parameters (@pxref{Topic
Dave Love <fx@gnu.org>
parents:
diff changeset
1851 Parameters}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1852
Dave Love <fx@gnu.org>
parents:
diff changeset
1853
Dave Love <fx@gnu.org>
parents:
diff changeset
1854 @node Listing Groups
Dave Love <fx@gnu.org>
parents:
diff changeset
1855 @section Listing Groups
Dave Love <fx@gnu.org>
parents:
diff changeset
1856 @cindex group listing
Dave Love <fx@gnu.org>
parents:
diff changeset
1857
Dave Love <fx@gnu.org>
parents:
diff changeset
1858 These commands all list various slices of the groups available.
Dave Love <fx@gnu.org>
parents:
diff changeset
1859
Dave Love <fx@gnu.org>
parents:
diff changeset
1860 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
1861
Dave Love <fx@gnu.org>
parents:
diff changeset
1862 @item l
Dave Love <fx@gnu.org>
parents:
diff changeset
1863 @itemx A s
Dave Love <fx@gnu.org>
parents:
diff changeset
1864 @kindex A s (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1865 @kindex l (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1866 @findex gnus-group-list-groups
Dave Love <fx@gnu.org>
parents:
diff changeset
1867 List all groups that have unread articles
Dave Love <fx@gnu.org>
parents:
diff changeset
1868 (@code{gnus-group-list-groups}). If the numeric prefix is used, this
Dave Love <fx@gnu.org>
parents:
diff changeset
1869 command will list only groups of level ARG and lower. By default, it
Dave Love <fx@gnu.org>
parents:
diff changeset
1870 only lists groups of level five (i. e.,
Dave Love <fx@gnu.org>
parents:
diff changeset
1871 @code{gnus-group-default-list-level}) or lower (i.e., just subscribed
Dave Love <fx@gnu.org>
parents:
diff changeset
1872 groups).
Dave Love <fx@gnu.org>
parents:
diff changeset
1873
Dave Love <fx@gnu.org>
parents:
diff changeset
1874 @item L
Dave Love <fx@gnu.org>
parents:
diff changeset
1875 @itemx A u
Dave Love <fx@gnu.org>
parents:
diff changeset
1876 @kindex A u (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1877 @kindex L (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1878 @findex gnus-group-list-all-groups
Dave Love <fx@gnu.org>
parents:
diff changeset
1879 List all groups, whether they have unread articles or not
Dave Love <fx@gnu.org>
parents:
diff changeset
1880 (@code{gnus-group-list-all-groups}). If the numeric prefix is used,
Dave Love <fx@gnu.org>
parents:
diff changeset
1881 this command will list only groups of level ARG and lower. By default,
Dave Love <fx@gnu.org>
parents:
diff changeset
1882 it lists groups of level seven or lower (i.e., just subscribed and
Dave Love <fx@gnu.org>
parents:
diff changeset
1883 unsubscribed groups).
Dave Love <fx@gnu.org>
parents:
diff changeset
1884
Dave Love <fx@gnu.org>
parents:
diff changeset
1885 @item A l
Dave Love <fx@gnu.org>
parents:
diff changeset
1886 @kindex A l (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1887 @findex gnus-group-list-level
Dave Love <fx@gnu.org>
parents:
diff changeset
1888 List all unread groups on a specific level
Dave Love <fx@gnu.org>
parents:
diff changeset
1889 (@code{gnus-group-list-level}). If given a prefix, also list the groups
Dave Love <fx@gnu.org>
parents:
diff changeset
1890 with no unread articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
1891
Dave Love <fx@gnu.org>
parents:
diff changeset
1892 @item A k
Dave Love <fx@gnu.org>
parents:
diff changeset
1893 @kindex A k (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1894 @findex gnus-group-list-killed
Dave Love <fx@gnu.org>
parents:
diff changeset
1895 List all killed groups (@code{gnus-group-list-killed}). If given a
Dave Love <fx@gnu.org>
parents:
diff changeset
1896 prefix argument, really list all groups that are available, but aren't
Dave Love <fx@gnu.org>
parents:
diff changeset
1897 currently (un)subscribed. This could entail reading the active file
Dave Love <fx@gnu.org>
parents:
diff changeset
1898 from the server.
Dave Love <fx@gnu.org>
parents:
diff changeset
1899
Dave Love <fx@gnu.org>
parents:
diff changeset
1900 @item A z
Dave Love <fx@gnu.org>
parents:
diff changeset
1901 @kindex A z (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1902 @findex gnus-group-list-zombies
Dave Love <fx@gnu.org>
parents:
diff changeset
1903 List all zombie groups (@code{gnus-group-list-zombies}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1904
Dave Love <fx@gnu.org>
parents:
diff changeset
1905 @item A m
Dave Love <fx@gnu.org>
parents:
diff changeset
1906 @kindex A m (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1907 @findex gnus-group-list-matching
Dave Love <fx@gnu.org>
parents:
diff changeset
1908 List all unread, subscribed groups with names that match a regexp
Dave Love <fx@gnu.org>
parents:
diff changeset
1909 (@code{gnus-group-list-matching}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1910
Dave Love <fx@gnu.org>
parents:
diff changeset
1911 @item A M
Dave Love <fx@gnu.org>
parents:
diff changeset
1912 @kindex A M (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1913 @findex gnus-group-list-all-matching
Dave Love <fx@gnu.org>
parents:
diff changeset
1914 List groups that match a regexp (@code{gnus-group-list-all-matching}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1915
Dave Love <fx@gnu.org>
parents:
diff changeset
1916 @item A A
Dave Love <fx@gnu.org>
parents:
diff changeset
1917 @kindex A A (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1918 @findex gnus-group-list-active
Dave Love <fx@gnu.org>
parents:
diff changeset
1919 List absolutely all groups in the active file(s) of the
Dave Love <fx@gnu.org>
parents:
diff changeset
1920 server(s) you are connected to (@code{gnus-group-list-active}). This
Dave Love <fx@gnu.org>
parents:
diff changeset
1921 might very well take quite a while. It might actually be a better idea
Dave Love <fx@gnu.org>
parents:
diff changeset
1922 to do a @kbd{A M} to list all matching, and just give @samp{.} as the
Dave Love <fx@gnu.org>
parents:
diff changeset
1923 thing to match on. Also note that this command may list groups that
Dave Love <fx@gnu.org>
parents:
diff changeset
1924 don't exist (yet)---these will be listed as if they were killed groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
1925 Take the output with some grains of salt.
Dave Love <fx@gnu.org>
parents:
diff changeset
1926
Dave Love <fx@gnu.org>
parents:
diff changeset
1927 @item A a
Dave Love <fx@gnu.org>
parents:
diff changeset
1928 @kindex A a (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1929 @findex gnus-group-apropos
Dave Love <fx@gnu.org>
parents:
diff changeset
1930 List all groups that have names that match a regexp
Dave Love <fx@gnu.org>
parents:
diff changeset
1931 (@code{gnus-group-apropos}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1932
Dave Love <fx@gnu.org>
parents:
diff changeset
1933 @item A d
Dave Love <fx@gnu.org>
parents:
diff changeset
1934 @kindex A d (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1935 @findex gnus-group-description-apropos
Dave Love <fx@gnu.org>
parents:
diff changeset
1936 List all groups that have names or descriptions that match a regexp
Dave Love <fx@gnu.org>
parents:
diff changeset
1937 (@code{gnus-group-description-apropos}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1938
Dave Love <fx@gnu.org>
parents:
diff changeset
1939 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
1940
Dave Love <fx@gnu.org>
parents:
diff changeset
1941 @vindex gnus-permanently-visible-groups
Dave Love <fx@gnu.org>
parents:
diff changeset
1942 @cindex visible group parameter
Dave Love <fx@gnu.org>
parents:
diff changeset
1943 Groups that match the @code{gnus-permanently-visible-groups} regexp will
Dave Love <fx@gnu.org>
parents:
diff changeset
1944 always be shown, whether they have unread articles or not. You can also
Dave Love <fx@gnu.org>
parents:
diff changeset
1945 add the @code{visible} element to the group parameters in question to
Dave Love <fx@gnu.org>
parents:
diff changeset
1946 get the same effect.
Dave Love <fx@gnu.org>
parents:
diff changeset
1947
Dave Love <fx@gnu.org>
parents:
diff changeset
1948 @vindex gnus-list-groups-with-ticked-articles
Dave Love <fx@gnu.org>
parents:
diff changeset
1949 Groups that have just ticked articles in it are normally listed in the
Dave Love <fx@gnu.org>
parents:
diff changeset
1950 group buffer. If @code{gnus-list-groups-with-ticked-articles} is
Dave Love <fx@gnu.org>
parents:
diff changeset
1951 @code{nil}, these groups will be treated just like totally empty
Dave Love <fx@gnu.org>
parents:
diff changeset
1952 groups. It is @code{t} by default.
Dave Love <fx@gnu.org>
parents:
diff changeset
1953
Dave Love <fx@gnu.org>
parents:
diff changeset
1954
Dave Love <fx@gnu.org>
parents:
diff changeset
1955 @node Sorting Groups
Dave Love <fx@gnu.org>
parents:
diff changeset
1956 @section Sorting Groups
Dave Love <fx@gnu.org>
parents:
diff changeset
1957 @cindex sorting groups
Dave Love <fx@gnu.org>
parents:
diff changeset
1958
Dave Love <fx@gnu.org>
parents:
diff changeset
1959 @kindex C-c C-s (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
1960 @findex gnus-group-sort-groups
Dave Love <fx@gnu.org>
parents:
diff changeset
1961 @vindex gnus-group-sort-function
Dave Love <fx@gnu.org>
parents:
diff changeset
1962 The @kbd{C-c C-s} (@code{gnus-group-sort-groups}) command sorts the
Dave Love <fx@gnu.org>
parents:
diff changeset
1963 group buffer according to the function(s) given by the
Dave Love <fx@gnu.org>
parents:
diff changeset
1964 @code{gnus-group-sort-function} variable. Available sorting functions
Dave Love <fx@gnu.org>
parents:
diff changeset
1965 include:
Dave Love <fx@gnu.org>
parents:
diff changeset
1966
Dave Love <fx@gnu.org>
parents:
diff changeset
1967 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
1968
Dave Love <fx@gnu.org>
parents:
diff changeset
1969 @item gnus-group-sort-by-alphabet
Dave Love <fx@gnu.org>
parents:
diff changeset
1970 @findex gnus-group-sort-by-alphabet
Dave Love <fx@gnu.org>
parents:
diff changeset
1971 Sort the group names alphabetically. This is the default.
Dave Love <fx@gnu.org>
parents:
diff changeset
1972
Dave Love <fx@gnu.org>
parents:
diff changeset
1973 @item gnus-group-sort-by-real-name
Dave Love <fx@gnu.org>
parents:
diff changeset
1974 @findex gnus-group-sort-by-real-name
Dave Love <fx@gnu.org>
parents:
diff changeset
1975 Sort the group alphabetically on the real (unprefixed) group names.
Dave Love <fx@gnu.org>
parents:
diff changeset
1976
Dave Love <fx@gnu.org>
parents:
diff changeset
1977 @item gnus-group-sort-by-level
Dave Love <fx@gnu.org>
parents:
diff changeset
1978 @findex gnus-group-sort-by-level
Dave Love <fx@gnu.org>
parents:
diff changeset
1979 Sort by group level.
Dave Love <fx@gnu.org>
parents:
diff changeset
1980
Dave Love <fx@gnu.org>
parents:
diff changeset
1981 @item gnus-group-sort-by-score
Dave Love <fx@gnu.org>
parents:
diff changeset
1982 @findex gnus-group-sort-by-score
Dave Love <fx@gnu.org>
parents:
diff changeset
1983 Sort by group score. @xref{Group Score}.
Dave Love <fx@gnu.org>
parents:
diff changeset
1984
Dave Love <fx@gnu.org>
parents:
diff changeset
1985 @item gnus-group-sort-by-rank
Dave Love <fx@gnu.org>
parents:
diff changeset
1986 @findex gnus-group-sort-by-rank
Dave Love <fx@gnu.org>
parents:
diff changeset
1987 Sort by group score and then the group level. The level and the score
Dave Love <fx@gnu.org>
parents:
diff changeset
1988 are, when taken together, the group's @dfn{rank}. @xref{Group Score}.
Dave Love <fx@gnu.org>
parents:
diff changeset
1989
Dave Love <fx@gnu.org>
parents:
diff changeset
1990 @item gnus-group-sort-by-unread
Dave Love <fx@gnu.org>
parents:
diff changeset
1991 @findex gnus-group-sort-by-unread
Dave Love <fx@gnu.org>
parents:
diff changeset
1992 Sort by number of unread articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
1993
Dave Love <fx@gnu.org>
parents:
diff changeset
1994 @item gnus-group-sort-by-method
Dave Love <fx@gnu.org>
parents:
diff changeset
1995 @findex gnus-group-sort-by-method
Dave Love <fx@gnu.org>
parents:
diff changeset
1996 Sort alphabetically on the select method.
Dave Love <fx@gnu.org>
parents:
diff changeset
1997
Dave Love <fx@gnu.org>
parents:
diff changeset
1998
Dave Love <fx@gnu.org>
parents:
diff changeset
1999 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
2000
Dave Love <fx@gnu.org>
parents:
diff changeset
2001 @code{gnus-group-sort-function} can also be a list of sorting
Dave Love <fx@gnu.org>
parents:
diff changeset
2002 functions. In that case, the most significant sort key function must be
Dave Love <fx@gnu.org>
parents:
diff changeset
2003 the last one.
Dave Love <fx@gnu.org>
parents:
diff changeset
2004
Dave Love <fx@gnu.org>
parents:
diff changeset
2005
Dave Love <fx@gnu.org>
parents:
diff changeset
2006 There are also a number of commands for sorting directly according to
Dave Love <fx@gnu.org>
parents:
diff changeset
2007 some sorting criteria:
Dave Love <fx@gnu.org>
parents:
diff changeset
2008
Dave Love <fx@gnu.org>
parents:
diff changeset
2009 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
2010 @item G S a
Dave Love <fx@gnu.org>
parents:
diff changeset
2011 @kindex G S a (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
2012 @findex gnus-group-sort-groups-by-alphabet
Dave Love <fx@gnu.org>
parents:
diff changeset
2013 Sort the group buffer alphabetically by group name
Dave Love <fx@gnu.org>
parents:
diff changeset
2014 (@code{gnus-group-sort-groups-by-alphabet}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2015
Dave Love <fx@gnu.org>
parents:
diff changeset
2016 @item G S u
Dave Love <fx@gnu.org>
parents:
diff changeset
2017 @kindex G S u (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
2018 @findex gnus-group-sort-groups-by-unread
Dave Love <fx@gnu.org>
parents:
diff changeset
2019 Sort the group buffer by the number of unread articles
Dave Love <fx@gnu.org>
parents:
diff changeset
2020 (@code{gnus-group-sort-groups-by-unread}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2021
Dave Love <fx@gnu.org>
parents:
diff changeset
2022 @item G S l
Dave Love <fx@gnu.org>
parents:
diff changeset
2023 @kindex G S l (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
2024 @findex gnus-group-sort-groups-by-level
Dave Love <fx@gnu.org>
parents:
diff changeset
2025 Sort the group buffer by group level
Dave Love <fx@gnu.org>
parents:
diff changeset
2026 (@code{gnus-group-sort-groups-by-level}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2027
Dave Love <fx@gnu.org>
parents:
diff changeset
2028 @item G S v
Dave Love <fx@gnu.org>
parents:
diff changeset
2029 @kindex G S v (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
2030 @findex gnus-group-sort-groups-by-score
Dave Love <fx@gnu.org>
parents:
diff changeset
2031 Sort the group buffer by group score
Dave Love <fx@gnu.org>
parents:
diff changeset
2032 (@code{gnus-group-sort-groups-by-score}). @xref{Group Score}.
Dave Love <fx@gnu.org>
parents:
diff changeset
2033
Dave Love <fx@gnu.org>
parents:
diff changeset
2034 @item G S r
Dave Love <fx@gnu.org>
parents:
diff changeset
2035 @kindex G S r (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
2036 @findex gnus-group-sort-groups-by-rank
Dave Love <fx@gnu.org>
parents:
diff changeset
2037 Sort the group buffer by group rank
Dave Love <fx@gnu.org>
parents:
diff changeset
2038 (@code{gnus-group-sort-groups-by-rank}). @xref{Group Score}.
Dave Love <fx@gnu.org>
parents:
diff changeset
2039
Dave Love <fx@gnu.org>
parents:
diff changeset
2040 @item G S m
Dave Love <fx@gnu.org>
parents:
diff changeset
2041 @kindex G S m (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
2042 @findex gnus-group-sort-groups-by-method
Dave Love <fx@gnu.org>
parents:
diff changeset
2043 Sort the group buffer alphabetically by backend name
Dave Love <fx@gnu.org>
parents:
diff changeset
2044 (@code{gnus-group-sort-groups-by-method}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2045
Dave Love <fx@gnu.org>
parents:
diff changeset
2046 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
2047
Dave Love <fx@gnu.org>
parents:
diff changeset
2048 When given a prefix, all these commands will sort in reverse order.
Dave Love <fx@gnu.org>
parents:
diff changeset
2049
Dave Love <fx@gnu.org>
parents:
diff changeset
2050 You can also sort a subset of the groups:
Dave Love <fx@gnu.org>
parents:
diff changeset
2051
Dave Love <fx@gnu.org>
parents:
diff changeset
2052 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
2053 @item G P a
Dave Love <fx@gnu.org>
parents:
diff changeset
2054 @kindex G P a (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
2055 @findex gnus-group-sort-selected-groups-by-alphabet
Dave Love <fx@gnu.org>
parents:
diff changeset
2056 Sort the process/prefixed groups in the group buffer alphabetically by
Dave Love <fx@gnu.org>
parents:
diff changeset
2057 group name (@code{gnus-group-sort-selected-groups-by-alphabet}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2058
Dave Love <fx@gnu.org>
parents:
diff changeset
2059 @item G P u
Dave Love <fx@gnu.org>
parents:
diff changeset
2060 @kindex G P u (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
2061 @findex gnus-group-sort-selected-groups-by-unread
Dave Love <fx@gnu.org>
parents:
diff changeset
2062 Sort the process/prefixed groups in the group buffer by the number of
Dave Love <fx@gnu.org>
parents:
diff changeset
2063 unread articles (@code{gnus-group-sort-selected-groups-by-unread}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2064
Dave Love <fx@gnu.org>
parents:
diff changeset
2065 @item G P l
Dave Love <fx@gnu.org>
parents:
diff changeset
2066 @kindex G P l (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
2067 @findex gnus-group-sort-selected-groups-by-level
Dave Love <fx@gnu.org>
parents:
diff changeset
2068 Sort the process/prefixed groups in the group buffer by group level
Dave Love <fx@gnu.org>
parents:
diff changeset
2069 (@code{gnus-group-sort-selected-groups-by-level}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2070
Dave Love <fx@gnu.org>
parents:
diff changeset
2071 @item G P v
Dave Love <fx@gnu.org>
parents:
diff changeset
2072 @kindex G P v (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
2073 @findex gnus-group-sort-selected-groups-by-score
Dave Love <fx@gnu.org>
parents:
diff changeset
2074 Sort the process/prefixed groups in the group buffer by group score
Dave Love <fx@gnu.org>
parents:
diff changeset
2075 (@code{gnus-group-sort-selected-groups-by-score}). @xref{Group Score}.
Dave Love <fx@gnu.org>
parents:
diff changeset
2076
Dave Love <fx@gnu.org>
parents:
diff changeset
2077 @item G P r
Dave Love <fx@gnu.org>
parents:
diff changeset
2078 @kindex G P r (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
2079 @findex gnus-group-sort-selected-groups-by-rank
Dave Love <fx@gnu.org>
parents:
diff changeset
2080 Sort the process/prefixed groups in the group buffer by group rank
Dave Love <fx@gnu.org>
parents:
diff changeset
2081 (@code{gnus-group-sort-selected-groups-by-rank}). @xref{Group Score}.
Dave Love <fx@gnu.org>
parents:
diff changeset
2082
Dave Love <fx@gnu.org>
parents:
diff changeset
2083 @item G P m
Dave Love <fx@gnu.org>
parents:
diff changeset
2084 @kindex G P m (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
2085 @findex gnus-group-sort-selected-groups-by-method
Dave Love <fx@gnu.org>
parents:
diff changeset
2086 Sort the process/prefixed groups in the group buffer alphabetically by
Dave Love <fx@gnu.org>
parents:
diff changeset
2087 backend name (@code{gnus-group-sort-selected-groups-by-method}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2088
Dave Love <fx@gnu.org>
parents:
diff changeset
2089 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
2090
Dave Love <fx@gnu.org>
parents:
diff changeset
2091
Dave Love <fx@gnu.org>
parents:
diff changeset
2092
Dave Love <fx@gnu.org>
parents:
diff changeset
2093 @node Group Maintenance
Dave Love <fx@gnu.org>
parents:
diff changeset
2094 @section Group Maintenance
Dave Love <fx@gnu.org>
parents:
diff changeset
2095 @cindex bogus groups
Dave Love <fx@gnu.org>
parents:
diff changeset
2096
Dave Love <fx@gnu.org>
parents:
diff changeset
2097 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
2098 @item b
Dave Love <fx@gnu.org>
parents:
diff changeset
2099 @kindex b (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
2100 @findex gnus-group-check-bogus-groups
Dave Love <fx@gnu.org>
parents:
diff changeset
2101 Find bogus groups and delete them
Dave Love <fx@gnu.org>
parents:
diff changeset
2102 (@code{gnus-group-check-bogus-groups}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2103
Dave Love <fx@gnu.org>
parents:
diff changeset
2104 @item F
Dave Love <fx@gnu.org>
parents:
diff changeset
2105 @kindex F (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
2106 @findex gnus-group-find-new-groups
Dave Love <fx@gnu.org>
parents:
diff changeset
2107 Find new groups and process them (@code{gnus-group-find-new-groups}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2108 With 1 @kbd{C-u}, use the @code{ask-server} method to query the server
Dave Love <fx@gnu.org>
parents:
diff changeset
2109 for new groups. With 2 @kbd{C-u}'s, use most complete method possible
Dave Love <fx@gnu.org>
parents:
diff changeset
2110 to query the server for new groups, and subscribe the new groups as
Dave Love <fx@gnu.org>
parents:
diff changeset
2111 zombies.
Dave Love <fx@gnu.org>
parents:
diff changeset
2112
Dave Love <fx@gnu.org>
parents:
diff changeset
2113 @item C-c C-x
Dave Love <fx@gnu.org>
parents:
diff changeset
2114 @kindex C-c C-x (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
2115 @findex gnus-group-expire-articles
Dave Love <fx@gnu.org>
parents:
diff changeset
2116 Run all expirable articles in the current group through the expiry
Dave Love <fx@gnu.org>
parents:
diff changeset
2117 process (if any) (@code{gnus-group-expire-articles}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2118
Dave Love <fx@gnu.org>
parents:
diff changeset
2119 @item C-c M-C-x
Dave Love <fx@gnu.org>
parents:
diff changeset
2120 @kindex C-c M-C-x (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
2121 @findex gnus-group-expire-all-groups
Dave Love <fx@gnu.org>
parents:
diff changeset
2122 Run all articles in all groups through the expiry process
Dave Love <fx@gnu.org>
parents:
diff changeset
2123 (@code{gnus-group-expire-all-groups}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2124
Dave Love <fx@gnu.org>
parents:
diff changeset
2125 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
2126
Dave Love <fx@gnu.org>
parents:
diff changeset
2127
Dave Love <fx@gnu.org>
parents:
diff changeset
2128 @node Browse Foreign Server
Dave Love <fx@gnu.org>
parents:
diff changeset
2129 @section Browse Foreign Server
Dave Love <fx@gnu.org>
parents:
diff changeset
2130 @cindex foreign servers
Dave Love <fx@gnu.org>
parents:
diff changeset
2131 @cindex browsing servers
Dave Love <fx@gnu.org>
parents:
diff changeset
2132
Dave Love <fx@gnu.org>
parents:
diff changeset
2133 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
2134 @item B
Dave Love <fx@gnu.org>
parents:
diff changeset
2135 @kindex B (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
2136 @findex gnus-group-browse-foreign-server
Dave Love <fx@gnu.org>
parents:
diff changeset
2137 You will be queried for a select method and a server name. Gnus will
Dave Love <fx@gnu.org>
parents:
diff changeset
2138 then attempt to contact this server and let you browse the groups there
Dave Love <fx@gnu.org>
parents:
diff changeset
2139 (@code{gnus-group-browse-foreign-server}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2140 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
2141
Dave Love <fx@gnu.org>
parents:
diff changeset
2142 @findex gnus-browse-mode
Dave Love <fx@gnu.org>
parents:
diff changeset
2143 A new buffer with a list of available groups will appear. This buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
2144 will use the @code{gnus-browse-mode}. This buffer looks a bit (well,
Dave Love <fx@gnu.org>
parents:
diff changeset
2145 a lot) like a normal group buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
2146
Dave Love <fx@gnu.org>
parents:
diff changeset
2147 Here's a list of keystrokes available in the browse mode:
Dave Love <fx@gnu.org>
parents:
diff changeset
2148
Dave Love <fx@gnu.org>
parents:
diff changeset
2149 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
2150 @item n
Dave Love <fx@gnu.org>
parents:
diff changeset
2151 @kindex n (Browse)
Dave Love <fx@gnu.org>
parents:
diff changeset
2152 @findex gnus-group-next-group
Dave Love <fx@gnu.org>
parents:
diff changeset
2153 Go to the next group (@code{gnus-group-next-group}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2154
Dave Love <fx@gnu.org>
parents:
diff changeset
2155 @item p
Dave Love <fx@gnu.org>
parents:
diff changeset
2156 @kindex p (Browse)
Dave Love <fx@gnu.org>
parents:
diff changeset
2157 @findex gnus-group-prev-group
Dave Love <fx@gnu.org>
parents:
diff changeset
2158 Go to the previous group (@code{gnus-group-prev-group}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2159
Dave Love <fx@gnu.org>
parents:
diff changeset
2160 @item SPACE
Dave Love <fx@gnu.org>
parents:
diff changeset
2161 @kindex SPACE (Browse)
Dave Love <fx@gnu.org>
parents:
diff changeset
2162 @findex gnus-browse-read-group
Dave Love <fx@gnu.org>
parents:
diff changeset
2163 Enter the current group and display the first article
Dave Love <fx@gnu.org>
parents:
diff changeset
2164 (@code{gnus-browse-read-group}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2165
Dave Love <fx@gnu.org>
parents:
diff changeset
2166 @item RET
Dave Love <fx@gnu.org>
parents:
diff changeset
2167 @kindex RET (Browse)
Dave Love <fx@gnu.org>
parents:
diff changeset
2168 @findex gnus-browse-select-group
Dave Love <fx@gnu.org>
parents:
diff changeset
2169 Enter the current group (@code{gnus-browse-select-group}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2170
Dave Love <fx@gnu.org>
parents:
diff changeset
2171 @item u
Dave Love <fx@gnu.org>
parents:
diff changeset
2172 @kindex u (Browse)
Dave Love <fx@gnu.org>
parents:
diff changeset
2173 @findex gnus-browse-unsubscribe-current-group
Dave Love <fx@gnu.org>
parents:
diff changeset
2174 Unsubscribe to the current group, or, as will be the case here,
Dave Love <fx@gnu.org>
parents:
diff changeset
2175 subscribe to it (@code{gnus-browse-unsubscribe-current-group}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2176
Dave Love <fx@gnu.org>
parents:
diff changeset
2177 @item l
Dave Love <fx@gnu.org>
parents:
diff changeset
2178 @itemx q
Dave Love <fx@gnu.org>
parents:
diff changeset
2179 @kindex q (Browse)
Dave Love <fx@gnu.org>
parents:
diff changeset
2180 @kindex l (Browse)
Dave Love <fx@gnu.org>
parents:
diff changeset
2181 @findex gnus-browse-exit
Dave Love <fx@gnu.org>
parents:
diff changeset
2182 Exit browse mode (@code{gnus-browse-exit}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2183
Dave Love <fx@gnu.org>
parents:
diff changeset
2184 @item ?
Dave Love <fx@gnu.org>
parents:
diff changeset
2185 @kindex ? (Browse)
Dave Love <fx@gnu.org>
parents:
diff changeset
2186 @findex gnus-browse-describe-briefly
Dave Love <fx@gnu.org>
parents:
diff changeset
2187 Describe browse mode briefly (well, there's not much to describe, is
Dave Love <fx@gnu.org>
parents:
diff changeset
2188 there) (@code{gnus-browse-describe-briefly}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2189 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
2190
Dave Love <fx@gnu.org>
parents:
diff changeset
2191
Dave Love <fx@gnu.org>
parents:
diff changeset
2192 @node Exiting Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
2193 @section Exiting Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
2194 @cindex exiting Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
2195
Dave Love <fx@gnu.org>
parents:
diff changeset
2196 Yes, Gnus is ex(c)iting.
Dave Love <fx@gnu.org>
parents:
diff changeset
2197
Dave Love <fx@gnu.org>
parents:
diff changeset
2198 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
2199 @item z
Dave Love <fx@gnu.org>
parents:
diff changeset
2200 @kindex z (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
2201 @findex gnus-group-suspend
Dave Love <fx@gnu.org>
parents:
diff changeset
2202 Suspend Gnus (@code{gnus-group-suspend}). This doesn't really exit Gnus,
Dave Love <fx@gnu.org>
parents:
diff changeset
2203 but it kills all buffers except the Group buffer. I'm not sure why this
Dave Love <fx@gnu.org>
parents:
diff changeset
2204 is a gain, but then who am I to judge?
Dave Love <fx@gnu.org>
parents:
diff changeset
2205
Dave Love <fx@gnu.org>
parents:
diff changeset
2206 @item q
Dave Love <fx@gnu.org>
parents:
diff changeset
2207 @kindex q (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
2208 @findex gnus-group-exit
Dave Love <fx@gnu.org>
parents:
diff changeset
2209 @c @icon{gnus-group-exit}
Dave Love <fx@gnu.org>
parents:
diff changeset
2210 Quit Gnus (@code{gnus-group-exit}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2211
Dave Love <fx@gnu.org>
parents:
diff changeset
2212 @item Q
Dave Love <fx@gnu.org>
parents:
diff changeset
2213 @kindex Q (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
2214 @findex gnus-group-quit
Dave Love <fx@gnu.org>
parents:
diff changeset
2215 Quit Gnus without saving the @file{.newsrc} files (@code{gnus-group-quit}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2216 The dribble file will be saved, though (@pxref{Auto Save}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2217 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
2218
Dave Love <fx@gnu.org>
parents:
diff changeset
2219 @vindex gnus-exit-gnus-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
2220 @vindex gnus-suspend-gnus-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
2221 @code{gnus-suspend-gnus-hook} is called when you suspend Gnus and
Dave Love <fx@gnu.org>
parents:
diff changeset
2222 @code{gnus-exit-gnus-hook} is called when you quit Gnus, while
Dave Love <fx@gnu.org>
parents:
diff changeset
2223 @code{gnus-after-exiting-gnus-hook} is called as the final item when
Dave Love <fx@gnu.org>
parents:
diff changeset
2224 exiting Gnus.
Dave Love <fx@gnu.org>
parents:
diff changeset
2225
Dave Love <fx@gnu.org>
parents:
diff changeset
2226 @findex gnus-unload
Dave Love <fx@gnu.org>
parents:
diff changeset
2227 @cindex unloading
Dave Love <fx@gnu.org>
parents:
diff changeset
2228 If you wish to completely unload Gnus and all its adherents, you can use
Dave Love <fx@gnu.org>
parents:
diff changeset
2229 the @code{gnus-unload} command. This command is also very handy when
Dave Love <fx@gnu.org>
parents:
diff changeset
2230 trying to customize meta-variables.
Dave Love <fx@gnu.org>
parents:
diff changeset
2231
Dave Love <fx@gnu.org>
parents:
diff changeset
2232 Note:
Dave Love <fx@gnu.org>
parents:
diff changeset
2233
Dave Love <fx@gnu.org>
parents:
diff changeset
2234 @quotation
Dave Love <fx@gnu.org>
parents:
diff changeset
2235 Miss Lisa Cannifax, while sitting in English class, felt her feet go
Dave Love <fx@gnu.org>
parents:
diff changeset
2236 numbly heavy and herself fall into a hazy trance as the boy sitting
Dave Love <fx@gnu.org>
parents:
diff changeset
2237 behind her drew repeated lines with his pencil across the back of her
Dave Love <fx@gnu.org>
parents:
diff changeset
2238 plastic chair.
Dave Love <fx@gnu.org>
parents:
diff changeset
2239 @end quotation
Dave Love <fx@gnu.org>
parents:
diff changeset
2240
Dave Love <fx@gnu.org>
parents:
diff changeset
2241
Dave Love <fx@gnu.org>
parents:
diff changeset
2242 @node Group Topics
Dave Love <fx@gnu.org>
parents:
diff changeset
2243 @section Group Topics
Dave Love <fx@gnu.org>
parents:
diff changeset
2244 @cindex topics
Dave Love <fx@gnu.org>
parents:
diff changeset
2245
Dave Love <fx@gnu.org>
parents:
diff changeset
2246 If you read lots and lots of groups, it might be convenient to group
Dave Love <fx@gnu.org>
parents:
diff changeset
2247 them hierarchically according to topics. You put your Emacs groups over
Dave Love <fx@gnu.org>
parents:
diff changeset
2248 here, your sex groups over there, and the rest (what, two groups or so?)
Dave Love <fx@gnu.org>
parents:
diff changeset
2249 you put in some misc section that you never bother with anyway. You can
Dave Love <fx@gnu.org>
parents:
diff changeset
2250 even group the Emacs sex groups as a sub-topic to either the Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
2251 groups or the sex groups---or both! Go wild!
Dave Love <fx@gnu.org>
parents:
diff changeset
2252
Dave Love <fx@gnu.org>
parents:
diff changeset
2253 Here's an example:
Dave Love <fx@gnu.org>
parents:
diff changeset
2254
Dave Love <fx@gnu.org>
parents:
diff changeset
2255 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
2256 Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
2257 Emacs -- I wuw it!
Dave Love <fx@gnu.org>
parents:
diff changeset
2258 3: comp.emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
2259 2: alt.religion.emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
2260 Naughty Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
2261 452: alt.sex.emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
2262 0: comp.talk.emacs.recovery
Dave Love <fx@gnu.org>
parents:
diff changeset
2263 Misc
Dave Love <fx@gnu.org>
parents:
diff changeset
2264 8: comp.binaries.fractals
Dave Love <fx@gnu.org>
parents:
diff changeset
2265 13: comp.sources.unix
Dave Love <fx@gnu.org>
parents:
diff changeset
2266 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
2267
Dave Love <fx@gnu.org>
parents:
diff changeset
2268 @findex gnus-topic-mode
Dave Love <fx@gnu.org>
parents:
diff changeset
2269 @kindex t (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
2270 To get this @emph{fab} functionality you simply turn on (ooh!) the
Dave Love <fx@gnu.org>
parents:
diff changeset
2271 @code{gnus-topic} minor mode---type @kbd{t} in the group buffer. (This
Dave Love <fx@gnu.org>
parents:
diff changeset
2272 is a toggling command.)
Dave Love <fx@gnu.org>
parents:
diff changeset
2273
Dave Love <fx@gnu.org>
parents:
diff changeset
2274 Go ahead, just try it. I'll still be here when you get back. La de
Dave Love <fx@gnu.org>
parents:
diff changeset
2275 dum... Nice tune, that... la la la... What, you're back? Yes, and now
Dave Love <fx@gnu.org>
parents:
diff changeset
2276 press @kbd{l}. There. All your groups are now listed under
Dave Love <fx@gnu.org>
parents:
diff changeset
2277 @samp{misc}. Doesn't that make you feel all warm and fuzzy? Hot and
Dave Love <fx@gnu.org>
parents:
diff changeset
2278 bothered?
Dave Love <fx@gnu.org>
parents:
diff changeset
2279
Dave Love <fx@gnu.org>
parents:
diff changeset
2280 If you want this permanently enabled, you should add that minor mode to
Dave Love <fx@gnu.org>
parents:
diff changeset
2281 the hook for the group mode:
Dave Love <fx@gnu.org>
parents:
diff changeset
2282
Dave Love <fx@gnu.org>
parents:
diff changeset
2283 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2284 (add-hook 'gnus-group-mode-hook 'gnus-topic-mode)
Dave Love <fx@gnu.org>
parents:
diff changeset
2285 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2286
Dave Love <fx@gnu.org>
parents:
diff changeset
2287 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
2288 * Topic Variables:: How to customize the topics the Lisp Way.
Dave Love <fx@gnu.org>
parents:
diff changeset
2289 * Topic Commands:: Interactive E-Z commands.
Dave Love <fx@gnu.org>
parents:
diff changeset
2290 * Topic Sorting:: Sorting each topic individually.
Dave Love <fx@gnu.org>
parents:
diff changeset
2291 * Topic Topology:: A map of the world.
Dave Love <fx@gnu.org>
parents:
diff changeset
2292 * Topic Parameters:: Parameters that apply to all groups in a topic.
Dave Love <fx@gnu.org>
parents:
diff changeset
2293 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
2294
Dave Love <fx@gnu.org>
parents:
diff changeset
2295
Dave Love <fx@gnu.org>
parents:
diff changeset
2296 @node Topic Variables
Dave Love <fx@gnu.org>
parents:
diff changeset
2297 @subsection Topic Variables
Dave Love <fx@gnu.org>
parents:
diff changeset
2298 @cindex topic variables
Dave Love <fx@gnu.org>
parents:
diff changeset
2299
Dave Love <fx@gnu.org>
parents:
diff changeset
2300 Now, if you select a topic, it will fold/unfold that topic, which is
Dave Love <fx@gnu.org>
parents:
diff changeset
2301 really neat, I think.
Dave Love <fx@gnu.org>
parents:
diff changeset
2302
Dave Love <fx@gnu.org>
parents:
diff changeset
2303 @vindex gnus-topic-line-format
Dave Love <fx@gnu.org>
parents:
diff changeset
2304 The topic lines themselves are created according to the
Dave Love <fx@gnu.org>
parents:
diff changeset
2305 @code{gnus-topic-line-format} variable (@pxref{Formatting Variables}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2306 Valid elements are:
Dave Love <fx@gnu.org>
parents:
diff changeset
2307
Dave Love <fx@gnu.org>
parents:
diff changeset
2308 @table @samp
Dave Love <fx@gnu.org>
parents:
diff changeset
2309 @item i
Dave Love <fx@gnu.org>
parents:
diff changeset
2310 Indentation.
Dave Love <fx@gnu.org>
parents:
diff changeset
2311 @item n
Dave Love <fx@gnu.org>
parents:
diff changeset
2312 Topic name.
Dave Love <fx@gnu.org>
parents:
diff changeset
2313 @item v
Dave Love <fx@gnu.org>
parents:
diff changeset
2314 Visibility.
Dave Love <fx@gnu.org>
parents:
diff changeset
2315 @item l
Dave Love <fx@gnu.org>
parents:
diff changeset
2316 Level.
Dave Love <fx@gnu.org>
parents:
diff changeset
2317 @item g
Dave Love <fx@gnu.org>
parents:
diff changeset
2318 Number of groups in the topic.
Dave Love <fx@gnu.org>
parents:
diff changeset
2319 @item a
Dave Love <fx@gnu.org>
parents:
diff changeset
2320 Number of unread articles in the topic.
Dave Love <fx@gnu.org>
parents:
diff changeset
2321 @item A
Dave Love <fx@gnu.org>
parents:
diff changeset
2322 Number of unread articles in the topic and all its subtopics.
Dave Love <fx@gnu.org>
parents:
diff changeset
2323 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
2324
Dave Love <fx@gnu.org>
parents:
diff changeset
2325 @vindex gnus-topic-indent-level
Dave Love <fx@gnu.org>
parents:
diff changeset
2326 Each sub-topic (and the groups in the sub-topics) will be indented with
Dave Love <fx@gnu.org>
parents:
diff changeset
2327 @code{gnus-topic-indent-level} times the topic level number of spaces.
Dave Love <fx@gnu.org>
parents:
diff changeset
2328 The default is 2.
Dave Love <fx@gnu.org>
parents:
diff changeset
2329
Dave Love <fx@gnu.org>
parents:
diff changeset
2330 @vindex gnus-topic-mode-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
2331 @code{gnus-topic-mode-hook} is called in topic minor mode buffers.
Dave Love <fx@gnu.org>
parents:
diff changeset
2332
Dave Love <fx@gnu.org>
parents:
diff changeset
2333 @vindex gnus-topic-display-empty-topics
Dave Love <fx@gnu.org>
parents:
diff changeset
2334 The @code{gnus-topic-display-empty-topics} says whether to display even
Dave Love <fx@gnu.org>
parents:
diff changeset
2335 topics that have no unread articles in them. The default is @code{t}.
Dave Love <fx@gnu.org>
parents:
diff changeset
2336
Dave Love <fx@gnu.org>
parents:
diff changeset
2337
Dave Love <fx@gnu.org>
parents:
diff changeset
2338 @node Topic Commands
Dave Love <fx@gnu.org>
parents:
diff changeset
2339 @subsection Topic Commands
Dave Love <fx@gnu.org>
parents:
diff changeset
2340 @cindex topic commands
Dave Love <fx@gnu.org>
parents:
diff changeset
2341
Dave Love <fx@gnu.org>
parents:
diff changeset
2342 When the topic minor mode is turned on, a new @kbd{T} submap will be
Dave Love <fx@gnu.org>
parents:
diff changeset
2343 available. In addition, a few of the standard keys change their
Dave Love <fx@gnu.org>
parents:
diff changeset
2344 definitions slightly.
Dave Love <fx@gnu.org>
parents:
diff changeset
2345
Dave Love <fx@gnu.org>
parents:
diff changeset
2346 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
2347
Dave Love <fx@gnu.org>
parents:
diff changeset
2348 @item T n
Dave Love <fx@gnu.org>
parents:
diff changeset
2349 @kindex T n (Topic)
Dave Love <fx@gnu.org>
parents:
diff changeset
2350 @findex gnus-topic-create-topic
Dave Love <fx@gnu.org>
parents:
diff changeset
2351 Prompt for a new topic name and create it
Dave Love <fx@gnu.org>
parents:
diff changeset
2352 (@code{gnus-topic-create-topic}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2353
Dave Love <fx@gnu.org>
parents:
diff changeset
2354 @item T m
Dave Love <fx@gnu.org>
parents:
diff changeset
2355 @kindex T m (Topic)
Dave Love <fx@gnu.org>
parents:
diff changeset
2356 @findex gnus-topic-move-group
Dave Love <fx@gnu.org>
parents:
diff changeset
2357 Move the current group to some other topic
Dave Love <fx@gnu.org>
parents:
diff changeset
2358 (@code{gnus-topic-move-group}). This command uses the process/prefix
Dave Love <fx@gnu.org>
parents:
diff changeset
2359 convention (@pxref{Process/Prefix}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2360
Dave Love <fx@gnu.org>
parents:
diff changeset
2361 @item T c
Dave Love <fx@gnu.org>
parents:
diff changeset
2362 @kindex T c (Topic)
Dave Love <fx@gnu.org>
parents:
diff changeset
2363 @findex gnus-topic-copy-group
Dave Love <fx@gnu.org>
parents:
diff changeset
2364 Copy the current group to some other topic
Dave Love <fx@gnu.org>
parents:
diff changeset
2365 (@code{gnus-topic-copy-group}). This command uses the process/prefix
Dave Love <fx@gnu.org>
parents:
diff changeset
2366 convention (@pxref{Process/Prefix}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2367
Dave Love <fx@gnu.org>
parents:
diff changeset
2368 @item T D
Dave Love <fx@gnu.org>
parents:
diff changeset
2369 @kindex T D (Topic)
Dave Love <fx@gnu.org>
parents:
diff changeset
2370 @findex gnus-topic-remove-group
Dave Love <fx@gnu.org>
parents:
diff changeset
2371 Remove a group from the current topic (@code{gnus-topic-remove-group}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2372 This command is mainly useful if you have the same group in several
Dave Love <fx@gnu.org>
parents:
diff changeset
2373 topics and wish to remove it from one of the topics. You may also
Dave Love <fx@gnu.org>
parents:
diff changeset
2374 remove a group from all topics, but in that case, Gnus will add it to
Dave Love <fx@gnu.org>
parents:
diff changeset
2375 the root topic the next time you start Gnus. In fact, all new groups
Dave Love <fx@gnu.org>
parents:
diff changeset
2376 (which, naturally, don't belong to any topic) will show up in the root
Dave Love <fx@gnu.org>
parents:
diff changeset
2377 topic.
Dave Love <fx@gnu.org>
parents:
diff changeset
2378
Dave Love <fx@gnu.org>
parents:
diff changeset
2379 This command uses the process/prefix convention
Dave Love <fx@gnu.org>
parents:
diff changeset
2380 (@pxref{Process/Prefix}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2381
Dave Love <fx@gnu.org>
parents:
diff changeset
2382 @item T M
Dave Love <fx@gnu.org>
parents:
diff changeset
2383 @kindex T M (Topic)
Dave Love <fx@gnu.org>
parents:
diff changeset
2384 @findex gnus-topic-move-matching
Dave Love <fx@gnu.org>
parents:
diff changeset
2385 Move all groups that match some regular expression to a topic
Dave Love <fx@gnu.org>
parents:
diff changeset
2386 (@code{gnus-topic-move-matching}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2387
Dave Love <fx@gnu.org>
parents:
diff changeset
2388 @item T C
Dave Love <fx@gnu.org>
parents:
diff changeset
2389 @kindex T C (Topic)
Dave Love <fx@gnu.org>
parents:
diff changeset
2390 @findex gnus-topic-copy-matching
Dave Love <fx@gnu.org>
parents:
diff changeset
2391 Copy all groups that match some regular expression to a topic
Dave Love <fx@gnu.org>
parents:
diff changeset
2392 (@code{gnus-topic-copy-matching}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2393
Dave Love <fx@gnu.org>
parents:
diff changeset
2394 @item T H
Dave Love <fx@gnu.org>
parents:
diff changeset
2395 @kindex T H (Topic)
Dave Love <fx@gnu.org>
parents:
diff changeset
2396 @findex gnus-topic-toggle-display-empty-topics
Dave Love <fx@gnu.org>
parents:
diff changeset
2397 Toggle hiding empty topics
Dave Love <fx@gnu.org>
parents:
diff changeset
2398 (@code{gnus-topic-toggle-display-empty-topics}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2399
Dave Love <fx@gnu.org>
parents:
diff changeset
2400 @item T #
Dave Love <fx@gnu.org>
parents:
diff changeset
2401 @kindex T # (Topic)
Dave Love <fx@gnu.org>
parents:
diff changeset
2402 @findex gnus-topic-mark-topic
Dave Love <fx@gnu.org>
parents:
diff changeset
2403 Mark all groups in the current topic with the process mark
Dave Love <fx@gnu.org>
parents:
diff changeset
2404 (@code{gnus-topic-mark-topic}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2405
Dave Love <fx@gnu.org>
parents:
diff changeset
2406 @item T M-#
Dave Love <fx@gnu.org>
parents:
diff changeset
2407 @kindex T M-# (Topic)
Dave Love <fx@gnu.org>
parents:
diff changeset
2408 @findex gnus-topic-unmark-topic
Dave Love <fx@gnu.org>
parents:
diff changeset
2409 Remove the process mark from all groups in the current topic
Dave Love <fx@gnu.org>
parents:
diff changeset
2410 (@code{gnus-topic-unmark-topic}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2411
Dave Love <fx@gnu.org>
parents:
diff changeset
2412 @item RET
Dave Love <fx@gnu.org>
parents:
diff changeset
2413 @kindex RET (Topic)
Dave Love <fx@gnu.org>
parents:
diff changeset
2414 @findex gnus-topic-select-group
Dave Love <fx@gnu.org>
parents:
diff changeset
2415 @itemx SPACE
Dave Love <fx@gnu.org>
parents:
diff changeset
2416 Either select a group or fold a topic (@code{gnus-topic-select-group}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2417 When you perform this command on a group, you'll enter the group, as
Dave Love <fx@gnu.org>
parents:
diff changeset
2418 usual. When done on a topic line, the topic will be folded (if it was
Dave Love <fx@gnu.org>
parents:
diff changeset
2419 visible) or unfolded (if it was folded already). So it's basically a
Dave Love <fx@gnu.org>
parents:
diff changeset
2420 toggling command on topics. In addition, if you give a numerical
Dave Love <fx@gnu.org>
parents:
diff changeset
2421 prefix, group on that level (and lower) will be displayed.
Dave Love <fx@gnu.org>
parents:
diff changeset
2422
Dave Love <fx@gnu.org>
parents:
diff changeset
2423 @item T TAB
Dave Love <fx@gnu.org>
parents:
diff changeset
2424 @itemx TAB
Dave Love <fx@gnu.org>
parents:
diff changeset
2425 @kindex T TAB (Topic)
Dave Love <fx@gnu.org>
parents:
diff changeset
2426 @kindex TAB (Topic)
Dave Love <fx@gnu.org>
parents:
diff changeset
2427 @findex gnus-topic-indent
Dave Love <fx@gnu.org>
parents:
diff changeset
2428 ``Indent'' the current topic so that it becomes a sub-topic of the
Dave Love <fx@gnu.org>
parents:
diff changeset
2429 previous topic (@code{gnus-topic-indent}). If given a prefix,
Dave Love <fx@gnu.org>
parents:
diff changeset
2430 ``un-indent'' the topic instead.
Dave Love <fx@gnu.org>
parents:
diff changeset
2431
Dave Love <fx@gnu.org>
parents:
diff changeset
2432 @item M-TAB
Dave Love <fx@gnu.org>
parents:
diff changeset
2433 @kindex M-TAB (Topic)
Dave Love <fx@gnu.org>
parents:
diff changeset
2434 @findex gnus-topic-unindent
Dave Love <fx@gnu.org>
parents:
diff changeset
2435 ``Un-indent'' the current topic so that it becomes a sub-topic of the
Dave Love <fx@gnu.org>
parents:
diff changeset
2436 parent of its current parent (@code{gnus-topic-unindent}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2437
Dave Love <fx@gnu.org>
parents:
diff changeset
2438 @item C-k
Dave Love <fx@gnu.org>
parents:
diff changeset
2439 @kindex C-k (Topic)
Dave Love <fx@gnu.org>
parents:
diff changeset
2440 @findex gnus-topic-kill-group
Dave Love <fx@gnu.org>
parents:
diff changeset
2441 Kill a group or topic (@code{gnus-topic-kill-group}). All groups in the
Dave Love <fx@gnu.org>
parents:
diff changeset
2442 topic will be removed along with the topic.
Dave Love <fx@gnu.org>
parents:
diff changeset
2443
Dave Love <fx@gnu.org>
parents:
diff changeset
2444 @item C-y
Dave Love <fx@gnu.org>
parents:
diff changeset
2445 @kindex C-y (Topic)
Dave Love <fx@gnu.org>
parents:
diff changeset
2446 @findex gnus-topic-yank-group
Dave Love <fx@gnu.org>
parents:
diff changeset
2447 Yank the previously killed group or topic
Dave Love <fx@gnu.org>
parents:
diff changeset
2448 (@code{gnus-topic-yank-group}). Note that all topics will be yanked
Dave Love <fx@gnu.org>
parents:
diff changeset
2449 before all groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
2450
Dave Love <fx@gnu.org>
parents:
diff changeset
2451 @item T r
Dave Love <fx@gnu.org>
parents:
diff changeset
2452 @kindex T r (Topic)
Dave Love <fx@gnu.org>
parents:
diff changeset
2453 @findex gnus-topic-rename
Dave Love <fx@gnu.org>
parents:
diff changeset
2454 Rename a topic (@code{gnus-topic-rename}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2455
Dave Love <fx@gnu.org>
parents:
diff changeset
2456 @item T DEL
Dave Love <fx@gnu.org>
parents:
diff changeset
2457 @kindex T DEL (Topic)
Dave Love <fx@gnu.org>
parents:
diff changeset
2458 @findex gnus-topic-delete
Dave Love <fx@gnu.org>
parents:
diff changeset
2459 Delete an empty topic (@code{gnus-topic-delete}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2460
Dave Love <fx@gnu.org>
parents:
diff changeset
2461 @item A T
Dave Love <fx@gnu.org>
parents:
diff changeset
2462 @kindex A T (Topic)
Dave Love <fx@gnu.org>
parents:
diff changeset
2463 @findex gnus-topic-list-active
Dave Love <fx@gnu.org>
parents:
diff changeset
2464 List all groups that Gnus knows about in a topics-ified way
Dave Love <fx@gnu.org>
parents:
diff changeset
2465 (@code{gnus-topic-list-active}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2466
Dave Love <fx@gnu.org>
parents:
diff changeset
2467 @item G p
Dave Love <fx@gnu.org>
parents:
diff changeset
2468 @kindex G p (Topic)
Dave Love <fx@gnu.org>
parents:
diff changeset
2469 @findex gnus-topic-edit-parameters
Dave Love <fx@gnu.org>
parents:
diff changeset
2470 @cindex group parameters
Dave Love <fx@gnu.org>
parents:
diff changeset
2471 @cindex topic parameters
Dave Love <fx@gnu.org>
parents:
diff changeset
2472 @cindex parameters
Dave Love <fx@gnu.org>
parents:
diff changeset
2473 Edit the topic parameters (@code{gnus-topic-edit-parameters}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2474 @xref{Topic Parameters}.
Dave Love <fx@gnu.org>
parents:
diff changeset
2475
Dave Love <fx@gnu.org>
parents:
diff changeset
2476 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
2477
Dave Love <fx@gnu.org>
parents:
diff changeset
2478
Dave Love <fx@gnu.org>
parents:
diff changeset
2479 @node Topic Sorting
Dave Love <fx@gnu.org>
parents:
diff changeset
2480 @subsection Topic Sorting
Dave Love <fx@gnu.org>
parents:
diff changeset
2481 @cindex topic sorting
Dave Love <fx@gnu.org>
parents:
diff changeset
2482
Dave Love <fx@gnu.org>
parents:
diff changeset
2483 You can sort the groups in each topic individually with the following
Dave Love <fx@gnu.org>
parents:
diff changeset
2484 commands:
Dave Love <fx@gnu.org>
parents:
diff changeset
2485
Dave Love <fx@gnu.org>
parents:
diff changeset
2486
Dave Love <fx@gnu.org>
parents:
diff changeset
2487 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
2488 @item T S a
Dave Love <fx@gnu.org>
parents:
diff changeset
2489 @kindex T S a (Topic)
Dave Love <fx@gnu.org>
parents:
diff changeset
2490 @findex gnus-topic-sort-groups-by-alphabet
Dave Love <fx@gnu.org>
parents:
diff changeset
2491 Sort the current topic alphabetically by group name
Dave Love <fx@gnu.org>
parents:
diff changeset
2492 (@code{gnus-topic-sort-groups-by-alphabet}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2493
Dave Love <fx@gnu.org>
parents:
diff changeset
2494 @item T S u
Dave Love <fx@gnu.org>
parents:
diff changeset
2495 @kindex T S u (Topic)
Dave Love <fx@gnu.org>
parents:
diff changeset
2496 @findex gnus-topic-sort-groups-by-unread
Dave Love <fx@gnu.org>
parents:
diff changeset
2497 Sort the current topic by the number of unread articles
Dave Love <fx@gnu.org>
parents:
diff changeset
2498 (@code{gnus-topic-sort-groups-by-unread}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2499
Dave Love <fx@gnu.org>
parents:
diff changeset
2500 @item T S l
Dave Love <fx@gnu.org>
parents:
diff changeset
2501 @kindex T S l (Topic)
Dave Love <fx@gnu.org>
parents:
diff changeset
2502 @findex gnus-topic-sort-groups-by-level
Dave Love <fx@gnu.org>
parents:
diff changeset
2503 Sort the current topic by group level
Dave Love <fx@gnu.org>
parents:
diff changeset
2504 (@code{gnus-topic-sort-groups-by-level}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2505
Dave Love <fx@gnu.org>
parents:
diff changeset
2506 @item T S v
Dave Love <fx@gnu.org>
parents:
diff changeset
2507 @kindex T S v (Topic)
Dave Love <fx@gnu.org>
parents:
diff changeset
2508 @findex gnus-topic-sort-groups-by-score
Dave Love <fx@gnu.org>
parents:
diff changeset
2509 Sort the current topic by group score
Dave Love <fx@gnu.org>
parents:
diff changeset
2510 (@code{gnus-topic-sort-groups-by-score}). @xref{Group Score}.
Dave Love <fx@gnu.org>
parents:
diff changeset
2511
Dave Love <fx@gnu.org>
parents:
diff changeset
2512 @item T S r
Dave Love <fx@gnu.org>
parents:
diff changeset
2513 @kindex T S r (Topic)
Dave Love <fx@gnu.org>
parents:
diff changeset
2514 @findex gnus-topic-sort-groups-by-rank
Dave Love <fx@gnu.org>
parents:
diff changeset
2515 Sort the current topic by group rank
Dave Love <fx@gnu.org>
parents:
diff changeset
2516 (@code{gnus-topic-sort-groups-by-rank}). @xref{Group Score}.
Dave Love <fx@gnu.org>
parents:
diff changeset
2517
Dave Love <fx@gnu.org>
parents:
diff changeset
2518 @item T S m
Dave Love <fx@gnu.org>
parents:
diff changeset
2519 @kindex T S m (Topic)
Dave Love <fx@gnu.org>
parents:
diff changeset
2520 @findex gnus-topic-sort-groups-by-method
Dave Love <fx@gnu.org>
parents:
diff changeset
2521 Sort the current topic alphabetically by backend name
Dave Love <fx@gnu.org>
parents:
diff changeset
2522 (@code{gnus-topic-sort-groups-by-method}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2523
Dave Love <fx@gnu.org>
parents:
diff changeset
2524 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
2525
Dave Love <fx@gnu.org>
parents:
diff changeset
2526 @xref{Sorting Groups}, for more information about group sorting.
Dave Love <fx@gnu.org>
parents:
diff changeset
2527
Dave Love <fx@gnu.org>
parents:
diff changeset
2528
Dave Love <fx@gnu.org>
parents:
diff changeset
2529 @node Topic Topology
Dave Love <fx@gnu.org>
parents:
diff changeset
2530 @subsection Topic Topology
Dave Love <fx@gnu.org>
parents:
diff changeset
2531 @cindex topic topology
Dave Love <fx@gnu.org>
parents:
diff changeset
2532 @cindex topology
Dave Love <fx@gnu.org>
parents:
diff changeset
2533
Dave Love <fx@gnu.org>
parents:
diff changeset
2534 So, let's have a look at an example group buffer:
Dave Love <fx@gnu.org>
parents:
diff changeset
2535
Dave Love <fx@gnu.org>
parents:
diff changeset
2536 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
2537 Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
2538 Emacs -- I wuw it!
Dave Love <fx@gnu.org>
parents:
diff changeset
2539 3: comp.emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
2540 2: alt.religion.emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
2541 Naughty Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
2542 452: alt.sex.emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
2543 0: comp.talk.emacs.recovery
Dave Love <fx@gnu.org>
parents:
diff changeset
2544 Misc
Dave Love <fx@gnu.org>
parents:
diff changeset
2545 8: comp.binaries.fractals
Dave Love <fx@gnu.org>
parents:
diff changeset
2546 13: comp.sources.unix
Dave Love <fx@gnu.org>
parents:
diff changeset
2547 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
2548
Dave Love <fx@gnu.org>
parents:
diff changeset
2549 So, here we have one top-level topic (@samp{Gnus}), two topics under
Dave Love <fx@gnu.org>
parents:
diff changeset
2550 that, and one sub-topic under one of the sub-topics. (There is always
Dave Love <fx@gnu.org>
parents:
diff changeset
2551 just one (1) top-level topic). This topology can be expressed as
Dave Love <fx@gnu.org>
parents:
diff changeset
2552 follows:
Dave Love <fx@gnu.org>
parents:
diff changeset
2553
Dave Love <fx@gnu.org>
parents:
diff changeset
2554 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2555 (("Gnus" visible)
Dave Love <fx@gnu.org>
parents:
diff changeset
2556 (("Emacs -- I wuw it!" visible)
Dave Love <fx@gnu.org>
parents:
diff changeset
2557 (("Naughty Emacs" visible)))
Dave Love <fx@gnu.org>
parents:
diff changeset
2558 (("Misc" visible)))
Dave Love <fx@gnu.org>
parents:
diff changeset
2559 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2560
Dave Love <fx@gnu.org>
parents:
diff changeset
2561 @vindex gnus-topic-topology
Dave Love <fx@gnu.org>
parents:
diff changeset
2562 This is in fact how the variable @code{gnus-topic-topology} would look
Dave Love <fx@gnu.org>
parents:
diff changeset
2563 for the display above. That variable is saved in the @file{.newsrc.eld}
Dave Love <fx@gnu.org>
parents:
diff changeset
2564 file, and shouldn't be messed with manually---unless you really want
Dave Love <fx@gnu.org>
parents:
diff changeset
2565 to. Since this variable is read from the @file{.newsrc.eld} file,
Dave Love <fx@gnu.org>
parents:
diff changeset
2566 setting it in any other startup files will have no effect.
Dave Love <fx@gnu.org>
parents:
diff changeset
2567
Dave Love <fx@gnu.org>
parents:
diff changeset
2568 This topology shows what topics are sub-topics of what topics (right),
Dave Love <fx@gnu.org>
parents:
diff changeset
2569 and which topics are visible. Two settings are currently
Dave Love <fx@gnu.org>
parents:
diff changeset
2570 allowed---@code{visible} and @code{invisible}.
Dave Love <fx@gnu.org>
parents:
diff changeset
2571
Dave Love <fx@gnu.org>
parents:
diff changeset
2572
Dave Love <fx@gnu.org>
parents:
diff changeset
2573 @node Topic Parameters
Dave Love <fx@gnu.org>
parents:
diff changeset
2574 @subsection Topic Parameters
Dave Love <fx@gnu.org>
parents:
diff changeset
2575 @cindex topic parameters
Dave Love <fx@gnu.org>
parents:
diff changeset
2576
Dave Love <fx@gnu.org>
parents:
diff changeset
2577 All groups in a topic will inherit group parameters from the parent (and
Dave Love <fx@gnu.org>
parents:
diff changeset
2578 ancestor) topic parameters. All valid group parameters are valid topic
Dave Love <fx@gnu.org>
parents:
diff changeset
2579 parameters (@pxref{Group Parameters}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2580
Dave Love <fx@gnu.org>
parents:
diff changeset
2581 Group parameters (of course) override topic parameters, and topic
Dave Love <fx@gnu.org>
parents:
diff changeset
2582 parameters in sub-topics override topic parameters in super-topics. You
Dave Love <fx@gnu.org>
parents:
diff changeset
2583 know. Normal inheritance rules. (@dfn{Rules} is here a noun, not a
Dave Love <fx@gnu.org>
parents:
diff changeset
2584 verb, although you may feel free to disagree with me here.)
Dave Love <fx@gnu.org>
parents:
diff changeset
2585
Dave Love <fx@gnu.org>
parents:
diff changeset
2586 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
2587 Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
2588 Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
2589 3: comp.emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
2590 2: alt.religion.emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
2591 452: alt.sex.emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
2592 Relief
Dave Love <fx@gnu.org>
parents:
diff changeset
2593 452: alt.sex.emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
2594 0: comp.talk.emacs.recovery
Dave Love <fx@gnu.org>
parents:
diff changeset
2595 Misc
Dave Love <fx@gnu.org>
parents:
diff changeset
2596 8: comp.binaries.fractals
Dave Love <fx@gnu.org>
parents:
diff changeset
2597 13: comp.sources.unix
Dave Love <fx@gnu.org>
parents:
diff changeset
2598 452: alt.sex.emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
2599 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
2600
Dave Love <fx@gnu.org>
parents:
diff changeset
2601 The @samp{Emacs} topic has the topic parameter @code{(score-file
Dave Love <fx@gnu.org>
parents:
diff changeset
2602 . "emacs.SCORE")}; the @samp{Relief} topic has the topic parameter
Dave Love <fx@gnu.org>
parents:
diff changeset
2603 @code{(score-file . "relief.SCORE")}; and the @samp{Misc} topic has the
Dave Love <fx@gnu.org>
parents:
diff changeset
2604 topic parameter @code{(score-file . "emacs.SCORE")}. In addition,
Dave Love <fx@gnu.org>
parents:
diff changeset
2605 @* @samp{alt.religion.emacs} has the group parameter @code{(score-file
Dave Love <fx@gnu.org>
parents:
diff changeset
2606 . "religion.SCORE")}.
Dave Love <fx@gnu.org>
parents:
diff changeset
2607
Dave Love <fx@gnu.org>
parents:
diff changeset
2608 Now, when you enter @samp{alt.sex.emacs} in the @samp{Relief} topic, you
Dave Love <fx@gnu.org>
parents:
diff changeset
2609 will get the @file{relief.SCORE} home score file. If you enter the same
Dave Love <fx@gnu.org>
parents:
diff changeset
2610 group in the @samp{Emacs} topic, you'll get the @file{emacs.SCORE} home
Dave Love <fx@gnu.org>
parents:
diff changeset
2611 score file. If you enter the group @samp{alt.religion.emacs}, you'll
Dave Love <fx@gnu.org>
parents:
diff changeset
2612 get the @file{religion.SCORE} home score file.
Dave Love <fx@gnu.org>
parents:
diff changeset
2613
Dave Love <fx@gnu.org>
parents:
diff changeset
2614 This seems rather simple and self-evident, doesn't it? Well, yes. But
Dave Love <fx@gnu.org>
parents:
diff changeset
2615 there are some problems, especially with the @code{total-expiry}
Dave Love <fx@gnu.org>
parents:
diff changeset
2616 parameter. Say you have a mail group in two topics; one with
Dave Love <fx@gnu.org>
parents:
diff changeset
2617 @code{total-expiry} and one without. What happens when you do @kbd{M-x
Dave Love <fx@gnu.org>
parents:
diff changeset
2618 gnus-expire-all-expirable-groups}? Gnus has no way of telling which one
Dave Love <fx@gnu.org>
parents:
diff changeset
2619 of these topics you mean to expire articles from, so anything may
Dave Love <fx@gnu.org>
parents:
diff changeset
2620 happen. In fact, I hereby declare that it is @dfn{undefined} what
Dave Love <fx@gnu.org>
parents:
diff changeset
2621 happens. You just have to be careful if you do stuff like that.
Dave Love <fx@gnu.org>
parents:
diff changeset
2622
Dave Love <fx@gnu.org>
parents:
diff changeset
2623
Dave Love <fx@gnu.org>
parents:
diff changeset
2624 @node Misc Group Stuff
Dave Love <fx@gnu.org>
parents:
diff changeset
2625 @section Misc Group Stuff
Dave Love <fx@gnu.org>
parents:
diff changeset
2626
Dave Love <fx@gnu.org>
parents:
diff changeset
2627 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
2628 * Scanning New Messages:: Asking Gnus to see whether new messages have arrived.
Dave Love <fx@gnu.org>
parents:
diff changeset
2629 * Group Information:: Information and help on groups and Gnus.
Dave Love <fx@gnu.org>
parents:
diff changeset
2630 * Group Timestamp:: Making Gnus keep track of when you last read a group.
Dave Love <fx@gnu.org>
parents:
diff changeset
2631 * File Commands:: Reading and writing the Gnus files.
Dave Love <fx@gnu.org>
parents:
diff changeset
2632 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
2633
Dave Love <fx@gnu.org>
parents:
diff changeset
2634 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
2635
Dave Love <fx@gnu.org>
parents:
diff changeset
2636 @item ^
Dave Love <fx@gnu.org>
parents:
diff changeset
2637 @kindex ^ (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
2638 @findex gnus-group-enter-server-mode
Dave Love <fx@gnu.org>
parents:
diff changeset
2639 Enter the server buffer (@code{gnus-group-enter-server-mode}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2640 @xref{The Server Buffer}.
Dave Love <fx@gnu.org>
parents:
diff changeset
2641
Dave Love <fx@gnu.org>
parents:
diff changeset
2642 @item a
Dave Love <fx@gnu.org>
parents:
diff changeset
2643 @kindex a (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
2644 @findex gnus-group-post-news
Dave Love <fx@gnu.org>
parents:
diff changeset
2645 Post an article to a group (@code{gnus-group-post-news}). If given a
Dave Love <fx@gnu.org>
parents:
diff changeset
2646 prefix, the current group name will be used as the default.
Dave Love <fx@gnu.org>
parents:
diff changeset
2647
Dave Love <fx@gnu.org>
parents:
diff changeset
2648 @item m
Dave Love <fx@gnu.org>
parents:
diff changeset
2649 @kindex m (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
2650 @findex gnus-group-mail
Dave Love <fx@gnu.org>
parents:
diff changeset
2651 Mail a message somewhere (@code{gnus-group-mail}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2652
Dave Love <fx@gnu.org>
parents:
diff changeset
2653 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
2654
Dave Love <fx@gnu.org>
parents:
diff changeset
2655 Variables for the group buffer:
Dave Love <fx@gnu.org>
parents:
diff changeset
2656
Dave Love <fx@gnu.org>
parents:
diff changeset
2657 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
2658
Dave Love <fx@gnu.org>
parents:
diff changeset
2659 @item gnus-group-mode-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
2660 @vindex gnus-group-mode-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
2661 is called after the group buffer has been
Dave Love <fx@gnu.org>
parents:
diff changeset
2662 created.
Dave Love <fx@gnu.org>
parents:
diff changeset
2663
Dave Love <fx@gnu.org>
parents:
diff changeset
2664 @item gnus-group-prepare-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
2665 @vindex gnus-group-prepare-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
2666 is called after the group buffer is
Dave Love <fx@gnu.org>
parents:
diff changeset
2667 generated. It may be used to modify the buffer in some strange,
Dave Love <fx@gnu.org>
parents:
diff changeset
2668 unnatural way.
Dave Love <fx@gnu.org>
parents:
diff changeset
2669
Dave Love <fx@gnu.org>
parents:
diff changeset
2670 @item gnus-group-prepared-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
2671 @vindex gnus-group-prepare-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
2672 is called as the very last thing after the group buffer has been
Dave Love <fx@gnu.org>
parents:
diff changeset
2673 generated. It may be used to move point around, for instance.
Dave Love <fx@gnu.org>
parents:
diff changeset
2674
Dave Love <fx@gnu.org>
parents:
diff changeset
2675 @item gnus-permanently-visible-groups
Dave Love <fx@gnu.org>
parents:
diff changeset
2676 @vindex gnus-permanently-visible-groups
Dave Love <fx@gnu.org>
parents:
diff changeset
2677 Groups matching this regexp will always be listed in the group buffer,
Dave Love <fx@gnu.org>
parents:
diff changeset
2678 whether they are empty or not.
Dave Love <fx@gnu.org>
parents:
diff changeset
2679
Dave Love <fx@gnu.org>
parents:
diff changeset
2680 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
2681
Dave Love <fx@gnu.org>
parents:
diff changeset
2682
Dave Love <fx@gnu.org>
parents:
diff changeset
2683 @node Scanning New Messages
Dave Love <fx@gnu.org>
parents:
diff changeset
2684 @subsection Scanning New Messages
Dave Love <fx@gnu.org>
parents:
diff changeset
2685 @cindex new messages
Dave Love <fx@gnu.org>
parents:
diff changeset
2686 @cindex scanning new news
Dave Love <fx@gnu.org>
parents:
diff changeset
2687
Dave Love <fx@gnu.org>
parents:
diff changeset
2688 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
2689
Dave Love <fx@gnu.org>
parents:
diff changeset
2690 @item g
Dave Love <fx@gnu.org>
parents:
diff changeset
2691 @kindex g (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
2692 @findex gnus-group-get-new-news
Dave Love <fx@gnu.org>
parents:
diff changeset
2693 @c @icon{gnus-group-get-new-news}
Dave Love <fx@gnu.org>
parents:
diff changeset
2694 Check the server(s) for new articles. If the numerical prefix is used,
Dave Love <fx@gnu.org>
parents:
diff changeset
2695 this command will check only groups of level @var{arg} and lower
Dave Love <fx@gnu.org>
parents:
diff changeset
2696 (@code{gnus-group-get-new-news}). If given a non-numerical prefix, this
Dave Love <fx@gnu.org>
parents:
diff changeset
2697 command will force a total re-reading of the active file(s) from the
Dave Love <fx@gnu.org>
parents:
diff changeset
2698 backend(s).
Dave Love <fx@gnu.org>
parents:
diff changeset
2699
Dave Love <fx@gnu.org>
parents:
diff changeset
2700 @item M-g
Dave Love <fx@gnu.org>
parents:
diff changeset
2701 @kindex M-g (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
2702 @findex gnus-group-get-new-news-this-group
Dave Love <fx@gnu.org>
parents:
diff changeset
2703 @vindex gnus-goto-next-group-when-activating
Dave Love <fx@gnu.org>
parents:
diff changeset
2704 @c @icon{gnus-group-get-new-news-this-group}
Dave Love <fx@gnu.org>
parents:
diff changeset
2705 Check whether new articles have arrived in the current group
Dave Love <fx@gnu.org>
parents:
diff changeset
2706 (@code{gnus-group-get-new-news-this-group}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2707 @code{gnus-goto-next-group-when-activating} says whether this command is
Dave Love <fx@gnu.org>
parents:
diff changeset
2708 to move point to the next group or not. It is @code{t} by default.
Dave Love <fx@gnu.org>
parents:
diff changeset
2709
Dave Love <fx@gnu.org>
parents:
diff changeset
2710 @findex gnus-activate-all-groups
Dave Love <fx@gnu.org>
parents:
diff changeset
2711 @cindex activating groups
Dave Love <fx@gnu.org>
parents:
diff changeset
2712 @item C-c M-g
Dave Love <fx@gnu.org>
parents:
diff changeset
2713 @kindex C-c M-g (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
2714 Activate absolutely all groups (@code{gnus-activate-all-groups}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2715
Dave Love <fx@gnu.org>
parents:
diff changeset
2716 @item R
Dave Love <fx@gnu.org>
parents:
diff changeset
2717 @kindex R (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
2718 @cindex restarting
Dave Love <fx@gnu.org>
parents:
diff changeset
2719 @findex gnus-group-restart
Dave Love <fx@gnu.org>
parents:
diff changeset
2720 Restart Gnus (@code{gnus-group-restart}). This saves the @file{.newsrc}
Dave Love <fx@gnu.org>
parents:
diff changeset
2721 file(s), closes the connection to all servers, clears up all run-time
Dave Love <fx@gnu.org>
parents:
diff changeset
2722 Gnus variables, and then starts Gnus all over again.
Dave Love <fx@gnu.org>
parents:
diff changeset
2723
Dave Love <fx@gnu.org>
parents:
diff changeset
2724 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
2725
Dave Love <fx@gnu.org>
parents:
diff changeset
2726 @vindex gnus-get-new-news-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
2727 @code{gnus-get-new-news-hook} is run just before checking for new news.
Dave Love <fx@gnu.org>
parents:
diff changeset
2728
Dave Love <fx@gnu.org>
parents:
diff changeset
2729 @vindex gnus-after-getting-new-news-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
2730 @code{gnus-after-getting-new-news-hook} is run after checking for new
Dave Love <fx@gnu.org>
parents:
diff changeset
2731 news.
Dave Love <fx@gnu.org>
parents:
diff changeset
2732
Dave Love <fx@gnu.org>
parents:
diff changeset
2733
Dave Love <fx@gnu.org>
parents:
diff changeset
2734 @node Group Information
Dave Love <fx@gnu.org>
parents:
diff changeset
2735 @subsection Group Information
Dave Love <fx@gnu.org>
parents:
diff changeset
2736 @cindex group information
Dave Love <fx@gnu.org>
parents:
diff changeset
2737 @cindex information on groups
Dave Love <fx@gnu.org>
parents:
diff changeset
2738
Dave Love <fx@gnu.org>
parents:
diff changeset
2739 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
2740
Dave Love <fx@gnu.org>
parents:
diff changeset
2741
Dave Love <fx@gnu.org>
parents:
diff changeset
2742 @item H f
Dave Love <fx@gnu.org>
parents:
diff changeset
2743 @kindex H f (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
2744 @findex gnus-group-fetch-faq
Dave Love <fx@gnu.org>
parents:
diff changeset
2745 @vindex gnus-group-faq-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
2746 @cindex FAQ
Dave Love <fx@gnu.org>
parents:
diff changeset
2747 @cindex ange-ftp
Dave Love <fx@gnu.org>
parents:
diff changeset
2748 Try to fetch the FAQ for the current group
Dave Love <fx@gnu.org>
parents:
diff changeset
2749 (@code{gnus-group-fetch-faq}). Gnus will try to get the FAQ from
Dave Love <fx@gnu.org>
parents:
diff changeset
2750 @code{gnus-group-faq-directory}, which is usually a directory on a
Dave Love <fx@gnu.org>
parents:
diff changeset
2751 remote machine. This variable can also be a list of directories. In
Dave Love <fx@gnu.org>
parents:
diff changeset
2752 that case, giving a prefix to this command will allow you to choose
Dave Love <fx@gnu.org>
parents:
diff changeset
2753 between the various sites. @code{ange-ftp} (or @code{efs}) will be used
Dave Love <fx@gnu.org>
parents:
diff changeset
2754 for fetching the file.
Dave Love <fx@gnu.org>
parents:
diff changeset
2755
Dave Love <fx@gnu.org>
parents:
diff changeset
2756 If fetching from the first site is unsuccessful, Gnus will attempt to go
Dave Love <fx@gnu.org>
parents:
diff changeset
2757 through @code{gnus-group-faq-directory} and try to open them one by one.
Dave Love <fx@gnu.org>
parents:
diff changeset
2758
Dave Love <fx@gnu.org>
parents:
diff changeset
2759 @item H d
Dave Love <fx@gnu.org>
parents:
diff changeset
2760 @itemx C-c C-d
Dave Love <fx@gnu.org>
parents:
diff changeset
2761 @c @icon{gnus-group-describe-group}
Dave Love <fx@gnu.org>
parents:
diff changeset
2762 @kindex H d (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
2763 @kindex C-c C-d (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
2764 @cindex describing groups
Dave Love <fx@gnu.org>
parents:
diff changeset
2765 @cindex group description
Dave Love <fx@gnu.org>
parents:
diff changeset
2766 @findex gnus-group-describe-group
Dave Love <fx@gnu.org>
parents:
diff changeset
2767 Describe the current group (@code{gnus-group-describe-group}). If given
Dave Love <fx@gnu.org>
parents:
diff changeset
2768 a prefix, force Gnus to re-read the description from the server.
Dave Love <fx@gnu.org>
parents:
diff changeset
2769
Dave Love <fx@gnu.org>
parents:
diff changeset
2770 @item M-d
Dave Love <fx@gnu.org>
parents:
diff changeset
2771 @kindex M-d (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
2772 @findex gnus-group-describe-all-groups
Dave Love <fx@gnu.org>
parents:
diff changeset
2773 Describe all groups (@code{gnus-group-describe-all-groups}). If given a
Dave Love <fx@gnu.org>
parents:
diff changeset
2774 prefix, force Gnus to re-read the description file from the server.
Dave Love <fx@gnu.org>
parents:
diff changeset
2775
Dave Love <fx@gnu.org>
parents:
diff changeset
2776 @item H v
Dave Love <fx@gnu.org>
parents:
diff changeset
2777 @itemx V
Dave Love <fx@gnu.org>
parents:
diff changeset
2778 @kindex V (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
2779 @kindex H v (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
2780 @cindex version
Dave Love <fx@gnu.org>
parents:
diff changeset
2781 @findex gnus-version
Dave Love <fx@gnu.org>
parents:
diff changeset
2782 Display current Gnus version numbers (@code{gnus-version}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2783
Dave Love <fx@gnu.org>
parents:
diff changeset
2784 @item ?
Dave Love <fx@gnu.org>
parents:
diff changeset
2785 @kindex ? (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
2786 @findex gnus-group-describe-briefly
Dave Love <fx@gnu.org>
parents:
diff changeset
2787 Give a very short help message (@code{gnus-group-describe-briefly}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2788
Dave Love <fx@gnu.org>
parents:
diff changeset
2789 @item C-c C-i
Dave Love <fx@gnu.org>
parents:
diff changeset
2790 @kindex C-c C-i (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
2791 @cindex info
Dave Love <fx@gnu.org>
parents:
diff changeset
2792 @cindex manual
Dave Love <fx@gnu.org>
parents:
diff changeset
2793 @findex gnus-info-find-node
Dave Love <fx@gnu.org>
parents:
diff changeset
2794 Go to the Gnus info node (@code{gnus-info-find-node}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2795 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
2796
Dave Love <fx@gnu.org>
parents:
diff changeset
2797
Dave Love <fx@gnu.org>
parents:
diff changeset
2798 @node Group Timestamp
Dave Love <fx@gnu.org>
parents:
diff changeset
2799 @subsection Group Timestamp
Dave Love <fx@gnu.org>
parents:
diff changeset
2800 @cindex timestamps
Dave Love <fx@gnu.org>
parents:
diff changeset
2801 @cindex group timestamps
Dave Love <fx@gnu.org>
parents:
diff changeset
2802
Dave Love <fx@gnu.org>
parents:
diff changeset
2803 It can be convenient to let Gnus keep track of when you last read a
Dave Love <fx@gnu.org>
parents:
diff changeset
2804 group. To set the ball rolling, you should add
Dave Love <fx@gnu.org>
parents:
diff changeset
2805 @code{gnus-group-set-timestamp} to @code{gnus-select-group-hook}:
Dave Love <fx@gnu.org>
parents:
diff changeset
2806
Dave Love <fx@gnu.org>
parents:
diff changeset
2807 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2808 (add-hook 'gnus-select-group-hook 'gnus-group-set-timestamp)
Dave Love <fx@gnu.org>
parents:
diff changeset
2809 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2810
Dave Love <fx@gnu.org>
parents:
diff changeset
2811 After doing this, each time you enter a group, it'll be recorded.
Dave Love <fx@gnu.org>
parents:
diff changeset
2812
Dave Love <fx@gnu.org>
parents:
diff changeset
2813 This information can be displayed in various ways---the easiest is to
Dave Love <fx@gnu.org>
parents:
diff changeset
2814 use the @samp{%d} spec in the group line format:
Dave Love <fx@gnu.org>
parents:
diff changeset
2815
Dave Love <fx@gnu.org>
parents:
diff changeset
2816 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2817 (setq gnus-group-line-format
Dave Love <fx@gnu.org>
parents:
diff changeset
2818 "%M\%S\%p\%P\%5y: %(%-40,40g%) %d\n")
Dave Love <fx@gnu.org>
parents:
diff changeset
2819 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2820
Dave Love <fx@gnu.org>
parents:
diff changeset
2821 This will result in lines looking like:
Dave Love <fx@gnu.org>
parents:
diff changeset
2822
Dave Love <fx@gnu.org>
parents:
diff changeset
2823 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
2824 * 0: mail.ding 19961002T012943
Dave Love <fx@gnu.org>
parents:
diff changeset
2825 0: custom 19961002T012713
Dave Love <fx@gnu.org>
parents:
diff changeset
2826 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
2827
Dave Love <fx@gnu.org>
parents:
diff changeset
2828 As you can see, the date is displayed in compact ISO 8601 format. This
Dave Love <fx@gnu.org>
parents:
diff changeset
2829 may be a bit too much, so to just display the date, you could say
Dave Love <fx@gnu.org>
parents:
diff changeset
2830 something like:
Dave Love <fx@gnu.org>
parents:
diff changeset
2831
Dave Love <fx@gnu.org>
parents:
diff changeset
2832 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2833 (setq gnus-group-line-format
Dave Love <fx@gnu.org>
parents:
diff changeset
2834 "%M\%S\%p\%P\%5y: %(%-40,40g%) %6,6~(cut 2)d\n")
Dave Love <fx@gnu.org>
parents:
diff changeset
2835 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2836
Dave Love <fx@gnu.org>
parents:
diff changeset
2837
Dave Love <fx@gnu.org>
parents:
diff changeset
2838 @node File Commands
Dave Love <fx@gnu.org>
parents:
diff changeset
2839 @subsection File Commands
Dave Love <fx@gnu.org>
parents:
diff changeset
2840 @cindex file commands
Dave Love <fx@gnu.org>
parents:
diff changeset
2841
Dave Love <fx@gnu.org>
parents:
diff changeset
2842 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
2843
Dave Love <fx@gnu.org>
parents:
diff changeset
2844 @item r
Dave Love <fx@gnu.org>
parents:
diff changeset
2845 @kindex r (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
2846 @findex gnus-group-read-init-file
Dave Love <fx@gnu.org>
parents:
diff changeset
2847 @vindex gnus-init-file
Dave Love <fx@gnu.org>
parents:
diff changeset
2848 @cindex reading init file
Dave Love <fx@gnu.org>
parents:
diff changeset
2849 Re-read the init file (@code{gnus-init-file}, which defaults to
Dave Love <fx@gnu.org>
parents:
diff changeset
2850 @file{~/.gnus}) (@code{gnus-group-read-init-file}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2851
Dave Love <fx@gnu.org>
parents:
diff changeset
2852 @item s
Dave Love <fx@gnu.org>
parents:
diff changeset
2853 @kindex s (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
2854 @findex gnus-group-save-newsrc
Dave Love <fx@gnu.org>
parents:
diff changeset
2855 @cindex saving .newsrc
Dave Love <fx@gnu.org>
parents:
diff changeset
2856 Save the @file{.newsrc.eld} file (and @file{.newsrc} if wanted)
Dave Love <fx@gnu.org>
parents:
diff changeset
2857 (@code{gnus-group-save-newsrc}). If given a prefix, force saving the
Dave Love <fx@gnu.org>
parents:
diff changeset
2858 file(s) whether Gnus thinks it is necessary or not.
Dave Love <fx@gnu.org>
parents:
diff changeset
2859
Dave Love <fx@gnu.org>
parents:
diff changeset
2860 @c @item Z
Dave Love <fx@gnu.org>
parents:
diff changeset
2861 @c @kindex Z (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
2862 @c @findex gnus-group-clear-dribble
Dave Love <fx@gnu.org>
parents:
diff changeset
2863 @c Clear the dribble buffer (@code{gnus-group-clear-dribble}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2864
Dave Love <fx@gnu.org>
parents:
diff changeset
2865 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
2866
Dave Love <fx@gnu.org>
parents:
diff changeset
2867
Dave Love <fx@gnu.org>
parents:
diff changeset
2868 @node The Summary Buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
2869 @chapter The Summary Buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
2870 @cindex summary buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
2871
Dave Love <fx@gnu.org>
parents:
diff changeset
2872 A line for each article is displayed in the summary buffer. You can
Dave Love <fx@gnu.org>
parents:
diff changeset
2873 move around, read articles, post articles and reply to articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
2874
Dave Love <fx@gnu.org>
parents:
diff changeset
2875 The most common way to a summary buffer is to select a group from the
Dave Love <fx@gnu.org>
parents:
diff changeset
2876 group buffer (@pxref{Selecting a Group}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2877
Dave Love <fx@gnu.org>
parents:
diff changeset
2878 You can have as many summary buffers open as you wish.
Dave Love <fx@gnu.org>
parents:
diff changeset
2879
Dave Love <fx@gnu.org>
parents:
diff changeset
2880 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
2881 * Summary Buffer Format:: Deciding how the summary buffer is to look.
Dave Love <fx@gnu.org>
parents:
diff changeset
2882 * Summary Maneuvering:: Moving around the summary buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
2883 * Choosing Articles:: Reading articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
2884 * Paging the Article:: Scrolling the current article.
Dave Love <fx@gnu.org>
parents:
diff changeset
2885 * Reply Followup and Post:: Posting articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
2886 * Canceling and Superseding:: ``Whoops, I shouldn't have called him that.''
Dave Love <fx@gnu.org>
parents:
diff changeset
2887 * Marking Articles:: Marking articles as read, expirable, etc.
Dave Love <fx@gnu.org>
parents:
diff changeset
2888 * Limiting:: You can limit the summary buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
2889 * Threading:: How threads are made.
Dave Love <fx@gnu.org>
parents:
diff changeset
2890 * Sorting:: How articles and threads are sorted.
Dave Love <fx@gnu.org>
parents:
diff changeset
2891 * Asynchronous Fetching:: Gnus might be able to pre-fetch articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
2892 * Article Caching:: You may store articles in a cache.
Dave Love <fx@gnu.org>
parents:
diff changeset
2893 * Persistent Articles:: Making articles expiry-resistant.
Dave Love <fx@gnu.org>
parents:
diff changeset
2894 * Article Backlog:: Having already read articles hang around.
Dave Love <fx@gnu.org>
parents:
diff changeset
2895 * Saving Articles:: Ways of customizing article saving.
Dave Love <fx@gnu.org>
parents:
diff changeset
2896 * Decoding Articles:: Gnus can treat series of (uu)encoded articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
2897 * Article Treatment:: The article buffer can be mangled at will.
Dave Love <fx@gnu.org>
parents:
diff changeset
2898 * Article Commands:: Doing various things with the article buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
2899 * Summary Sorting:: Sorting the summary buffer in various ways.
Dave Love <fx@gnu.org>
parents:
diff changeset
2900 * Finding the Parent:: No child support? Get the parent.
Dave Love <fx@gnu.org>
parents:
diff changeset
2901 * Alternative Approaches:: Reading using non-default summaries.
Dave Love <fx@gnu.org>
parents:
diff changeset
2902 * Tree Display:: A more visual display of threads.
Dave Love <fx@gnu.org>
parents:
diff changeset
2903 * Mail Group Commands:: Some commands can only be used in mail groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
2904 * Various Summary Stuff:: What didn't fit anywhere else.
Dave Love <fx@gnu.org>
parents:
diff changeset
2905 * Exiting the Summary Buffer:: Returning to the Group buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
2906 * Crosspost Handling:: How crossposted articles are dealt with.
Dave Love <fx@gnu.org>
parents:
diff changeset
2907 * Duplicate Suppression:: An alternative when crosspost handling fails.
Dave Love <fx@gnu.org>
parents:
diff changeset
2908 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
2909
Dave Love <fx@gnu.org>
parents:
diff changeset
2910
Dave Love <fx@gnu.org>
parents:
diff changeset
2911 @node Summary Buffer Format
Dave Love <fx@gnu.org>
parents:
diff changeset
2912 @section Summary Buffer Format
Dave Love <fx@gnu.org>
parents:
diff changeset
2913 @cindex summary buffer format
Dave Love <fx@gnu.org>
parents:
diff changeset
2914
Dave Love <fx@gnu.org>
parents:
diff changeset
2915 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
2916 * Summary Buffer Lines:: You can specify how summary lines should look.
Dave Love <fx@gnu.org>
parents:
diff changeset
2917 * Summary Buffer Mode Line:: You can say how the mode line should look.
Dave Love <fx@gnu.org>
parents:
diff changeset
2918 * Summary Highlighting:: Making the summary buffer all pretty and nice.
Dave Love <fx@gnu.org>
parents:
diff changeset
2919 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
2920
Dave Love <fx@gnu.org>
parents:
diff changeset
2921 @findex mail-extract-address-components
Dave Love <fx@gnu.org>
parents:
diff changeset
2922 @findex gnus-extract-address-components
Dave Love <fx@gnu.org>
parents:
diff changeset
2923 @vindex gnus-extract-address-components
Dave Love <fx@gnu.org>
parents:
diff changeset
2924 Gnus will use the value of the @code{gnus-extract-address-components}
Dave Love <fx@gnu.org>
parents:
diff changeset
2925 variable as a function for getting the name and address parts of a
Dave Love <fx@gnu.org>
parents:
diff changeset
2926 @code{From} header. Two pre-defined functions exist:
Dave Love <fx@gnu.org>
parents:
diff changeset
2927 @code{gnus-extract-address-components}, which is the default, quite
Dave Love <fx@gnu.org>
parents:
diff changeset
2928 fast, and too simplistic solution; and
Dave Love <fx@gnu.org>
parents:
diff changeset
2929 @code{mail-extract-address-components}, which works very nicely, but is
Dave Love <fx@gnu.org>
parents:
diff changeset
2930 slower. The default function will return the wrong answer in 5% of the
Dave Love <fx@gnu.org>
parents:
diff changeset
2931 cases. If this is unacceptable to you, use the other function instead.
Dave Love <fx@gnu.org>
parents:
diff changeset
2932
Dave Love <fx@gnu.org>
parents:
diff changeset
2933 @vindex gnus-summary-same-subject
Dave Love <fx@gnu.org>
parents:
diff changeset
2934 @code{gnus-summary-same-subject} is a string indicating that the current
Dave Love <fx@gnu.org>
parents:
diff changeset
2935 article has the same subject as the previous. This string will be used
Dave Love <fx@gnu.org>
parents:
diff changeset
2936 with those specs that require it. The default is @code{""}.
Dave Love <fx@gnu.org>
parents:
diff changeset
2937
Dave Love <fx@gnu.org>
parents:
diff changeset
2938
Dave Love <fx@gnu.org>
parents:
diff changeset
2939 @node Summary Buffer Lines
Dave Love <fx@gnu.org>
parents:
diff changeset
2940 @subsection Summary Buffer Lines
Dave Love <fx@gnu.org>
parents:
diff changeset
2941
Dave Love <fx@gnu.org>
parents:
diff changeset
2942 @vindex gnus-summary-line-format
Dave Love <fx@gnu.org>
parents:
diff changeset
2943 You can change the format of the lines in the summary buffer by changing
Dave Love <fx@gnu.org>
parents:
diff changeset
2944 the @code{gnus-summary-line-format} variable. It works along the same
Dave Love <fx@gnu.org>
parents:
diff changeset
2945 lines as a normal @code{format} string, with some extensions
Dave Love <fx@gnu.org>
parents:
diff changeset
2946 (@pxref{Formatting Variables}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2947
Dave Love <fx@gnu.org>
parents:
diff changeset
2948 The default string is @samp{%U%R%z%I%(%[%4L: %-20,20n%]%) %s\n}.
Dave Love <fx@gnu.org>
parents:
diff changeset
2949
Dave Love <fx@gnu.org>
parents:
diff changeset
2950 The following format specification characters are understood:
Dave Love <fx@gnu.org>
parents:
diff changeset
2951
Dave Love <fx@gnu.org>
parents:
diff changeset
2952 @table @samp
Dave Love <fx@gnu.org>
parents:
diff changeset
2953 @item N
Dave Love <fx@gnu.org>
parents:
diff changeset
2954 Article number.
Dave Love <fx@gnu.org>
parents:
diff changeset
2955 @item S
Dave Love <fx@gnu.org>
parents:
diff changeset
2956 Subject string.
Dave Love <fx@gnu.org>
parents:
diff changeset
2957 @item s
Dave Love <fx@gnu.org>
parents:
diff changeset
2958 Subject if the article is the root of the thread or the previous article
Dave Love <fx@gnu.org>
parents:
diff changeset
2959 had a different subject, @code{gnus-summary-same-subject} otherwise.
Dave Love <fx@gnu.org>
parents:
diff changeset
2960 (@code{gnus-summary-same-subject} defaults to @code{""}.)
Dave Love <fx@gnu.org>
parents:
diff changeset
2961 @item F
Dave Love <fx@gnu.org>
parents:
diff changeset
2962 Full @code{From} header.
Dave Love <fx@gnu.org>
parents:
diff changeset
2963 @item n
Dave Love <fx@gnu.org>
parents:
diff changeset
2964 The name (from the @code{From} header).
Dave Love <fx@gnu.org>
parents:
diff changeset
2965 @item a
Dave Love <fx@gnu.org>
parents:
diff changeset
2966 The name (from the @code{From} header). This differs from the @code{n}
Dave Love <fx@gnu.org>
parents:
diff changeset
2967 spec in that it uses the function designated by the
Dave Love <fx@gnu.org>
parents:
diff changeset
2968 @code{gnus-extract-address-components} variable, which is slower, but
Dave Love <fx@gnu.org>
parents:
diff changeset
2969 may be more thorough.
Dave Love <fx@gnu.org>
parents:
diff changeset
2970 @item A
Dave Love <fx@gnu.org>
parents:
diff changeset
2971 The address (from the @code{From} header). This works the same way as
Dave Love <fx@gnu.org>
parents:
diff changeset
2972 the @code{a} spec.
Dave Love <fx@gnu.org>
parents:
diff changeset
2973 @item L
Dave Love <fx@gnu.org>
parents:
diff changeset
2974 Number of lines in the article.
Dave Love <fx@gnu.org>
parents:
diff changeset
2975 @item c
Dave Love <fx@gnu.org>
parents:
diff changeset
2976 Number of characters in the article.
Dave Love <fx@gnu.org>
parents:
diff changeset
2977 @item I
Dave Love <fx@gnu.org>
parents:
diff changeset
2978 Indentation based on thread level (@pxref{Customizing Threading}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2979 @item T
Dave Love <fx@gnu.org>
parents:
diff changeset
2980 Nothing if the article is a root and lots of spaces if it isn't (it
Dave Love <fx@gnu.org>
parents:
diff changeset
2981 pushes everything after it off the screen).
Dave Love <fx@gnu.org>
parents:
diff changeset
2982 @item [
Dave Love <fx@gnu.org>
parents:
diff changeset
2983 Opening bracket, which is normally @samp{[}, but can also be @samp{<}
Dave Love <fx@gnu.org>
parents:
diff changeset
2984 for adopted articles (@pxref{Customizing Threading}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2985 @item ]
Dave Love <fx@gnu.org>
parents:
diff changeset
2986 Closing bracket, which is normally @samp{]}, but can also be @samp{>}
Dave Love <fx@gnu.org>
parents:
diff changeset
2987 for adopted articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
2988 @item >
Dave Love <fx@gnu.org>
parents:
diff changeset
2989 One space for each thread level.
Dave Love <fx@gnu.org>
parents:
diff changeset
2990 @item <
Dave Love <fx@gnu.org>
parents:
diff changeset
2991 Twenty minus thread level spaces.
Dave Love <fx@gnu.org>
parents:
diff changeset
2992 @item U
Dave Love <fx@gnu.org>
parents:
diff changeset
2993 Unread.
Dave Love <fx@gnu.org>
parents:
diff changeset
2994
Dave Love <fx@gnu.org>
parents:
diff changeset
2995 @item R
Dave Love <fx@gnu.org>
parents:
diff changeset
2996 This misleadingly named specifier is the @dfn{secondary mark}. This
Dave Love <fx@gnu.org>
parents:
diff changeset
2997 mark will say whether the article has been replied to, has been cached,
Dave Love <fx@gnu.org>
parents:
diff changeset
2998 or has been saved.
Dave Love <fx@gnu.org>
parents:
diff changeset
2999
Dave Love <fx@gnu.org>
parents:
diff changeset
3000 @item i
Dave Love <fx@gnu.org>
parents:
diff changeset
3001 Score as a number (@pxref{Scoring}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3002 @item z
Dave Love <fx@gnu.org>
parents:
diff changeset
3003 @vindex gnus-summary-zcore-fuzz
Dave Love <fx@gnu.org>
parents:
diff changeset
3004 Zcore, @samp{+} if above the default level and @samp{-} if below the
Dave Love <fx@gnu.org>
parents:
diff changeset
3005 default level. If the difference between
Dave Love <fx@gnu.org>
parents:
diff changeset
3006 @code{gnus-summary-default-score} and the score is less than
Dave Love <fx@gnu.org>
parents:
diff changeset
3007 @code{gnus-summary-zcore-fuzz}, this spec will not be used.
Dave Love <fx@gnu.org>
parents:
diff changeset
3008 @item V
Dave Love <fx@gnu.org>
parents:
diff changeset
3009 Total thread score.
Dave Love <fx@gnu.org>
parents:
diff changeset
3010 @item x
Dave Love <fx@gnu.org>
parents:
diff changeset
3011 @code{Xref}.
Dave Love <fx@gnu.org>
parents:
diff changeset
3012 @item D
Dave Love <fx@gnu.org>
parents:
diff changeset
3013 @code{Date}.
Dave Love <fx@gnu.org>
parents:
diff changeset
3014 @item d
Dave Love <fx@gnu.org>
parents:
diff changeset
3015 The @code{Date} in @code{DD-MMM} format.
Dave Love <fx@gnu.org>
parents:
diff changeset
3016 @item o
Dave Love <fx@gnu.org>
parents:
diff changeset
3017 The @code{Date} in @var{YYYYMMDD}@code{T}@var{HHMMSS} format.
Dave Love <fx@gnu.org>
parents:
diff changeset
3018 @item M
Dave Love <fx@gnu.org>
parents:
diff changeset
3019 @code{Message-ID}.
Dave Love <fx@gnu.org>
parents:
diff changeset
3020 @item r
Dave Love <fx@gnu.org>
parents:
diff changeset
3021 @code{References}.
Dave Love <fx@gnu.org>
parents:
diff changeset
3022 @item t
Dave Love <fx@gnu.org>
parents:
diff changeset
3023 Number of articles in the current sub-thread. Using this spec will slow
Dave Love <fx@gnu.org>
parents:
diff changeset
3024 down summary buffer generation somewhat.
Dave Love <fx@gnu.org>
parents:
diff changeset
3025 @item e
Dave Love <fx@gnu.org>
parents:
diff changeset
3026 An @samp{=} (@code{gnus-not-empty-thread-mark}) will be displayed if the
Dave Love <fx@gnu.org>
parents:
diff changeset
3027 article has any children.
Dave Love <fx@gnu.org>
parents:
diff changeset
3028 @item P
Dave Love <fx@gnu.org>
parents:
diff changeset
3029 The line number.
Dave Love <fx@gnu.org>
parents:
diff changeset
3030 @item O
Dave Love <fx@gnu.org>
parents:
diff changeset
3031 Download mark.
Dave Love <fx@gnu.org>
parents:
diff changeset
3032 @item u
Dave Love <fx@gnu.org>
parents:
diff changeset
3033 User defined specifier. The next character in the format string should
Dave Love <fx@gnu.org>
parents:
diff changeset
3034 be a letter. Gnus will call the function
Dave Love <fx@gnu.org>
parents:
diff changeset
3035 @code{gnus-user-format-function-}@samp{X}, where @samp{X} is the letter
Dave Love <fx@gnu.org>
parents:
diff changeset
3036 following @samp{%u}. The function will be passed the current header as
Dave Love <fx@gnu.org>
parents:
diff changeset
3037 argument. The function should return a string, which will be inserted
Dave Love <fx@gnu.org>
parents:
diff changeset
3038 into the summary just like information from any other summary specifier.
Dave Love <fx@gnu.org>
parents:
diff changeset
3039 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
3040
Dave Love <fx@gnu.org>
parents:
diff changeset
3041 The @samp{%U} (status), @samp{%R} (replied) and @samp{%z} (zcore) specs
Dave Love <fx@gnu.org>
parents:
diff changeset
3042 have to be handled with care. For reasons of efficiency, Gnus will
Dave Love <fx@gnu.org>
parents:
diff changeset
3043 compute what column these characters will end up in, and ``hard-code''
Dave Love <fx@gnu.org>
parents:
diff changeset
3044 that. This means that it is invalid to have these specs after a
Dave Love <fx@gnu.org>
parents:
diff changeset
3045 variable-length spec. Well, you might not be arrested, but your summary
Dave Love <fx@gnu.org>
parents:
diff changeset
3046 buffer will look strange, which is bad enough.
Dave Love <fx@gnu.org>
parents:
diff changeset
3047
Dave Love <fx@gnu.org>
parents:
diff changeset
3048 The smart choice is to have these specs as far to the left as possible.
Dave Love <fx@gnu.org>
parents:
diff changeset
3049 (Isn't that the case with everything, though? But I digress.)
Dave Love <fx@gnu.org>
parents:
diff changeset
3050
Dave Love <fx@gnu.org>
parents:
diff changeset
3051 This restriction may disappear in later versions of Gnus.
Dave Love <fx@gnu.org>
parents:
diff changeset
3052
Dave Love <fx@gnu.org>
parents:
diff changeset
3053
Dave Love <fx@gnu.org>
parents:
diff changeset
3054 @node Summary Buffer Mode Line
Dave Love <fx@gnu.org>
parents:
diff changeset
3055 @subsection Summary Buffer Mode Line
Dave Love <fx@gnu.org>
parents:
diff changeset
3056
Dave Love <fx@gnu.org>
parents:
diff changeset
3057 @vindex gnus-summary-mode-line-format
Dave Love <fx@gnu.org>
parents:
diff changeset
3058 You can also change the format of the summary mode bar (@pxref{Mode Line
Dave Love <fx@gnu.org>
parents:
diff changeset
3059 Formatting}). Set @code{gnus-summary-mode-line-format} to whatever you
Dave Love <fx@gnu.org>
parents:
diff changeset
3060 like. The default is @samp{Gnus: %%b [%A] %Z}.
Dave Love <fx@gnu.org>
parents:
diff changeset
3061
Dave Love <fx@gnu.org>
parents:
diff changeset
3062 Here are the elements you can play with:
Dave Love <fx@gnu.org>
parents:
diff changeset
3063
Dave Love <fx@gnu.org>
parents:
diff changeset
3064 @table @samp
Dave Love <fx@gnu.org>
parents:
diff changeset
3065 @item G
Dave Love <fx@gnu.org>
parents:
diff changeset
3066 Group name.
Dave Love <fx@gnu.org>
parents:
diff changeset
3067 @item p
Dave Love <fx@gnu.org>
parents:
diff changeset
3068 Unprefixed group name.
Dave Love <fx@gnu.org>
parents:
diff changeset
3069 @item A
Dave Love <fx@gnu.org>
parents:
diff changeset
3070 Current article number.
Dave Love <fx@gnu.org>
parents:
diff changeset
3071 @item z
Dave Love <fx@gnu.org>
parents:
diff changeset
3072 Current article score.
Dave Love <fx@gnu.org>
parents:
diff changeset
3073 @item V
Dave Love <fx@gnu.org>
parents:
diff changeset
3074 Gnus version.
Dave Love <fx@gnu.org>
parents:
diff changeset
3075 @item U
Dave Love <fx@gnu.org>
parents:
diff changeset
3076 Number of unread articles in this group.
Dave Love <fx@gnu.org>
parents:
diff changeset
3077 @item e
Dave Love <fx@gnu.org>
parents:
diff changeset
3078 Number of unread articles in this group that aren't displayed in the
Dave Love <fx@gnu.org>
parents:
diff changeset
3079 summary buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
3080 @item Z
Dave Love <fx@gnu.org>
parents:
diff changeset
3081 A string with the number of unread and unselected articles represented
Dave Love <fx@gnu.org>
parents:
diff changeset
3082 either as @samp{<%U(+%e) more>} if there are both unread and unselected
Dave Love <fx@gnu.org>
parents:
diff changeset
3083 articles, and just as @samp{<%U more>} if there are just unread articles
Dave Love <fx@gnu.org>
parents:
diff changeset
3084 and no unselected ones.
Dave Love <fx@gnu.org>
parents:
diff changeset
3085 @item g
Dave Love <fx@gnu.org>
parents:
diff changeset
3086 Shortish group name. For instance, @samp{rec.arts.anime} will be
Dave Love <fx@gnu.org>
parents:
diff changeset
3087 shortened to @samp{r.a.anime}.
Dave Love <fx@gnu.org>
parents:
diff changeset
3088 @item S
Dave Love <fx@gnu.org>
parents:
diff changeset
3089 Subject of the current article.
Dave Love <fx@gnu.org>
parents:
diff changeset
3090 @item u
Dave Love <fx@gnu.org>
parents:
diff changeset
3091 User-defined spec (@pxref{User-Defined Specs}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3092 @item s
Dave Love <fx@gnu.org>
parents:
diff changeset
3093 Name of the current score file (@pxref{Scoring}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3094 @item d
Dave Love <fx@gnu.org>
parents:
diff changeset
3095 Number of dormant articles (@pxref{Unread Articles}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3096 @item t
Dave Love <fx@gnu.org>
parents:
diff changeset
3097 Number of ticked articles (@pxref{Unread Articles}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3098 @item r
Dave Love <fx@gnu.org>
parents:
diff changeset
3099 Number of articles that have been marked as read in this session.
Dave Love <fx@gnu.org>
parents:
diff changeset
3100 @item E
Dave Love <fx@gnu.org>
parents:
diff changeset
3101 Number of articles expunged by the score files.
Dave Love <fx@gnu.org>
parents:
diff changeset
3102 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
3103
Dave Love <fx@gnu.org>
parents:
diff changeset
3104
Dave Love <fx@gnu.org>
parents:
diff changeset
3105 @node Summary Highlighting
Dave Love <fx@gnu.org>
parents:
diff changeset
3106 @subsection Summary Highlighting
Dave Love <fx@gnu.org>
parents:
diff changeset
3107
Dave Love <fx@gnu.org>
parents:
diff changeset
3108 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
3109
Dave Love <fx@gnu.org>
parents:
diff changeset
3110 @item gnus-visual-mark-article-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
3111 @vindex gnus-visual-mark-article-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
3112 This hook is run after selecting an article. It is meant to be used for
Dave Love <fx@gnu.org>
parents:
diff changeset
3113 highlighting the article in some way. It is not run if
Dave Love <fx@gnu.org>
parents:
diff changeset
3114 @code{gnus-visual} is @code{nil}.
Dave Love <fx@gnu.org>
parents:
diff changeset
3115
Dave Love <fx@gnu.org>
parents:
diff changeset
3116 @item gnus-summary-update-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
3117 @vindex gnus-summary-update-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
3118 This hook is called when a summary line is changed. It is not run if
Dave Love <fx@gnu.org>
parents:
diff changeset
3119 @code{gnus-visual} is @code{nil}.
Dave Love <fx@gnu.org>
parents:
diff changeset
3120
Dave Love <fx@gnu.org>
parents:
diff changeset
3121 @item gnus-summary-selected-face
Dave Love <fx@gnu.org>
parents:
diff changeset
3122 @vindex gnus-summary-selected-face
Dave Love <fx@gnu.org>
parents:
diff changeset
3123 This is the face (or @dfn{font} as some people call it) used to
Dave Love <fx@gnu.org>
parents:
diff changeset
3124 highlight the current article in the summary buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
3125
Dave Love <fx@gnu.org>
parents:
diff changeset
3126 @item gnus-summary-highlight
Dave Love <fx@gnu.org>
parents:
diff changeset
3127 @vindex gnus-summary-highlight
Dave Love <fx@gnu.org>
parents:
diff changeset
3128 Summary lines are highlighted according to this variable, which is a
26290
df10644e22b5 Fix complaints from makeinfo 4.0.
Dave Love <fx@gnu.org>
parents: 25829
diff changeset
3129 list where the elements are of the format @code{(@var{form} . @var{face})}. If you
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
3130 would, for instance, like ticked articles to be italic and high-scored
Dave Love <fx@gnu.org>
parents:
diff changeset
3131 articles to be bold, you could set this variable to something like
Dave Love <fx@gnu.org>
parents:
diff changeset
3132 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
3133 (((eq mark gnus-ticked-mark) . italic)
Dave Love <fx@gnu.org>
parents:
diff changeset
3134 ((> score default) . bold))
Dave Love <fx@gnu.org>
parents:
diff changeset
3135 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
3136 As you may have guessed, if @var{FORM} returns a non-@code{nil} value,
Dave Love <fx@gnu.org>
parents:
diff changeset
3137 @var{FACE} will be applied to the line.
Dave Love <fx@gnu.org>
parents:
diff changeset
3138 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
3139
Dave Love <fx@gnu.org>
parents:
diff changeset
3140
Dave Love <fx@gnu.org>
parents:
diff changeset
3141 @node Summary Maneuvering
Dave Love <fx@gnu.org>
parents:
diff changeset
3142 @section Summary Maneuvering
Dave Love <fx@gnu.org>
parents:
diff changeset
3143 @cindex summary movement
Dave Love <fx@gnu.org>
parents:
diff changeset
3144
Dave Love <fx@gnu.org>
parents:
diff changeset
3145 All the straight movement commands understand the numeric prefix and
Dave Love <fx@gnu.org>
parents:
diff changeset
3146 behave pretty much as you'd expect.
Dave Love <fx@gnu.org>
parents:
diff changeset
3147
Dave Love <fx@gnu.org>
parents:
diff changeset
3148 None of these commands select articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
3149
Dave Love <fx@gnu.org>
parents:
diff changeset
3150 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
3151 @item G M-n
Dave Love <fx@gnu.org>
parents:
diff changeset
3152 @itemx M-n
Dave Love <fx@gnu.org>
parents:
diff changeset
3153 @kindex M-n (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3154 @kindex G M-n (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3155 @findex gnus-summary-next-unread-subject
Dave Love <fx@gnu.org>
parents:
diff changeset
3156 Go to the next summary line of an unread article
Dave Love <fx@gnu.org>
parents:
diff changeset
3157 (@code{gnus-summary-next-unread-subject}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3158
Dave Love <fx@gnu.org>
parents:
diff changeset
3159 @item G M-p
Dave Love <fx@gnu.org>
parents:
diff changeset
3160 @itemx M-p
Dave Love <fx@gnu.org>
parents:
diff changeset
3161 @kindex M-p (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3162 @kindex G M-p (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3163 @findex gnus-summary-prev-unread-subject
Dave Love <fx@gnu.org>
parents:
diff changeset
3164 Go to the previous summary line of an unread article
Dave Love <fx@gnu.org>
parents:
diff changeset
3165 (@code{gnus-summary-prev-unread-subject}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3166
Dave Love <fx@gnu.org>
parents:
diff changeset
3167 @item G j
Dave Love <fx@gnu.org>
parents:
diff changeset
3168 @itemx j
Dave Love <fx@gnu.org>
parents:
diff changeset
3169 @kindex j (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3170 @kindex G j (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3171 @findex gnus-summary-goto-article
Dave Love <fx@gnu.org>
parents:
diff changeset
3172 Ask for an article number or @code{Message-ID}, and then go to that
Dave Love <fx@gnu.org>
parents:
diff changeset
3173 article (@code{gnus-summary-goto-article}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3174
Dave Love <fx@gnu.org>
parents:
diff changeset
3175 @item G g
Dave Love <fx@gnu.org>
parents:
diff changeset
3176 @kindex G g (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3177 @findex gnus-summary-goto-subject
Dave Love <fx@gnu.org>
parents:
diff changeset
3178 Ask for an article number and then go to the summary line of that article
Dave Love <fx@gnu.org>
parents:
diff changeset
3179 without displaying the article (@code{gnus-summary-goto-subject}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3180 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
3181
Dave Love <fx@gnu.org>
parents:
diff changeset
3182 If Gnus asks you to press a key to confirm going to the next group, you
Dave Love <fx@gnu.org>
parents:
diff changeset
3183 can use the @kbd{C-n} and @kbd{C-p} keys to move around the group
Dave Love <fx@gnu.org>
parents:
diff changeset
3184 buffer, searching for the next group to read without actually returning
Dave Love <fx@gnu.org>
parents:
diff changeset
3185 to the group buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
3186
Dave Love <fx@gnu.org>
parents:
diff changeset
3187 Variables related to summary movement:
Dave Love <fx@gnu.org>
parents:
diff changeset
3188
Dave Love <fx@gnu.org>
parents:
diff changeset
3189 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
3190
Dave Love <fx@gnu.org>
parents:
diff changeset
3191 @vindex gnus-auto-select-next
Dave Love <fx@gnu.org>
parents:
diff changeset
3192 @item gnus-auto-select-next
Dave Love <fx@gnu.org>
parents:
diff changeset
3193 If you issue one of the movement commands (like @kbd{n}) and there are
Dave Love <fx@gnu.org>
parents:
diff changeset
3194 no more unread articles after the current one, Gnus will offer to go to
Dave Love <fx@gnu.org>
parents:
diff changeset
3195 the next group. If this variable is @code{t} and the next group is
Dave Love <fx@gnu.org>
parents:
diff changeset
3196 empty, Gnus will exit summary mode and return to the group buffer. If
Dave Love <fx@gnu.org>
parents:
diff changeset
3197 this variable is neither @code{t} nor @code{nil}, Gnus will select the
Dave Love <fx@gnu.org>
parents:
diff changeset
3198 next group, no matter whether it has any unread articles or not. As a
Dave Love <fx@gnu.org>
parents:
diff changeset
3199 special case, if this variable is @code{quietly}, Gnus will select the
Dave Love <fx@gnu.org>
parents:
diff changeset
3200 next group without asking for confirmation. If this variable is
Dave Love <fx@gnu.org>
parents:
diff changeset
3201 @code{almost-quietly}, the same will happen only if you are located on
Dave Love <fx@gnu.org>
parents:
diff changeset
3202 the last article in the group. Finally, if this variable is
Dave Love <fx@gnu.org>
parents:
diff changeset
3203 @code{slightly-quietly}, the @kbd{Z n} command will go to the next group
Dave Love <fx@gnu.org>
parents:
diff changeset
3204 without confirmation. Also @pxref{Group Levels}.
Dave Love <fx@gnu.org>
parents:
diff changeset
3205
Dave Love <fx@gnu.org>
parents:
diff changeset
3206 @item gnus-auto-select-same
Dave Love <fx@gnu.org>
parents:
diff changeset
3207 @vindex gnus-auto-select-same
Dave Love <fx@gnu.org>
parents:
diff changeset
3208 If non-@code{nil}, all the movement commands will try to go to the next
Dave Love <fx@gnu.org>
parents:
diff changeset
3209 article with the same subject as the current. (@dfn{Same} here might
Dave Love <fx@gnu.org>
parents:
diff changeset
3210 mean @dfn{roughly equal}. See @code{gnus-summary-gather-subject-limit}
Dave Love <fx@gnu.org>
parents:
diff changeset
3211 for details (@pxref{Customizing Threading}).) If there are no more
Dave Love <fx@gnu.org>
parents:
diff changeset
3212 articles with the same subject, go to the first unread article.
Dave Love <fx@gnu.org>
parents:
diff changeset
3213
Dave Love <fx@gnu.org>
parents:
diff changeset
3214 This variable is not particularly useful if you use a threaded display.
Dave Love <fx@gnu.org>
parents:
diff changeset
3215
Dave Love <fx@gnu.org>
parents:
diff changeset
3216 @item gnus-summary-check-current
Dave Love <fx@gnu.org>
parents:
diff changeset
3217 @vindex gnus-summary-check-current
Dave Love <fx@gnu.org>
parents:
diff changeset
3218 If non-@code{nil}, all the ``unread'' movement commands will not proceed
Dave Love <fx@gnu.org>
parents:
diff changeset
3219 to the next (or previous) article if the current article is unread.
Dave Love <fx@gnu.org>
parents:
diff changeset
3220 Instead, they will choose the current article.
Dave Love <fx@gnu.org>
parents:
diff changeset
3221
Dave Love <fx@gnu.org>
parents:
diff changeset
3222 @item gnus-auto-center-summary
Dave Love <fx@gnu.org>
parents:
diff changeset
3223 @vindex gnus-auto-center-summary
Dave Love <fx@gnu.org>
parents:
diff changeset
3224 If non-@code{nil}, Gnus will keep the point in the summary buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
3225 centered at all times. This makes things quite tidy, but if you have a
Dave Love <fx@gnu.org>
parents:
diff changeset
3226 slow network connection, or simply do not like this un-Emacsism, you can
Dave Love <fx@gnu.org>
parents:
diff changeset
3227 set this variable to @code{nil} to get the normal Emacs scrolling
Dave Love <fx@gnu.org>
parents:
diff changeset
3228 action. This will also inhibit horizontal re-centering of the summary
Dave Love <fx@gnu.org>
parents:
diff changeset
3229 buffer, which might make it more inconvenient to read extremely long
Dave Love <fx@gnu.org>
parents:
diff changeset
3230 threads.
Dave Love <fx@gnu.org>
parents:
diff changeset
3231
Dave Love <fx@gnu.org>
parents:
diff changeset
3232 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
3233
Dave Love <fx@gnu.org>
parents:
diff changeset
3234
Dave Love <fx@gnu.org>
parents:
diff changeset
3235 @node Choosing Articles
Dave Love <fx@gnu.org>
parents:
diff changeset
3236 @section Choosing Articles
Dave Love <fx@gnu.org>
parents:
diff changeset
3237 @cindex selecting articles
Dave Love <fx@gnu.org>
parents:
diff changeset
3238
Dave Love <fx@gnu.org>
parents:
diff changeset
3239 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
3240 * Choosing Commands:: Commands for choosing articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
3241 * Choosing Variables:: Variables that influence these commands.
Dave Love <fx@gnu.org>
parents:
diff changeset
3242 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
3243
Dave Love <fx@gnu.org>
parents:
diff changeset
3244
Dave Love <fx@gnu.org>
parents:
diff changeset
3245 @node Choosing Commands
Dave Love <fx@gnu.org>
parents:
diff changeset
3246 @subsection Choosing Commands
Dave Love <fx@gnu.org>
parents:
diff changeset
3247
Dave Love <fx@gnu.org>
parents:
diff changeset
3248 None of the following movement commands understand the numeric prefix,
Dave Love <fx@gnu.org>
parents:
diff changeset
3249 and they all select and display an article.
Dave Love <fx@gnu.org>
parents:
diff changeset
3250
Dave Love <fx@gnu.org>
parents:
diff changeset
3251 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
3252 @item SPACE
Dave Love <fx@gnu.org>
parents:
diff changeset
3253 @kindex SPACE (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3254 @findex gnus-summary-next-page
Dave Love <fx@gnu.org>
parents:
diff changeset
3255 Select the current article, or, if that one's read already, the next
Dave Love <fx@gnu.org>
parents:
diff changeset
3256 unread article (@code{gnus-summary-next-page}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3257
Dave Love <fx@gnu.org>
parents:
diff changeset
3258 @item G n
Dave Love <fx@gnu.org>
parents:
diff changeset
3259 @itemx n
Dave Love <fx@gnu.org>
parents:
diff changeset
3260 @kindex n (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3261 @kindex G n (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3262 @findex gnus-summary-next-unread-article
Dave Love <fx@gnu.org>
parents:
diff changeset
3263 @c @icon{gnus-summary-next-unread}
Dave Love <fx@gnu.org>
parents:
diff changeset
3264 Go to next unread article (@code{gnus-summary-next-unread-article}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3265
Dave Love <fx@gnu.org>
parents:
diff changeset
3266 @item G p
Dave Love <fx@gnu.org>
parents:
diff changeset
3267 @itemx p
Dave Love <fx@gnu.org>
parents:
diff changeset
3268 @kindex p (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3269 @findex gnus-summary-prev-unread-article
Dave Love <fx@gnu.org>
parents:
diff changeset
3270 @c @icon{gnus-summary-prev-unread}
Dave Love <fx@gnu.org>
parents:
diff changeset
3271 Go to previous unread article (@code{gnus-summary-prev-unread-article}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3272
Dave Love <fx@gnu.org>
parents:
diff changeset
3273 @item G N
Dave Love <fx@gnu.org>
parents:
diff changeset
3274 @itemx N
Dave Love <fx@gnu.org>
parents:
diff changeset
3275 @kindex N (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3276 @kindex G N (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3277 @findex gnus-summary-next-article
Dave Love <fx@gnu.org>
parents:
diff changeset
3278 Go to the next article (@code{gnus-summary-next-article}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3279
Dave Love <fx@gnu.org>
parents:
diff changeset
3280 @item G P
Dave Love <fx@gnu.org>
parents:
diff changeset
3281 @itemx P
Dave Love <fx@gnu.org>
parents:
diff changeset
3282 @kindex P (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3283 @kindex G P (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3284 @findex gnus-summary-prev-article
Dave Love <fx@gnu.org>
parents:
diff changeset
3285 Go to the previous article (@code{gnus-summary-prev-article}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3286
Dave Love <fx@gnu.org>
parents:
diff changeset
3287 @item G C-n
Dave Love <fx@gnu.org>
parents:
diff changeset
3288 @kindex G C-n (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3289 @findex gnus-summary-next-same-subject
Dave Love <fx@gnu.org>
parents:
diff changeset
3290 Go to the next article with the same subject
Dave Love <fx@gnu.org>
parents:
diff changeset
3291 (@code{gnus-summary-next-same-subject}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3292
Dave Love <fx@gnu.org>
parents:
diff changeset
3293 @item G C-p
Dave Love <fx@gnu.org>
parents:
diff changeset
3294 @kindex G C-p (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3295 @findex gnus-summary-prev-same-subject
Dave Love <fx@gnu.org>
parents:
diff changeset
3296 Go to the previous article with the same subject
Dave Love <fx@gnu.org>
parents:
diff changeset
3297 (@code{gnus-summary-prev-same-subject}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3298
Dave Love <fx@gnu.org>
parents:
diff changeset
3299 @item G f
Dave Love <fx@gnu.org>
parents:
diff changeset
3300 @itemx .
Dave Love <fx@gnu.org>
parents:
diff changeset
3301 @kindex G f (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3302 @kindex . (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3303 @findex gnus-summary-first-unread-article
Dave Love <fx@gnu.org>
parents:
diff changeset
3304 Go to the first unread article
Dave Love <fx@gnu.org>
parents:
diff changeset
3305 (@code{gnus-summary-first-unread-article}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3306
Dave Love <fx@gnu.org>
parents:
diff changeset
3307 @item G b
Dave Love <fx@gnu.org>
parents:
diff changeset
3308 @itemx ,
Dave Love <fx@gnu.org>
parents:
diff changeset
3309 @kindex G b (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3310 @kindex , (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3311 @findex gnus-summary-best-unread-article
Dave Love <fx@gnu.org>
parents:
diff changeset
3312 Go to the article with the highest score
Dave Love <fx@gnu.org>
parents:
diff changeset
3313 (@code{gnus-summary-best-unread-article}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3314
Dave Love <fx@gnu.org>
parents:
diff changeset
3315 @item G l
Dave Love <fx@gnu.org>
parents:
diff changeset
3316 @itemx l
Dave Love <fx@gnu.org>
parents:
diff changeset
3317 @kindex l (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3318 @kindex G l (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3319 @findex gnus-summary-goto-last-article
Dave Love <fx@gnu.org>
parents:
diff changeset
3320 Go to the previous article read (@code{gnus-summary-goto-last-article}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3321
Dave Love <fx@gnu.org>
parents:
diff changeset
3322 @item G o
Dave Love <fx@gnu.org>
parents:
diff changeset
3323 @kindex G o (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3324 @findex gnus-summary-pop-article
Dave Love <fx@gnu.org>
parents:
diff changeset
3325 @cindex history
Dave Love <fx@gnu.org>
parents:
diff changeset
3326 @cindex article history
Dave Love <fx@gnu.org>
parents:
diff changeset
3327 Pop an article off the summary history and go to this article
Dave Love <fx@gnu.org>
parents:
diff changeset
3328 (@code{gnus-summary-pop-article}). This command differs from the
Dave Love <fx@gnu.org>
parents:
diff changeset
3329 command above in that you can pop as many previous articles off the
Dave Love <fx@gnu.org>
parents:
diff changeset
3330 history as you like, while @kbd{l} toggles the two last read articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
3331 For a somewhat related issue (if you use these commands a lot),
Dave Love <fx@gnu.org>
parents:
diff changeset
3332 @pxref{Article Backlog}.
Dave Love <fx@gnu.org>
parents:
diff changeset
3333 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
3334
Dave Love <fx@gnu.org>
parents:
diff changeset
3335
Dave Love <fx@gnu.org>
parents:
diff changeset
3336 @node Choosing Variables
Dave Love <fx@gnu.org>
parents:
diff changeset
3337 @subsection Choosing Variables
Dave Love <fx@gnu.org>
parents:
diff changeset
3338
Dave Love <fx@gnu.org>
parents:
diff changeset
3339 Some variables relevant for moving and selecting articles:
Dave Love <fx@gnu.org>
parents:
diff changeset
3340
Dave Love <fx@gnu.org>
parents:
diff changeset
3341 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
3342 @item gnus-auto-extend-newsgroup
Dave Love <fx@gnu.org>
parents:
diff changeset
3343 @vindex gnus-auto-extend-newsgroup
Dave Love <fx@gnu.org>
parents:
diff changeset
3344 All the movement commands will try to go to the previous (or next)
Dave Love <fx@gnu.org>
parents:
diff changeset
3345 article, even if that article isn't displayed in the Summary buffer if
Dave Love <fx@gnu.org>
parents:
diff changeset
3346 this variable is non-@code{nil}. Gnus will then fetch the article from
Dave Love <fx@gnu.org>
parents:
diff changeset
3347 the server and display it in the article buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
3348
Dave Love <fx@gnu.org>
parents:
diff changeset
3349 @item gnus-select-article-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
3350 @vindex gnus-select-article-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
3351 This hook is called whenever an article is selected. By default it
Dave Love <fx@gnu.org>
parents:
diff changeset
3352 exposes any threads hidden under the selected article.
Dave Love <fx@gnu.org>
parents:
diff changeset
3353
Dave Love <fx@gnu.org>
parents:
diff changeset
3354 @item gnus-mark-article-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
3355 @vindex gnus-mark-article-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
3356 @findex gnus-summary-mark-unread-as-read
Dave Love <fx@gnu.org>
parents:
diff changeset
3357 @findex gnus-summary-mark-read-and-unread-as-read
Dave Love <fx@gnu.org>
parents:
diff changeset
3358 @findex gnus-unread-mark
Dave Love <fx@gnu.org>
parents:
diff changeset
3359 This hook is called whenever an article is selected. It is intended to
Dave Love <fx@gnu.org>
parents:
diff changeset
3360 be used for marking articles as read. The default value is
Dave Love <fx@gnu.org>
parents:
diff changeset
3361 @code{gnus-summary-mark-read-and-unread-as-read}, and will change the
Dave Love <fx@gnu.org>
parents:
diff changeset
3362 mark of almost any article you read to @code{gnus-unread-mark}. The
Dave Love <fx@gnu.org>
parents:
diff changeset
3363 only articles not affected by this function are ticked, dormant, and
Dave Love <fx@gnu.org>
parents:
diff changeset
3364 expirable articles. If you'd instead like to just have unread articles
Dave Love <fx@gnu.org>
parents:
diff changeset
3365 marked as read, you can use @code{gnus-summary-mark-unread-as-read}
Dave Love <fx@gnu.org>
parents:
diff changeset
3366 instead. It will leave marks like @code{gnus-low-score-mark},
Dave Love <fx@gnu.org>
parents:
diff changeset
3367 @code{gnus-del-mark} (and so on) alone.
Dave Love <fx@gnu.org>
parents:
diff changeset
3368
Dave Love <fx@gnu.org>
parents:
diff changeset
3369 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
3370
Dave Love <fx@gnu.org>
parents:
diff changeset
3371
Dave Love <fx@gnu.org>
parents:
diff changeset
3372 @node Paging the Article
Dave Love <fx@gnu.org>
parents:
diff changeset
3373 @section Scrolling the Article
Dave Love <fx@gnu.org>
parents:
diff changeset
3374 @cindex article scrolling
Dave Love <fx@gnu.org>
parents:
diff changeset
3375
Dave Love <fx@gnu.org>
parents:
diff changeset
3376 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
3377
Dave Love <fx@gnu.org>
parents:
diff changeset
3378 @item SPACE
Dave Love <fx@gnu.org>
parents:
diff changeset
3379 @kindex SPACE (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3380 @findex gnus-summary-next-page
Dave Love <fx@gnu.org>
parents:
diff changeset
3381 Pressing @kbd{SPACE} will scroll the current article forward one page,
Dave Love <fx@gnu.org>
parents:
diff changeset
3382 or, if you have come to the end of the current article, will choose the
Dave Love <fx@gnu.org>
parents:
diff changeset
3383 next article (@code{gnus-summary-next-page}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3384
Dave Love <fx@gnu.org>
parents:
diff changeset
3385 @item DEL
Dave Love <fx@gnu.org>
parents:
diff changeset
3386 @kindex DEL (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3387 @findex gnus-summary-prev-page
Dave Love <fx@gnu.org>
parents:
diff changeset
3388 Scroll the current article back one page (@code{gnus-summary-prev-page}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3389
Dave Love <fx@gnu.org>
parents:
diff changeset
3390 @item RET
Dave Love <fx@gnu.org>
parents:
diff changeset
3391 @kindex RET (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3392 @findex gnus-summary-scroll-up
Dave Love <fx@gnu.org>
parents:
diff changeset
3393 Scroll the current article one line forward
Dave Love <fx@gnu.org>
parents:
diff changeset
3394 (@code{gnus-summary-scroll-up}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3395
Dave Love <fx@gnu.org>
parents:
diff changeset
3396 @item M-RET
Dave Love <fx@gnu.org>
parents:
diff changeset
3397 @kindex M-RET (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3398 @findex gnus-summary-scroll-down
Dave Love <fx@gnu.org>
parents:
diff changeset
3399 Scroll the current article one line backward
Dave Love <fx@gnu.org>
parents:
diff changeset
3400 (@code{gnus-summary-scroll-down}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3401
Dave Love <fx@gnu.org>
parents:
diff changeset
3402 @item A g
Dave Love <fx@gnu.org>
parents:
diff changeset
3403 @itemx g
Dave Love <fx@gnu.org>
parents:
diff changeset
3404 @kindex A g (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3405 @kindex g (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3406 @findex gnus-summary-show-article
Dave Love <fx@gnu.org>
parents:
diff changeset
3407 (Re)fetch the current article (@code{gnus-summary-show-article}). If
Dave Love <fx@gnu.org>
parents:
diff changeset
3408 given a prefix, fetch the current article, but don't run any of the
Dave Love <fx@gnu.org>
parents:
diff changeset
3409 article treatment functions. This will give you a ``raw'' article, just
Dave Love <fx@gnu.org>
parents:
diff changeset
3410 the way it came from the server.
Dave Love <fx@gnu.org>
parents:
diff changeset
3411
Dave Love <fx@gnu.org>
parents:
diff changeset
3412 @item A <
Dave Love <fx@gnu.org>
parents:
diff changeset
3413 @itemx <
Dave Love <fx@gnu.org>
parents:
diff changeset
3414 @kindex < (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3415 @kindex A < (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3416 @findex gnus-summary-beginning-of-article
Dave Love <fx@gnu.org>
parents:
diff changeset
3417 Scroll to the beginning of the article
Dave Love <fx@gnu.org>
parents:
diff changeset
3418 (@code{gnus-summary-beginning-of-article}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3419
Dave Love <fx@gnu.org>
parents:
diff changeset
3420 @item A >
Dave Love <fx@gnu.org>
parents:
diff changeset
3421 @itemx >
Dave Love <fx@gnu.org>
parents:
diff changeset
3422 @kindex > (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3423 @kindex A > (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3424 @findex gnus-summary-end-of-article
Dave Love <fx@gnu.org>
parents:
diff changeset
3425 Scroll to the end of the article (@code{gnus-summary-end-of-article}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3426
Dave Love <fx@gnu.org>
parents:
diff changeset
3427 @item A s
Dave Love <fx@gnu.org>
parents:
diff changeset
3428 @itemx s
Dave Love <fx@gnu.org>
parents:
diff changeset
3429 @kindex A s (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3430 @kindex s (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3431 @findex gnus-summary-isearch-article
Dave Love <fx@gnu.org>
parents:
diff changeset
3432 Perform an isearch in the article buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
3433 (@code{gnus-summary-isearch-article}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3434
Dave Love <fx@gnu.org>
parents:
diff changeset
3435 @item h
Dave Love <fx@gnu.org>
parents:
diff changeset
3436 @kindex h (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3437 @findex gnus-summary-select-article-buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
3438 Select the article buffer (@code{gnus-summary-select-article-buffer}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3439
Dave Love <fx@gnu.org>
parents:
diff changeset
3440 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
3441
Dave Love <fx@gnu.org>
parents:
diff changeset
3442
Dave Love <fx@gnu.org>
parents:
diff changeset
3443 @node Reply Followup and Post
Dave Love <fx@gnu.org>
parents:
diff changeset
3444 @section Reply, Followup and Post
Dave Love <fx@gnu.org>
parents:
diff changeset
3445
Dave Love <fx@gnu.org>
parents:
diff changeset
3446 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
3447 * Summary Mail Commands:: Sending mail.
Dave Love <fx@gnu.org>
parents:
diff changeset
3448 * Summary Post Commands:: Sending news.
Dave Love <fx@gnu.org>
parents:
diff changeset
3449 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
3450
Dave Love <fx@gnu.org>
parents:
diff changeset
3451
Dave Love <fx@gnu.org>
parents:
diff changeset
3452 @node Summary Mail Commands
Dave Love <fx@gnu.org>
parents:
diff changeset
3453 @subsection Summary Mail Commands
Dave Love <fx@gnu.org>
parents:
diff changeset
3454 @cindex mail
Dave Love <fx@gnu.org>
parents:
diff changeset
3455 @cindex composing mail
Dave Love <fx@gnu.org>
parents:
diff changeset
3456
Dave Love <fx@gnu.org>
parents:
diff changeset
3457 Commands for composing a mail message:
Dave Love <fx@gnu.org>
parents:
diff changeset
3458
Dave Love <fx@gnu.org>
parents:
diff changeset
3459 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
3460
Dave Love <fx@gnu.org>
parents:
diff changeset
3461 @item S r
Dave Love <fx@gnu.org>
parents:
diff changeset
3462 @itemx r
Dave Love <fx@gnu.org>
parents:
diff changeset
3463 @kindex S r (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3464 @kindex r (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3465 @findex gnus-summary-reply
Dave Love <fx@gnu.org>
parents:
diff changeset
3466 @c @icon{gnus-summary-mail-reply}
Dave Love <fx@gnu.org>
parents:
diff changeset
3467 @c @icon{gnus-summary-reply}
Dave Love <fx@gnu.org>
parents:
diff changeset
3468 Mail a reply to the author of the current article
Dave Love <fx@gnu.org>
parents:
diff changeset
3469 (@code{gnus-summary-reply}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3470
Dave Love <fx@gnu.org>
parents:
diff changeset
3471 @item S R
Dave Love <fx@gnu.org>
parents:
diff changeset
3472 @itemx R
Dave Love <fx@gnu.org>
parents:
diff changeset
3473 @kindex R (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3474 @kindex S R (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3475 @findex gnus-summary-reply-with-original
Dave Love <fx@gnu.org>
parents:
diff changeset
3476 @c @icon{gnus-summary-reply-with-original}
Dave Love <fx@gnu.org>
parents:
diff changeset
3477 Mail a reply to the author of the current article and include the
Dave Love <fx@gnu.org>
parents:
diff changeset
3478 original message (@code{gnus-summary-reply-with-original}). This
Dave Love <fx@gnu.org>
parents:
diff changeset
3479 command uses the process/prefix convention.
Dave Love <fx@gnu.org>
parents:
diff changeset
3480
Dave Love <fx@gnu.org>
parents:
diff changeset
3481 @item S w
Dave Love <fx@gnu.org>
parents:
diff changeset
3482 @kindex S w (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3483 @findex gnus-summary-wide-reply
Dave Love <fx@gnu.org>
parents:
diff changeset
3484 Mail a wide reply to the author of the current article
Dave Love <fx@gnu.org>
parents:
diff changeset
3485 (@code{gnus-summary-wide-reply}). A @dfn{wide reply} is a reply that
Dave Love <fx@gnu.org>
parents:
diff changeset
3486 goes out to all people listed in the @code{To}, @code{From} (or
Dave Love <fx@gnu.org>
parents:
diff changeset
3487 @code{Reply-to}) and @code{Cc} headers.
Dave Love <fx@gnu.org>
parents:
diff changeset
3488
Dave Love <fx@gnu.org>
parents:
diff changeset
3489 @item S W
Dave Love <fx@gnu.org>
parents:
diff changeset
3490 @kindex S W (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3491 @findex gnus-summary-wide-reply-with-original
Dave Love <fx@gnu.org>
parents:
diff changeset
3492 Mail a wide reply to the current article and include the original
Dave Love <fx@gnu.org>
parents:
diff changeset
3493 message (@code{gnus-summary-reply-with-original}). This command uses
Dave Love <fx@gnu.org>
parents:
diff changeset
3494 the process/prefix convention.
Dave Love <fx@gnu.org>
parents:
diff changeset
3495
Dave Love <fx@gnu.org>
parents:
diff changeset
3496 @item S o m
Dave Love <fx@gnu.org>
parents:
diff changeset
3497 @kindex S o m (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3498 @findex gnus-summary-mail-forward
Dave Love <fx@gnu.org>
parents:
diff changeset
3499 @c @icon{gnus-summary-mail-forward}
Dave Love <fx@gnu.org>
parents:
diff changeset
3500 Forward the current article to some other person
Dave Love <fx@gnu.org>
parents:
diff changeset
3501 (@code{gnus-summary-mail-forward}). If given a prefix, include the full
Dave Love <fx@gnu.org>
parents:
diff changeset
3502 headers of the forwarded article.
Dave Love <fx@gnu.org>
parents:
diff changeset
3503
Dave Love <fx@gnu.org>
parents:
diff changeset
3504 @item S m
Dave Love <fx@gnu.org>
parents:
diff changeset
3505 @itemx m
Dave Love <fx@gnu.org>
parents:
diff changeset
3506 @kindex m (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3507 @kindex S m (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3508 @findex gnus-summary-mail-other-window
Dave Love <fx@gnu.org>
parents:
diff changeset
3509 @c @icon{gnus-summary-mail-originate}
Dave Love <fx@gnu.org>
parents:
diff changeset
3510 Send a mail to some other person
Dave Love <fx@gnu.org>
parents:
diff changeset
3511 (@code{gnus-summary-mail-other-window}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3512
Dave Love <fx@gnu.org>
parents:
diff changeset
3513 @item S D b
Dave Love <fx@gnu.org>
parents:
diff changeset
3514 @kindex S D b (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3515 @findex gnus-summary-resend-bounced-mail
Dave Love <fx@gnu.org>
parents:
diff changeset
3516 @cindex bouncing mail
Dave Love <fx@gnu.org>
parents:
diff changeset
3517 If you have sent a mail, but the mail was bounced back to you for some
Dave Love <fx@gnu.org>
parents:
diff changeset
3518 reason (wrong address, transient failure), you can use this command to
Dave Love <fx@gnu.org>
parents:
diff changeset
3519 resend that bounced mail (@code{gnus-summary-resend-bounced-mail}). You
Dave Love <fx@gnu.org>
parents:
diff changeset
3520 will be popped into a mail buffer where you can edit the headers before
Dave Love <fx@gnu.org>
parents:
diff changeset
3521 sending the mail off again. If you give a prefix to this command, and
Dave Love <fx@gnu.org>
parents:
diff changeset
3522 the bounced mail is a reply to some other mail, Gnus will try to fetch
Dave Love <fx@gnu.org>
parents:
diff changeset
3523 that mail and display it for easy perusal of its headers. This might
Dave Love <fx@gnu.org>
parents:
diff changeset
3524 very well fail, though.
Dave Love <fx@gnu.org>
parents:
diff changeset
3525
Dave Love <fx@gnu.org>
parents:
diff changeset
3526 @item S D r
Dave Love <fx@gnu.org>
parents:
diff changeset
3527 @kindex S D r (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3528 @findex gnus-summary-resend-message
Dave Love <fx@gnu.org>
parents:
diff changeset
3529 Not to be confused with the previous command,
Dave Love <fx@gnu.org>
parents:
diff changeset
3530 @code{gnus-summary-resend-message} will prompt you for an address to
Dave Love <fx@gnu.org>
parents:
diff changeset
3531 send the current message off to, and then send it to that place. The
Dave Love <fx@gnu.org>
parents:
diff changeset
3532 headers of the message won't be altered---but lots of headers that say
Dave Love <fx@gnu.org>
parents:
diff changeset
3533 @code{Resent-To}, @code{Resent-From} and so on will be added. This
Dave Love <fx@gnu.org>
parents:
diff changeset
3534 means that you actually send a mail to someone that has a @code{To}
Dave Love <fx@gnu.org>
parents:
diff changeset
3535 header that (probably) points to yourself. This will confuse people.
Dave Love <fx@gnu.org>
parents:
diff changeset
3536 So, natcherly you'll only do that if you're really eVIl.
Dave Love <fx@gnu.org>
parents:
diff changeset
3537
Dave Love <fx@gnu.org>
parents:
diff changeset
3538 This command is mainly used if you have several accounts and want to
Dave Love <fx@gnu.org>
parents:
diff changeset
3539 ship a mail to a different account of yours. (If you're both
Dave Love <fx@gnu.org>
parents:
diff changeset
3540 @code{root} and @code{postmaster} and get a mail for @code{postmaster}
Dave Love <fx@gnu.org>
parents:
diff changeset
3541 to the @code{root} account, you may want to resend it to
Dave Love <fx@gnu.org>
parents:
diff changeset
3542 @code{postmaster}. Ordnung muß sein!
Dave Love <fx@gnu.org>
parents:
diff changeset
3543
Dave Love <fx@gnu.org>
parents:
diff changeset
3544 This command understands the process/prefix convention
Dave Love <fx@gnu.org>
parents:
diff changeset
3545 (@pxref{Process/Prefix}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3546
Dave Love <fx@gnu.org>
parents:
diff changeset
3547 @item S O m
Dave Love <fx@gnu.org>
parents:
diff changeset
3548 @kindex S O m (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3549 @findex gnus-uu-digest-mail-forward
Dave Love <fx@gnu.org>
parents:
diff changeset
3550 Digest the current series (@pxref{Decoding Articles}) and forward the
Dave Love <fx@gnu.org>
parents:
diff changeset
3551 result using mail (@code{gnus-uu-digest-mail-forward}). This command
Dave Love <fx@gnu.org>
parents:
diff changeset
3552 uses the process/prefix convention (@pxref{Process/Prefix}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3553
Dave Love <fx@gnu.org>
parents:
diff changeset
3554 @item S M-c
Dave Love <fx@gnu.org>
parents:
diff changeset
3555 @kindex S M-c (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3556 @findex gnus-summary-mail-crosspost-complaint
Dave Love <fx@gnu.org>
parents:
diff changeset
3557 @cindex crossposting
Dave Love <fx@gnu.org>
parents:
diff changeset
3558 @cindex excessive crossposting
Dave Love <fx@gnu.org>
parents:
diff changeset
3559 Send a complaint about excessive crossposting to the author of the
Dave Love <fx@gnu.org>
parents:
diff changeset
3560 current article (@code{gnus-summary-mail-crosspost-complaint}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3561
Dave Love <fx@gnu.org>
parents:
diff changeset
3562 @findex gnus-crosspost-complaint
Dave Love <fx@gnu.org>
parents:
diff changeset
3563 This command is provided as a way to fight back against the current
Dave Love <fx@gnu.org>
parents:
diff changeset
3564 crossposting pandemic that's sweeping Usenet. It will compose a reply
Dave Love <fx@gnu.org>
parents:
diff changeset
3565 using the @code{gnus-crosspost-complaint} variable as a preamble. This
Dave Love <fx@gnu.org>
parents:
diff changeset
3566 command understands the process/prefix convention
Dave Love <fx@gnu.org>
parents:
diff changeset
3567 (@pxref{Process/Prefix}) and will prompt you before sending each mail.
Dave Love <fx@gnu.org>
parents:
diff changeset
3568
Dave Love <fx@gnu.org>
parents:
diff changeset
3569 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
3570
Dave Love <fx@gnu.org>
parents:
diff changeset
3571 Also @pxref{(message)Header Commands} for more information.
Dave Love <fx@gnu.org>
parents:
diff changeset
3572
Dave Love <fx@gnu.org>
parents:
diff changeset
3573
Dave Love <fx@gnu.org>
parents:
diff changeset
3574 @node Summary Post Commands
Dave Love <fx@gnu.org>
parents:
diff changeset
3575 @subsection Summary Post Commands
Dave Love <fx@gnu.org>
parents:
diff changeset
3576 @cindex post
Dave Love <fx@gnu.org>
parents:
diff changeset
3577 @cindex composing news
Dave Love <fx@gnu.org>
parents:
diff changeset
3578
Dave Love <fx@gnu.org>
parents:
diff changeset
3579 Commands for posting a news article:
Dave Love <fx@gnu.org>
parents:
diff changeset
3580
Dave Love <fx@gnu.org>
parents:
diff changeset
3581 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
3582 @item S p
Dave Love <fx@gnu.org>
parents:
diff changeset
3583 @itemx a
Dave Love <fx@gnu.org>
parents:
diff changeset
3584 @kindex a (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3585 @kindex S p (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3586 @findex gnus-summary-post-news
Dave Love <fx@gnu.org>
parents:
diff changeset
3587 @c @icon{gnus-summary-post-news}
Dave Love <fx@gnu.org>
parents:
diff changeset
3588 Post an article to the current group
Dave Love <fx@gnu.org>
parents:
diff changeset
3589 (@code{gnus-summary-post-news}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3590
Dave Love <fx@gnu.org>
parents:
diff changeset
3591 @item S f
Dave Love <fx@gnu.org>
parents:
diff changeset
3592 @itemx f
Dave Love <fx@gnu.org>
parents:
diff changeset
3593 @kindex f (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3594 @kindex S f (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3595 @findex gnus-summary-followup
Dave Love <fx@gnu.org>
parents:
diff changeset
3596 @c @icon{gnus-summary-followup}
Dave Love <fx@gnu.org>
parents:
diff changeset
3597 Post a followup to the current article (@code{gnus-summary-followup}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3598
Dave Love <fx@gnu.org>
parents:
diff changeset
3599 @item S F
Dave Love <fx@gnu.org>
parents:
diff changeset
3600 @itemx F
Dave Love <fx@gnu.org>
parents:
diff changeset
3601 @kindex S F (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3602 @kindex F (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3603 @c @icon{gnus-summary-followup-with-original}
Dave Love <fx@gnu.org>
parents:
diff changeset
3604 @findex gnus-summary-followup-with-original
Dave Love <fx@gnu.org>
parents:
diff changeset
3605 Post a followup to the current article and include the original message
Dave Love <fx@gnu.org>
parents:
diff changeset
3606 (@code{gnus-summary-followup-with-original}). This command uses the
Dave Love <fx@gnu.org>
parents:
diff changeset
3607 process/prefix convention.
Dave Love <fx@gnu.org>
parents:
diff changeset
3608
Dave Love <fx@gnu.org>
parents:
diff changeset
3609 @item S n
Dave Love <fx@gnu.org>
parents:
diff changeset
3610 @kindex S n (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3611 @findex gnus-summary-followup-to-mail
Dave Love <fx@gnu.org>
parents:
diff changeset
3612 Post a followup to the current article via news, even if you got the
Dave Love <fx@gnu.org>
parents:
diff changeset
3613 message through mail (@code{gnus-summary-followup-to-mail}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3614
Dave Love <fx@gnu.org>
parents:
diff changeset
3615 @item S N
Dave Love <fx@gnu.org>
parents:
diff changeset
3616 @kindex S N (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3617 @findex gnus-summary-followup-to-mail-with-original
Dave Love <fx@gnu.org>
parents:
diff changeset
3618 Post a followup to the current article via news, even if you got the
Dave Love <fx@gnu.org>
parents:
diff changeset
3619 message through mail and include the original message
Dave Love <fx@gnu.org>
parents:
diff changeset
3620 (@code{gnus-summary-followup-to-mail-with-original}). This command uses
Dave Love <fx@gnu.org>
parents:
diff changeset
3621 the process/prefix convention.
Dave Love <fx@gnu.org>
parents:
diff changeset
3622
Dave Love <fx@gnu.org>
parents:
diff changeset
3623 @item S o p
Dave Love <fx@gnu.org>
parents:
diff changeset
3624 @kindex S o p (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3625 @findex gnus-summary-post-forward
Dave Love <fx@gnu.org>
parents:
diff changeset
3626 Forward the current article to a newsgroup
Dave Love <fx@gnu.org>
parents:
diff changeset
3627 (@code{gnus-summary-post-forward}). If given a prefix, include the full
Dave Love <fx@gnu.org>
parents:
diff changeset
3628 headers of the forwarded article.
Dave Love <fx@gnu.org>
parents:
diff changeset
3629
Dave Love <fx@gnu.org>
parents:
diff changeset
3630 @item S O p
Dave Love <fx@gnu.org>
parents:
diff changeset
3631 @kindex S O p (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3632 @findex gnus-uu-digest-post-forward
Dave Love <fx@gnu.org>
parents:
diff changeset
3633 @cindex digests
Dave Love <fx@gnu.org>
parents:
diff changeset
3634 @cindex making digests
Dave Love <fx@gnu.org>
parents:
diff changeset
3635 Digest the current series and forward the result to a newsgroup
Dave Love <fx@gnu.org>
parents:
diff changeset
3636 (@code{gnus-uu-digest-mail-forward}). This command uses the
Dave Love <fx@gnu.org>
parents:
diff changeset
3637 process/prefix convention.
Dave Love <fx@gnu.org>
parents:
diff changeset
3638
Dave Love <fx@gnu.org>
parents:
diff changeset
3639 @item S u
Dave Love <fx@gnu.org>
parents:
diff changeset
3640 @kindex S u (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3641 @findex gnus-uu-post-news
Dave Love <fx@gnu.org>
parents:
diff changeset
3642 @c @icon{gnus-uu-post-news}
Dave Love <fx@gnu.org>
parents:
diff changeset
3643 Uuencode a file, split it into parts, and post it as a series
Dave Love <fx@gnu.org>
parents:
diff changeset
3644 (@code{gnus-uu-post-news}). (@pxref{Uuencoding and Posting}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3645 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
3646
Dave Love <fx@gnu.org>
parents:
diff changeset
3647 Also @pxref{(message)Header Commands} for more information.
Dave Love <fx@gnu.org>
parents:
diff changeset
3648
Dave Love <fx@gnu.org>
parents:
diff changeset
3649
Dave Love <fx@gnu.org>
parents:
diff changeset
3650 @node Canceling and Superseding
Dave Love <fx@gnu.org>
parents:
diff changeset
3651 @section Canceling Articles
Dave Love <fx@gnu.org>
parents:
diff changeset
3652 @cindex canceling articles
Dave Love <fx@gnu.org>
parents:
diff changeset
3653 @cindex superseding articles
Dave Love <fx@gnu.org>
parents:
diff changeset
3654
Dave Love <fx@gnu.org>
parents:
diff changeset
3655 Have you ever written something, and then decided that you really,
Dave Love <fx@gnu.org>
parents:
diff changeset
3656 really, really wish you hadn't posted that?
Dave Love <fx@gnu.org>
parents:
diff changeset
3657
Dave Love <fx@gnu.org>
parents:
diff changeset
3658 Well, you can't cancel mail, but you can cancel posts.
Dave Love <fx@gnu.org>
parents:
diff changeset
3659
Dave Love <fx@gnu.org>
parents:
diff changeset
3660 @findex gnus-summary-cancel-article
Dave Love <fx@gnu.org>
parents:
diff changeset
3661 @kindex C (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3662 @c @icon{gnus-summary-cancel-article}
Dave Love <fx@gnu.org>
parents:
diff changeset
3663 Find the article you wish to cancel (you can only cancel your own
Dave Love <fx@gnu.org>
parents:
diff changeset
3664 articles, so don't try any funny stuff). Then press @kbd{C} or @kbd{S
Dave Love <fx@gnu.org>
parents:
diff changeset
3665 c} (@code{gnus-summary-cancel-article}). Your article will be
Dave Love <fx@gnu.org>
parents:
diff changeset
3666 canceled---machines all over the world will be deleting your article.
Dave Love <fx@gnu.org>
parents:
diff changeset
3667 This command uses the process/prefix convention (@pxref{Process/Prefix}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3668
Dave Love <fx@gnu.org>
parents:
diff changeset
3669 Be aware, however, that not all sites honor cancels, so your article may
Dave Love <fx@gnu.org>
parents:
diff changeset
3670 live on here and there, while most sites will delete the article in
Dave Love <fx@gnu.org>
parents:
diff changeset
3671 question.
Dave Love <fx@gnu.org>
parents:
diff changeset
3672
Dave Love <fx@gnu.org>
parents:
diff changeset
3673 Gnus will use the ``current'' select method when canceling. If you
Dave Love <fx@gnu.org>
parents:
diff changeset
3674 want to use the standard posting method, use the @samp{a} symbolic
Dave Love <fx@gnu.org>
parents:
diff changeset
3675 prefix (@pxref{Symbolic Prefixes}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3676
Dave Love <fx@gnu.org>
parents:
diff changeset
3677 If you discover that you have made some mistakes and want to do some
Dave Love <fx@gnu.org>
parents:
diff changeset
3678 corrections, you can post a @dfn{superseding} article that will replace
Dave Love <fx@gnu.org>
parents:
diff changeset
3679 your original article.
Dave Love <fx@gnu.org>
parents:
diff changeset
3680
Dave Love <fx@gnu.org>
parents:
diff changeset
3681 @findex gnus-summary-supersede-article
Dave Love <fx@gnu.org>
parents:
diff changeset
3682 @kindex S (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3683 Go to the original article and press @kbd{S s}
Dave Love <fx@gnu.org>
parents:
diff changeset
3684 (@code{gnus-summary-supersede-article}). You will be put in a buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
3685 where you can edit the article all you want before sending it off the
Dave Love <fx@gnu.org>
parents:
diff changeset
3686 usual way.
Dave Love <fx@gnu.org>
parents:
diff changeset
3687
Dave Love <fx@gnu.org>
parents:
diff changeset
3688 The same goes for superseding as for canceling, only more so: Some
Dave Love <fx@gnu.org>
parents:
diff changeset
3689 sites do not honor superseding. On those sites, it will appear that you
Dave Love <fx@gnu.org>
parents:
diff changeset
3690 have posted almost the same article twice.
Dave Love <fx@gnu.org>
parents:
diff changeset
3691
Dave Love <fx@gnu.org>
parents:
diff changeset
3692 If you have just posted the article, and change your mind right away,
Dave Love <fx@gnu.org>
parents:
diff changeset
3693 there is a trick you can use to cancel/supersede the article without
Dave Love <fx@gnu.org>
parents:
diff changeset
3694 waiting for the article to appear on your site first. You simply return
Dave Love <fx@gnu.org>
parents:
diff changeset
3695 to the post buffer (which is called @code{*sent ...*}). There you will
Dave Love <fx@gnu.org>
parents:
diff changeset
3696 find the article you just posted, with all the headers intact. Change
Dave Love <fx@gnu.org>
parents:
diff changeset
3697 the @code{Message-ID} header to a @code{Cancel} or @code{Supersedes}
Dave Love <fx@gnu.org>
parents:
diff changeset
3698 header by substituting one of those words for the word
Dave Love <fx@gnu.org>
parents:
diff changeset
3699 @code{Message-ID}. Then just press @kbd{C-c C-c} to send the article as
Dave Love <fx@gnu.org>
parents:
diff changeset
3700 you would do normally. The previous article will be
Dave Love <fx@gnu.org>
parents:
diff changeset
3701 canceled/superseded.
Dave Love <fx@gnu.org>
parents:
diff changeset
3702
Dave Love <fx@gnu.org>
parents:
diff changeset
3703 Just remember, kids: There is no 'c' in 'supersede'.
Dave Love <fx@gnu.org>
parents:
diff changeset
3704
Dave Love <fx@gnu.org>
parents:
diff changeset
3705
Dave Love <fx@gnu.org>
parents:
diff changeset
3706 @node Marking Articles
Dave Love <fx@gnu.org>
parents:
diff changeset
3707 @section Marking Articles
Dave Love <fx@gnu.org>
parents:
diff changeset
3708 @cindex article marking
Dave Love <fx@gnu.org>
parents:
diff changeset
3709 @cindex article ticking
Dave Love <fx@gnu.org>
parents:
diff changeset
3710 @cindex marks
Dave Love <fx@gnu.org>
parents:
diff changeset
3711
Dave Love <fx@gnu.org>
parents:
diff changeset
3712 There are several marks you can set on an article.
Dave Love <fx@gnu.org>
parents:
diff changeset
3713
Dave Love <fx@gnu.org>
parents:
diff changeset
3714 You have marks that decide the @dfn{readedness} (whoo, neato-keano
Dave Love <fx@gnu.org>
parents:
diff changeset
3715 neologism ohoy!) of the article. Alphabetic marks generally mean
Dave Love <fx@gnu.org>
parents:
diff changeset
3716 @dfn{read}, while non-alphabetic characters generally mean @dfn{unread}.
Dave Love <fx@gnu.org>
parents:
diff changeset
3717
Dave Love <fx@gnu.org>
parents:
diff changeset
3718 In addition, you also have marks that do not affect readedness.
Dave Love <fx@gnu.org>
parents:
diff changeset
3719
Dave Love <fx@gnu.org>
parents:
diff changeset
3720 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
3721 * Unread Articles:: Marks for unread articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
3722 * Read Articles:: Marks for read articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
3723 * Other Marks:: Marks that do not affect readedness.
Dave Love <fx@gnu.org>
parents:
diff changeset
3724 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
3725
Dave Love <fx@gnu.org>
parents:
diff changeset
3726 @ifinfo
Dave Love <fx@gnu.org>
parents:
diff changeset
3727 There's a plethora of commands for manipulating these marks:
Dave Love <fx@gnu.org>
parents:
diff changeset
3728 @end ifinfo
Dave Love <fx@gnu.org>
parents:
diff changeset
3729
Dave Love <fx@gnu.org>
parents:
diff changeset
3730 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
3731 * Setting Marks:: How to set and remove marks.
Dave Love <fx@gnu.org>
parents:
diff changeset
3732 * Setting Process Marks:: How to mark articles for later processing.
Dave Love <fx@gnu.org>
parents:
diff changeset
3733 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
3734
Dave Love <fx@gnu.org>
parents:
diff changeset
3735
Dave Love <fx@gnu.org>
parents:
diff changeset
3736 @node Unread Articles
Dave Love <fx@gnu.org>
parents:
diff changeset
3737 @subsection Unread Articles
Dave Love <fx@gnu.org>
parents:
diff changeset
3738
Dave Love <fx@gnu.org>
parents:
diff changeset
3739 The following marks mark articles as (kinda) unread, in one form or
Dave Love <fx@gnu.org>
parents:
diff changeset
3740 other.
Dave Love <fx@gnu.org>
parents:
diff changeset
3741
Dave Love <fx@gnu.org>
parents:
diff changeset
3742 @table @samp
Dave Love <fx@gnu.org>
parents:
diff changeset
3743 @item !
Dave Love <fx@gnu.org>
parents:
diff changeset
3744 @vindex gnus-ticked-mark
Dave Love <fx@gnu.org>
parents:
diff changeset
3745 Marked as ticked (@code{gnus-ticked-mark}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3746
Dave Love <fx@gnu.org>
parents:
diff changeset
3747 @dfn{Ticked articles} are articles that will remain visible always. If
Dave Love <fx@gnu.org>
parents:
diff changeset
3748 you see an article that you find interesting, or you want to put off
Dave Love <fx@gnu.org>
parents:
diff changeset
3749 reading it, or replying to it, until sometime later, you'd typically
Dave Love <fx@gnu.org>
parents:
diff changeset
3750 tick it. However, articles can be expired, so if you want to keep an
Dave Love <fx@gnu.org>
parents:
diff changeset
3751 article forever, you'll have to make it persistent (@pxref{Persistent
Dave Love <fx@gnu.org>
parents:
diff changeset
3752 Articles}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3753
Dave Love <fx@gnu.org>
parents:
diff changeset
3754 @item ?
Dave Love <fx@gnu.org>
parents:
diff changeset
3755 @vindex gnus-dormant-mark
Dave Love <fx@gnu.org>
parents:
diff changeset
3756 Marked as dormant (@code{gnus-dormant-mark}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3757
Dave Love <fx@gnu.org>
parents:
diff changeset
3758 @dfn{Dormant articles} will only appear in the summary buffer if there
Dave Love <fx@gnu.org>
parents:
diff changeset
3759 are followups to it. If you want to see them even if they don't have
Dave Love <fx@gnu.org>
parents:
diff changeset
3760 followups, you can use the @kbd{/ D} command (@pxref{Limiting}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3761
Dave Love <fx@gnu.org>
parents:
diff changeset
3762 @item SPACE
Dave Love <fx@gnu.org>
parents:
diff changeset
3763 @vindex gnus-unread-mark
Dave Love <fx@gnu.org>
parents:
diff changeset
3764 Marked as unread (@code{gnus-unread-mark}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3765
Dave Love <fx@gnu.org>
parents:
diff changeset
3766 @dfn{Unread articles} are articles that haven't been read at all yet.
Dave Love <fx@gnu.org>
parents:
diff changeset
3767 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
3768
Dave Love <fx@gnu.org>
parents:
diff changeset
3769
Dave Love <fx@gnu.org>
parents:
diff changeset
3770 @node Read Articles
Dave Love <fx@gnu.org>
parents:
diff changeset
3771 @subsection Read Articles
Dave Love <fx@gnu.org>
parents:
diff changeset
3772 @cindex expirable mark
Dave Love <fx@gnu.org>
parents:
diff changeset
3773
Dave Love <fx@gnu.org>
parents:
diff changeset
3774 All the following marks mark articles as read.
Dave Love <fx@gnu.org>
parents:
diff changeset
3775
Dave Love <fx@gnu.org>
parents:
diff changeset
3776 @table @samp
Dave Love <fx@gnu.org>
parents:
diff changeset
3777
Dave Love <fx@gnu.org>
parents:
diff changeset
3778 @item r
Dave Love <fx@gnu.org>
parents:
diff changeset
3779 @vindex gnus-del-mark
Dave Love <fx@gnu.org>
parents:
diff changeset
3780 These are articles that the user has marked as read with the @kbd{d}
Dave Love <fx@gnu.org>
parents:
diff changeset
3781 command manually, more or less (@code{gnus-del-mark}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3782
Dave Love <fx@gnu.org>
parents:
diff changeset
3783 @item R
Dave Love <fx@gnu.org>
parents:
diff changeset
3784 @vindex gnus-read-mark
Dave Love <fx@gnu.org>
parents:
diff changeset
3785 Articles that have actually been read (@code{gnus-read-mark}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3786
Dave Love <fx@gnu.org>
parents:
diff changeset
3787 @item O
Dave Love <fx@gnu.org>
parents:
diff changeset
3788 @vindex gnus-ancient-mark
Dave Love <fx@gnu.org>
parents:
diff changeset
3789 Articles that were marked as read in previous sessions and are now
Dave Love <fx@gnu.org>
parents:
diff changeset
3790 @dfn{old} (@code{gnus-ancient-mark}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3791
Dave Love <fx@gnu.org>
parents:
diff changeset
3792 @item K
Dave Love <fx@gnu.org>
parents:
diff changeset
3793 @vindex gnus-killed-mark
Dave Love <fx@gnu.org>
parents:
diff changeset
3794 Marked as killed (@code{gnus-killed-mark}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3795
Dave Love <fx@gnu.org>
parents:
diff changeset
3796 @item X
Dave Love <fx@gnu.org>
parents:
diff changeset
3797 @vindex gnus-kill-file-mark
Dave Love <fx@gnu.org>
parents:
diff changeset
3798 Marked as killed by kill files (@code{gnus-kill-file-mark}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3799
Dave Love <fx@gnu.org>
parents:
diff changeset
3800 @item Y
Dave Love <fx@gnu.org>
parents:
diff changeset
3801 @vindex gnus-low-score-mark
Dave Love <fx@gnu.org>
parents:
diff changeset
3802 Marked as read by having too low a score (@code{gnus-low-score-mark}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3803
Dave Love <fx@gnu.org>
parents:
diff changeset
3804 @item C
Dave Love <fx@gnu.org>
parents:
diff changeset
3805 @vindex gnus-catchup-mark
Dave Love <fx@gnu.org>
parents:
diff changeset
3806 Marked as read by a catchup (@code{gnus-catchup-mark}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3807
Dave Love <fx@gnu.org>
parents:
diff changeset
3808 @item G
Dave Love <fx@gnu.org>
parents:
diff changeset
3809 @vindex gnus-canceled-mark
Dave Love <fx@gnu.org>
parents:
diff changeset
3810 Canceled article (@code{gnus-canceled-mark})
Dave Love <fx@gnu.org>
parents:
diff changeset
3811
Dave Love <fx@gnu.org>
parents:
diff changeset
3812 @item F
Dave Love <fx@gnu.org>
parents:
diff changeset
3813 @vindex gnus-souped-mark
26290
df10644e22b5 Fix complaints from makeinfo 4.0.
Dave Love <fx@gnu.org>
parents: 25829
diff changeset
3814 @sc{soup}ed article (@code{gnus-souped-mark}). @xref{SOUP}.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
3815
Dave Love <fx@gnu.org>
parents:
diff changeset
3816 @item Q
Dave Love <fx@gnu.org>
parents:
diff changeset
3817 @vindex gnus-sparse-mark
Dave Love <fx@gnu.org>
parents:
diff changeset
3818 Sparsely reffed article (@code{gnus-sparse-mark}). @xref{Customizing
Dave Love <fx@gnu.org>
parents:
diff changeset
3819 Threading}.
Dave Love <fx@gnu.org>
parents:
diff changeset
3820
Dave Love <fx@gnu.org>
parents:
diff changeset
3821 @item M
Dave Love <fx@gnu.org>
parents:
diff changeset
3822 @vindex gnus-duplicate-mark
Dave Love <fx@gnu.org>
parents:
diff changeset
3823 Article marked as read by duplicate suppression
Dave Love <fx@gnu.org>
parents:
diff changeset
3824 (@code{gnus-duplicated-mark}). @xref{Duplicate Suppression}.
Dave Love <fx@gnu.org>
parents:
diff changeset
3825
Dave Love <fx@gnu.org>
parents:
diff changeset
3826 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
3827
Dave Love <fx@gnu.org>
parents:
diff changeset
3828 All these marks just mean that the article is marked as read, really.
Dave Love <fx@gnu.org>
parents:
diff changeset
3829 They are interpreted differently when doing adaptive scoring, though.
Dave Love <fx@gnu.org>
parents:
diff changeset
3830
Dave Love <fx@gnu.org>
parents:
diff changeset
3831 One more special mark, though:
Dave Love <fx@gnu.org>
parents:
diff changeset
3832
Dave Love <fx@gnu.org>
parents:
diff changeset
3833 @table @samp
Dave Love <fx@gnu.org>
parents:
diff changeset
3834 @item E
Dave Love <fx@gnu.org>
parents:
diff changeset
3835 @vindex gnus-expirable-mark
Dave Love <fx@gnu.org>
parents:
diff changeset
3836 Marked as expirable (@code{gnus-expirable-mark}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3837
Dave Love <fx@gnu.org>
parents:
diff changeset
3838 Marking articles as @dfn{expirable} (or have them marked as such
Dave Love <fx@gnu.org>
parents:
diff changeset
3839 automatically) doesn't make much sense in normal groups---a user doesn't
Dave Love <fx@gnu.org>
parents:
diff changeset
3840 control expiring of news articles, but in mail groups, for instance,
Dave Love <fx@gnu.org>
parents:
diff changeset
3841 articles marked as @dfn{expirable} can be deleted by Gnus at
Dave Love <fx@gnu.org>
parents:
diff changeset
3842 any time.
Dave Love <fx@gnu.org>
parents:
diff changeset
3843 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
3844
Dave Love <fx@gnu.org>
parents:
diff changeset
3845
Dave Love <fx@gnu.org>
parents:
diff changeset
3846 @node Other Marks
Dave Love <fx@gnu.org>
parents:
diff changeset
3847 @subsection Other Marks
Dave Love <fx@gnu.org>
parents:
diff changeset
3848 @cindex process mark
Dave Love <fx@gnu.org>
parents:
diff changeset
3849 @cindex bookmarks
Dave Love <fx@gnu.org>
parents:
diff changeset
3850
Dave Love <fx@gnu.org>
parents:
diff changeset
3851 There are some marks that have nothing to do with whether the article is
Dave Love <fx@gnu.org>
parents:
diff changeset
3852 read or not.
Dave Love <fx@gnu.org>
parents:
diff changeset
3853
Dave Love <fx@gnu.org>
parents:
diff changeset
3854 @itemize @bullet
Dave Love <fx@gnu.org>
parents:
diff changeset
3855
Dave Love <fx@gnu.org>
parents:
diff changeset
3856 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
3857 You can set a bookmark in the current article. Say you are reading a
Dave Love <fx@gnu.org>
parents:
diff changeset
3858 long thesis on cats' urinary tracts, and have to go home for dinner
Dave Love <fx@gnu.org>
parents:
diff changeset
3859 before you've finished reading the thesis. You can then set a bookmark
Dave Love <fx@gnu.org>
parents:
diff changeset
3860 in the article, and Gnus will jump to this bookmark the next time it
Dave Love <fx@gnu.org>
parents:
diff changeset
3861 encounters the article. @xref{Setting Marks}.
Dave Love <fx@gnu.org>
parents:
diff changeset
3862
Dave Love <fx@gnu.org>
parents:
diff changeset
3863 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
3864 @vindex gnus-replied-mark
Dave Love <fx@gnu.org>
parents:
diff changeset
3865 All articles that you have replied to or made a followup to (i.e., have
Dave Love <fx@gnu.org>
parents:
diff changeset
3866 answered) will be marked with an @samp{A} in the second column
Dave Love <fx@gnu.org>
parents:
diff changeset
3867 (@code{gnus-replied-mark}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3868
Dave Love <fx@gnu.org>
parents:
diff changeset
3869 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
3870 @vindex gnus-cached-mark
Dave Love <fx@gnu.org>
parents:
diff changeset
3871 Articles stored in the article cache will be marked with an @samp{*} in
Dave Love <fx@gnu.org>
parents:
diff changeset
3872 the second column (@code{gnus-cached-mark}). @xref{Article Caching}.
Dave Love <fx@gnu.org>
parents:
diff changeset
3873
Dave Love <fx@gnu.org>
parents:
diff changeset
3874 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
3875 @vindex gnus-saved-mark
Dave Love <fx@gnu.org>
parents:
diff changeset
3876 Articles ``saved'' (in some manner or other; not necessarily
Dave Love <fx@gnu.org>
parents:
diff changeset
3877 religiously) are marked with an @samp{S} in the second column
Dave Love <fx@gnu.org>
parents:
diff changeset
3878 (@code{gnus-saved-mark}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3879
Dave Love <fx@gnu.org>
parents:
diff changeset
3880 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
3881 @vindex gnus-not-empty-thread-mark
Dave Love <fx@gnu.org>
parents:
diff changeset
3882 @vindex gnus-empty-thread-mark
Dave Love <fx@gnu.org>
parents:
diff changeset
3883 If the @samp{%e} spec is used, the presence of threads or not will be
Dave Love <fx@gnu.org>
parents:
diff changeset
3884 marked with @code{gnus-not-empty-thread-mark} and
Dave Love <fx@gnu.org>
parents:
diff changeset
3885 @code{gnus-empty-thread-mark} in the third column, respectively.
Dave Love <fx@gnu.org>
parents:
diff changeset
3886
Dave Love <fx@gnu.org>
parents:
diff changeset
3887 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
3888 @vindex gnus-process-mark
Dave Love <fx@gnu.org>
parents:
diff changeset
3889 Finally we have the @dfn{process mark} (@code{gnus-process-mark}). A
Dave Love <fx@gnu.org>
parents:
diff changeset
3890 variety of commands react to the presence of the process mark. For
Dave Love <fx@gnu.org>
parents:
diff changeset
3891 instance, @kbd{X u} (@code{gnus-uu-decode-uu}) will uudecode and view
Dave Love <fx@gnu.org>
parents:
diff changeset
3892 all articles that have been marked with the process mark. Articles
Dave Love <fx@gnu.org>
parents:
diff changeset
3893 marked with the process mark have a @samp{#} in the second column.
Dave Love <fx@gnu.org>
parents:
diff changeset
3894
Dave Love <fx@gnu.org>
parents:
diff changeset
3895 @end itemize
Dave Love <fx@gnu.org>
parents:
diff changeset
3896
Dave Love <fx@gnu.org>
parents:
diff changeset
3897 You might have noticed that most of these ``non-readedness'' marks
Dave Love <fx@gnu.org>
parents:
diff changeset
3898 appear in the second column by default. So if you have a cached, saved,
Dave Love <fx@gnu.org>
parents:
diff changeset
3899 replied article that you have process-marked, what will that look like?
Dave Love <fx@gnu.org>
parents:
diff changeset
3900
Dave Love <fx@gnu.org>
parents:
diff changeset
3901 Nothing much. The precedence rules go as follows: process -> cache ->
Dave Love <fx@gnu.org>
parents:
diff changeset
3902 replied -> saved. So if the article is in the cache and is replied,
Dave Love <fx@gnu.org>
parents:
diff changeset
3903 you'll only see the cache mark and not the replied mark.
Dave Love <fx@gnu.org>
parents:
diff changeset
3904
Dave Love <fx@gnu.org>
parents:
diff changeset
3905
Dave Love <fx@gnu.org>
parents:
diff changeset
3906 @node Setting Marks
Dave Love <fx@gnu.org>
parents:
diff changeset
3907 @subsection Setting Marks
Dave Love <fx@gnu.org>
parents:
diff changeset
3908 @cindex setting marks
Dave Love <fx@gnu.org>
parents:
diff changeset
3909
Dave Love <fx@gnu.org>
parents:
diff changeset
3910 All the marking commands understand the numeric prefix.
Dave Love <fx@gnu.org>
parents:
diff changeset
3911
Dave Love <fx@gnu.org>
parents:
diff changeset
3912 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
3913 @item M c
Dave Love <fx@gnu.org>
parents:
diff changeset
3914 @itemx M-u
Dave Love <fx@gnu.org>
parents:
diff changeset
3915 @kindex M c (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3916 @kindex M-u (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3917 @findex gnus-summary-clear-mark-forward
Dave Love <fx@gnu.org>
parents:
diff changeset
3918 @cindex mark as unread
Dave Love <fx@gnu.org>
parents:
diff changeset
3919 Clear all readedness-marks from the current article
Dave Love <fx@gnu.org>
parents:
diff changeset
3920 (@code{gnus-summary-clear-mark-forward}). In other words, mark the
Dave Love <fx@gnu.org>
parents:
diff changeset
3921 article as unread.
Dave Love <fx@gnu.org>
parents:
diff changeset
3922
Dave Love <fx@gnu.org>
parents:
diff changeset
3923 @item M t
Dave Love <fx@gnu.org>
parents:
diff changeset
3924 @itemx !
Dave Love <fx@gnu.org>
parents:
diff changeset
3925 @kindex ! (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3926 @kindex M t (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3927 @findex gnus-summary-tick-article-forward
Dave Love <fx@gnu.org>
parents:
diff changeset
3928 Tick the current article (@code{gnus-summary-tick-article-forward}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3929 @xref{Article Caching}.
Dave Love <fx@gnu.org>
parents:
diff changeset
3930
Dave Love <fx@gnu.org>
parents:
diff changeset
3931 @item M ?
Dave Love <fx@gnu.org>
parents:
diff changeset
3932 @itemx ?
Dave Love <fx@gnu.org>
parents:
diff changeset
3933 @kindex ? (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3934 @kindex M ? (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3935 @findex gnus-summary-mark-as-dormant
Dave Love <fx@gnu.org>
parents:
diff changeset
3936 Mark the current article as dormant
Dave Love <fx@gnu.org>
parents:
diff changeset
3937 (@code{gnus-summary-mark-as-dormant}). @xref{Article Caching}.
Dave Love <fx@gnu.org>
parents:
diff changeset
3938
Dave Love <fx@gnu.org>
parents:
diff changeset
3939 @item M d
Dave Love <fx@gnu.org>
parents:
diff changeset
3940 @itemx d
Dave Love <fx@gnu.org>
parents:
diff changeset
3941 @kindex M d (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3942 @kindex d (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3943 @findex gnus-summary-mark-as-read-forward
Dave Love <fx@gnu.org>
parents:
diff changeset
3944 Mark the current article as read
Dave Love <fx@gnu.org>
parents:
diff changeset
3945 (@code{gnus-summary-mark-as-read-forward}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3946
Dave Love <fx@gnu.org>
parents:
diff changeset
3947 @item D
Dave Love <fx@gnu.org>
parents:
diff changeset
3948 @kindex D (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3949 @findex gnus-summary-mark-as-read-backward
Dave Love <fx@gnu.org>
parents:
diff changeset
3950 Mark the current article as read and move point to the previous line
Dave Love <fx@gnu.org>
parents:
diff changeset
3951 (@code{gnus-summary-mark-as-read-backward}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3952
Dave Love <fx@gnu.org>
parents:
diff changeset
3953 @item M k
Dave Love <fx@gnu.org>
parents:
diff changeset
3954 @itemx k
Dave Love <fx@gnu.org>
parents:
diff changeset
3955 @kindex k (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3956 @kindex M k (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3957 @findex gnus-summary-kill-same-subject-and-select
Dave Love <fx@gnu.org>
parents:
diff changeset
3958 Mark all articles that have the same subject as the current one as read,
Dave Love <fx@gnu.org>
parents:
diff changeset
3959 and then select the next unread article
Dave Love <fx@gnu.org>
parents:
diff changeset
3960 (@code{gnus-summary-kill-same-subject-and-select}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3961
Dave Love <fx@gnu.org>
parents:
diff changeset
3962 @item M K
Dave Love <fx@gnu.org>
parents:
diff changeset
3963 @itemx C-k
Dave Love <fx@gnu.org>
parents:
diff changeset
3964 @kindex M K (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3965 @kindex C-k (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3966 @findex gnus-summary-kill-same-subject
Dave Love <fx@gnu.org>
parents:
diff changeset
3967 Mark all articles that have the same subject as the current one as read
Dave Love <fx@gnu.org>
parents:
diff changeset
3968 (@code{gnus-summary-kill-same-subject}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3969
Dave Love <fx@gnu.org>
parents:
diff changeset
3970 @item M C
Dave Love <fx@gnu.org>
parents:
diff changeset
3971 @kindex M C (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3972 @findex gnus-summary-catchup
Dave Love <fx@gnu.org>
parents:
diff changeset
3973 @c @icon{gnus-summary-catchup}
Dave Love <fx@gnu.org>
parents:
diff changeset
3974 Mark all unread articles as read (@code{gnus-summary-catchup}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3975
Dave Love <fx@gnu.org>
parents:
diff changeset
3976 @item M C-c
Dave Love <fx@gnu.org>
parents:
diff changeset
3977 @kindex M C-c (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3978 @findex gnus-summary-catchup-all
Dave Love <fx@gnu.org>
parents:
diff changeset
3979 Mark all articles in the group as read---even the ticked and dormant
Dave Love <fx@gnu.org>
parents:
diff changeset
3980 articles (@code{gnus-summary-catchup-all}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3981
Dave Love <fx@gnu.org>
parents:
diff changeset
3982 @item M H
Dave Love <fx@gnu.org>
parents:
diff changeset
3983 @kindex M H (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3984 @findex gnus-summary-catchup-to-here
Dave Love <fx@gnu.org>
parents:
diff changeset
3985 Catchup the current group to point
Dave Love <fx@gnu.org>
parents:
diff changeset
3986 (@code{gnus-summary-catchup-to-here}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3987
Dave Love <fx@gnu.org>
parents:
diff changeset
3988 @item C-w
Dave Love <fx@gnu.org>
parents:
diff changeset
3989 @kindex C-w (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3990 @findex gnus-summary-mark-region-as-read
Dave Love <fx@gnu.org>
parents:
diff changeset
3991 Mark all articles between point and mark as read
Dave Love <fx@gnu.org>
parents:
diff changeset
3992 (@code{gnus-summary-mark-region-as-read}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3993
Dave Love <fx@gnu.org>
parents:
diff changeset
3994 @item M V k
Dave Love <fx@gnu.org>
parents:
diff changeset
3995 @kindex M V k (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
3996 @findex gnus-summary-kill-below
Dave Love <fx@gnu.org>
parents:
diff changeset
3997 Kill all articles with scores below the default score (or below the
Dave Love <fx@gnu.org>
parents:
diff changeset
3998 numeric prefix) (@code{gnus-summary-kill-below}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3999
Dave Love <fx@gnu.org>
parents:
diff changeset
4000 @item M e
Dave Love <fx@gnu.org>
parents:
diff changeset
4001 @itemx E
Dave Love <fx@gnu.org>
parents:
diff changeset
4002 @kindex M e (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4003 @kindex E (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4004 @findex gnus-summary-mark-as-expirable
Dave Love <fx@gnu.org>
parents:
diff changeset
4005 Mark the current article as expirable
Dave Love <fx@gnu.org>
parents:
diff changeset
4006 (@code{gnus-summary-mark-as-expirable}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4007
Dave Love <fx@gnu.org>
parents:
diff changeset
4008 @item M b
Dave Love <fx@gnu.org>
parents:
diff changeset
4009 @kindex M b (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4010 @findex gnus-summary-set-bookmark
Dave Love <fx@gnu.org>
parents:
diff changeset
4011 Set a bookmark in the current article
Dave Love <fx@gnu.org>
parents:
diff changeset
4012 (@code{gnus-summary-set-bookmark}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4013
Dave Love <fx@gnu.org>
parents:
diff changeset
4014 @item M B
Dave Love <fx@gnu.org>
parents:
diff changeset
4015 @kindex M B (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4016 @findex gnus-summary-remove-bookmark
Dave Love <fx@gnu.org>
parents:
diff changeset
4017 Remove the bookmark from the current article
Dave Love <fx@gnu.org>
parents:
diff changeset
4018 (@code{gnus-summary-remove-bookmark}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4019
Dave Love <fx@gnu.org>
parents:
diff changeset
4020 @item M V c
Dave Love <fx@gnu.org>
parents:
diff changeset
4021 @kindex M V c (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4022 @findex gnus-summary-clear-above
Dave Love <fx@gnu.org>
parents:
diff changeset
4023 Clear all marks from articles with scores over the default score (or
Dave Love <fx@gnu.org>
parents:
diff changeset
4024 over the numeric prefix) (@code{gnus-summary-clear-above}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4025
Dave Love <fx@gnu.org>
parents:
diff changeset
4026 @item M V u
Dave Love <fx@gnu.org>
parents:
diff changeset
4027 @kindex M V u (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4028 @findex gnus-summary-tick-above
Dave Love <fx@gnu.org>
parents:
diff changeset
4029 Tick all articles with scores over the default score (or over the
Dave Love <fx@gnu.org>
parents:
diff changeset
4030 numeric prefix) (@code{gnus-summary-tick-above}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4031
Dave Love <fx@gnu.org>
parents:
diff changeset
4032 @item M V m
Dave Love <fx@gnu.org>
parents:
diff changeset
4033 @kindex M V m (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4034 @findex gnus-summary-mark-above
Dave Love <fx@gnu.org>
parents:
diff changeset
4035 Prompt for a mark, and mark all articles with scores over the default
Dave Love <fx@gnu.org>
parents:
diff changeset
4036 score (or over the numeric prefix) with this mark
Dave Love <fx@gnu.org>
parents:
diff changeset
4037 (@code{gnus-summary-clear-above}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4038 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
4039
Dave Love <fx@gnu.org>
parents:
diff changeset
4040 @vindex gnus-summary-goto-unread
Dave Love <fx@gnu.org>
parents:
diff changeset
4041 The @code{gnus-summary-goto-unread} variable controls what action should
Dave Love <fx@gnu.org>
parents:
diff changeset
4042 be taken after setting a mark. If non-@code{nil}, point will move to
Dave Love <fx@gnu.org>
parents:
diff changeset
4043 the next/previous unread article. If @code{nil}, point will just move
Dave Love <fx@gnu.org>
parents:
diff changeset
4044 one line up or down. As a special case, if this variable is
Dave Love <fx@gnu.org>
parents:
diff changeset
4045 @code{never}, all the marking commands as well as other commands (like
Dave Love <fx@gnu.org>
parents:
diff changeset
4046 @kbd{SPACE}) will move to the next article, whether it is unread or not.
Dave Love <fx@gnu.org>
parents:
diff changeset
4047 The default is @code{t}.
Dave Love <fx@gnu.org>
parents:
diff changeset
4048
Dave Love <fx@gnu.org>
parents:
diff changeset
4049
Dave Love <fx@gnu.org>
parents:
diff changeset
4050 @node Setting Process Marks
Dave Love <fx@gnu.org>
parents:
diff changeset
4051 @subsection Setting Process Marks
Dave Love <fx@gnu.org>
parents:
diff changeset
4052 @cindex setting process marks
Dave Love <fx@gnu.org>
parents:
diff changeset
4053
Dave Love <fx@gnu.org>
parents:
diff changeset
4054 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
4055
Dave Love <fx@gnu.org>
parents:
diff changeset
4056 @item M P p
Dave Love <fx@gnu.org>
parents:
diff changeset
4057 @itemx #
Dave Love <fx@gnu.org>
parents:
diff changeset
4058 @kindex # (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4059 @kindex M P p (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4060 @findex gnus-summary-mark-as-processable
Dave Love <fx@gnu.org>
parents:
diff changeset
4061 Mark the current article with the process mark
Dave Love <fx@gnu.org>
parents:
diff changeset
4062 (@code{gnus-summary-mark-as-processable}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4063 @findex gnus-summary-unmark-as-processable
Dave Love <fx@gnu.org>
parents:
diff changeset
4064
Dave Love <fx@gnu.org>
parents:
diff changeset
4065 @item M P u
Dave Love <fx@gnu.org>
parents:
diff changeset
4066 @itemx M-#
Dave Love <fx@gnu.org>
parents:
diff changeset
4067 @kindex M P u (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4068 @kindex M-# (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4069 Remove the process mark, if any, from the current article
Dave Love <fx@gnu.org>
parents:
diff changeset
4070 (@code{gnus-summary-unmark-as-processable}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4071
Dave Love <fx@gnu.org>
parents:
diff changeset
4072 @item M P U
Dave Love <fx@gnu.org>
parents:
diff changeset
4073 @kindex M P U (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4074 @findex gnus-summary-unmark-all-processable
Dave Love <fx@gnu.org>
parents:
diff changeset
4075 Remove the process mark from all articles
Dave Love <fx@gnu.org>
parents:
diff changeset
4076 (@code{gnus-summary-unmark-all-processable}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4077
Dave Love <fx@gnu.org>
parents:
diff changeset
4078 @item M P i
Dave Love <fx@gnu.org>
parents:
diff changeset
4079 @kindex M P i (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4080 @findex gnus-uu-invert-processable
Dave Love <fx@gnu.org>
parents:
diff changeset
4081 Invert the list of process marked articles
Dave Love <fx@gnu.org>
parents:
diff changeset
4082 (@code{gnus-uu-invert-processable}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4083
Dave Love <fx@gnu.org>
parents:
diff changeset
4084 @item M P R
Dave Love <fx@gnu.org>
parents:
diff changeset
4085 @kindex M P R (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4086 @findex gnus-uu-mark-by-regexp
Dave Love <fx@gnu.org>
parents:
diff changeset
4087 Mark articles that have a @code{Subject} header that matches a regular
Dave Love <fx@gnu.org>
parents:
diff changeset
4088 expression (@code{gnus-uu-mark-by-regexp}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4089
Dave Love <fx@gnu.org>
parents:
diff changeset
4090 @item M P r
Dave Love <fx@gnu.org>
parents:
diff changeset
4091 @kindex M P r (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4092 @findex gnus-uu-mark-region
Dave Love <fx@gnu.org>
parents:
diff changeset
4093 Mark articles in region (@code{gnus-uu-mark-region}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4094
Dave Love <fx@gnu.org>
parents:
diff changeset
4095 @item M P t
Dave Love <fx@gnu.org>
parents:
diff changeset
4096 @kindex M P t (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4097 @findex gnus-uu-mark-thread
Dave Love <fx@gnu.org>
parents:
diff changeset
4098 Mark all articles in the current (sub)thread
Dave Love <fx@gnu.org>
parents:
diff changeset
4099 (@code{gnus-uu-mark-thread}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4100
Dave Love <fx@gnu.org>
parents:
diff changeset
4101 @item M P T
Dave Love <fx@gnu.org>
parents:
diff changeset
4102 @kindex M P T (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4103 @findex gnus-uu-unmark-thread
Dave Love <fx@gnu.org>
parents:
diff changeset
4104 Unmark all articles in the current (sub)thread
Dave Love <fx@gnu.org>
parents:
diff changeset
4105 (@code{gnus-uu-unmark-thread}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4106
Dave Love <fx@gnu.org>
parents:
diff changeset
4107 @item M P v
Dave Love <fx@gnu.org>
parents:
diff changeset
4108 @kindex M P v (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4109 @findex gnus-uu-mark-over
Dave Love <fx@gnu.org>
parents:
diff changeset
4110 Mark all articles that have a score above the prefix argument
Dave Love <fx@gnu.org>
parents:
diff changeset
4111 (@code{gnus-uu-mark-over}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4112
Dave Love <fx@gnu.org>
parents:
diff changeset
4113 @item M P s
Dave Love <fx@gnu.org>
parents:
diff changeset
4114 @kindex M P s (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4115 @findex gnus-uu-mark-series
Dave Love <fx@gnu.org>
parents:
diff changeset
4116 Mark all articles in the current series (@code{gnus-uu-mark-series}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4117
Dave Love <fx@gnu.org>
parents:
diff changeset
4118 @item M P S
Dave Love <fx@gnu.org>
parents:
diff changeset
4119 @kindex M P S (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4120 @findex gnus-uu-mark-sparse
Dave Love <fx@gnu.org>
parents:
diff changeset
4121 Mark all series that have already had some articles marked
Dave Love <fx@gnu.org>
parents:
diff changeset
4122 (@code{gnus-uu-mark-sparse}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4123
Dave Love <fx@gnu.org>
parents:
diff changeset
4124 @item M P a
Dave Love <fx@gnu.org>
parents:
diff changeset
4125 @kindex M P a (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4126 @findex gnus-uu-mark-all
Dave Love <fx@gnu.org>
parents:
diff changeset
4127 Mark all articles in series order (@code{gnus-uu-mark-series}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4128
Dave Love <fx@gnu.org>
parents:
diff changeset
4129 @item M P b
Dave Love <fx@gnu.org>
parents:
diff changeset
4130 @kindex M P b (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4131 @findex gnus-uu-mark-buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
4132 Mark all articles in the buffer in the order they appear
Dave Love <fx@gnu.org>
parents:
diff changeset
4133 (@code{gnus-uu-mark-buffer}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4134
Dave Love <fx@gnu.org>
parents:
diff changeset
4135 @item M P k
Dave Love <fx@gnu.org>
parents:
diff changeset
4136 @kindex M P k (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4137 @findex gnus-summary-kill-process-mark
Dave Love <fx@gnu.org>
parents:
diff changeset
4138 Push the current process mark set onto the stack and unmark all articles
Dave Love <fx@gnu.org>
parents:
diff changeset
4139 (@code{gnus-summary-kill-process-mark}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4140
Dave Love <fx@gnu.org>
parents:
diff changeset
4141 @item M P y
Dave Love <fx@gnu.org>
parents:
diff changeset
4142 @kindex M P y (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4143 @findex gnus-summary-yank-process-mark
Dave Love <fx@gnu.org>
parents:
diff changeset
4144 Pop the previous process mark set from the stack and restore it
Dave Love <fx@gnu.org>
parents:
diff changeset
4145 (@code{gnus-summary-yank-process-mark}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4146
Dave Love <fx@gnu.org>
parents:
diff changeset
4147 @item M P w
Dave Love <fx@gnu.org>
parents:
diff changeset
4148 @kindex M P w (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4149 @findex gnus-summary-save-process-mark
Dave Love <fx@gnu.org>
parents:
diff changeset
4150 Push the current process mark set onto the stack
Dave Love <fx@gnu.org>
parents:
diff changeset
4151 (@code{gnus-summary-save-process-mark}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4152
Dave Love <fx@gnu.org>
parents:
diff changeset
4153 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
4154
Dave Love <fx@gnu.org>
parents:
diff changeset
4155
Dave Love <fx@gnu.org>
parents:
diff changeset
4156 @node Limiting
Dave Love <fx@gnu.org>
parents:
diff changeset
4157 @section Limiting
Dave Love <fx@gnu.org>
parents:
diff changeset
4158 @cindex limiting
Dave Love <fx@gnu.org>
parents:
diff changeset
4159
Dave Love <fx@gnu.org>
parents:
diff changeset
4160 It can be convenient to limit the summary buffer to just show some
Dave Love <fx@gnu.org>
parents:
diff changeset
4161 subset of the articles currently in the group. The effect most limit
Dave Love <fx@gnu.org>
parents:
diff changeset
4162 commands have is to remove a few (or many) articles from the summary
Dave Love <fx@gnu.org>
parents:
diff changeset
4163 buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
4164
Dave Love <fx@gnu.org>
parents:
diff changeset
4165 All limiting commands work on subsets of the articles already fetched
Dave Love <fx@gnu.org>
parents:
diff changeset
4166 from the servers. None of these commands query the server for
Dave Love <fx@gnu.org>
parents:
diff changeset
4167 additional articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
4168
Dave Love <fx@gnu.org>
parents:
diff changeset
4169 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
4170
Dave Love <fx@gnu.org>
parents:
diff changeset
4171 @item / /
Dave Love <fx@gnu.org>
parents:
diff changeset
4172 @itemx / s
Dave Love <fx@gnu.org>
parents:
diff changeset
4173 @kindex / / (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4174 @findex gnus-summary-limit-to-subject
Dave Love <fx@gnu.org>
parents:
diff changeset
4175 Limit the summary buffer to articles that match some subject
Dave Love <fx@gnu.org>
parents:
diff changeset
4176 (@code{gnus-summary-limit-to-subject}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4177
Dave Love <fx@gnu.org>
parents:
diff changeset
4178 @item / a
Dave Love <fx@gnu.org>
parents:
diff changeset
4179 @kindex / a (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4180 @findex gnus-summary-limit-to-author
Dave Love <fx@gnu.org>
parents:
diff changeset
4181 Limit the summary buffer to articles that match some author
Dave Love <fx@gnu.org>
parents:
diff changeset
4182 (@code{gnus-summary-limit-to-author}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4183
Dave Love <fx@gnu.org>
parents:
diff changeset
4184 @item / u
Dave Love <fx@gnu.org>
parents:
diff changeset
4185 @itemx x
Dave Love <fx@gnu.org>
parents:
diff changeset
4186 @kindex / u (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4187 @kindex x (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4188 @findex gnus-summary-limit-to-unread
Dave Love <fx@gnu.org>
parents:
diff changeset
4189 Limit the summary buffer to articles not marked as read
Dave Love <fx@gnu.org>
parents:
diff changeset
4190 (@code{gnus-summary-limit-to-unread}). If given a prefix, limit the
Dave Love <fx@gnu.org>
parents:
diff changeset
4191 buffer to articles strictly unread. This means that ticked and
Dave Love <fx@gnu.org>
parents:
diff changeset
4192 dormant articles will also be excluded.
Dave Love <fx@gnu.org>
parents:
diff changeset
4193
Dave Love <fx@gnu.org>
parents:
diff changeset
4194 @item / m
Dave Love <fx@gnu.org>
parents:
diff changeset
4195 @kindex / m (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4196 @findex gnus-summary-limit-to-marks
Dave Love <fx@gnu.org>
parents:
diff changeset
4197 Ask for a mark and then limit to all articles that have been marked
Dave Love <fx@gnu.org>
parents:
diff changeset
4198 with that mark (@code{gnus-summary-limit-to-marks}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4199
Dave Love <fx@gnu.org>
parents:
diff changeset
4200 @item / t
Dave Love <fx@gnu.org>
parents:
diff changeset
4201 @kindex / t (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4202 @findex gnus-summary-limit-to-age
Dave Love <fx@gnu.org>
parents:
diff changeset
4203 Ask for a number and then limit the summary buffer to articles older than (or equal to) that number of days
Dave Love <fx@gnu.org>
parents:
diff changeset
4204 (@code{gnus-summary-limit-to-marks}). If given a prefix, limit to
Dave Love <fx@gnu.org>
parents:
diff changeset
4205 articles younger than that number of days.
Dave Love <fx@gnu.org>
parents:
diff changeset
4206
Dave Love <fx@gnu.org>
parents:
diff changeset
4207 @item / n
Dave Love <fx@gnu.org>
parents:
diff changeset
4208 @kindex / n (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4209 @findex gnus-summary-limit-to-articles
Dave Love <fx@gnu.org>
parents:
diff changeset
4210 Limit the summary buffer to the current article
Dave Love <fx@gnu.org>
parents:
diff changeset
4211 (@code{gnus-summary-limit-to-articles}). Uses the process/prefix
Dave Love <fx@gnu.org>
parents:
diff changeset
4212 convention (@pxref{Process/Prefix}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4213
Dave Love <fx@gnu.org>
parents:
diff changeset
4214 @item / w
Dave Love <fx@gnu.org>
parents:
diff changeset
4215 @kindex / w (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4216 @findex gnus-summary-pop-limit
Dave Love <fx@gnu.org>
parents:
diff changeset
4217 Pop the previous limit off the stack and restore it
Dave Love <fx@gnu.org>
parents:
diff changeset
4218 (@code{gnus-summary-pop-limit}). If given a prefix, pop all limits off
Dave Love <fx@gnu.org>
parents:
diff changeset
4219 the stack.
Dave Love <fx@gnu.org>
parents:
diff changeset
4220
Dave Love <fx@gnu.org>
parents:
diff changeset
4221 @item / v
Dave Love <fx@gnu.org>
parents:
diff changeset
4222 @kindex / v (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4223 @findex gnus-summary-limit-to-score
Dave Love <fx@gnu.org>
parents:
diff changeset
4224 Limit the summary buffer to articles that have a score at or above some
Dave Love <fx@gnu.org>
parents:
diff changeset
4225 score (@code{gnus-summary-limit-to-score}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4226
Dave Love <fx@gnu.org>
parents:
diff changeset
4227 @item / E
Dave Love <fx@gnu.org>
parents:
diff changeset
4228 @itemx M S
Dave Love <fx@gnu.org>
parents:
diff changeset
4229 @kindex M S (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4230 @kindex / E (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4231 @findex gnus-summary-limit-include-expunged
Dave Love <fx@gnu.org>
parents:
diff changeset
4232 Include all expunged articles in the limit
Dave Love <fx@gnu.org>
parents:
diff changeset
4233 (@code{gnus-summary-limit-include-expunged}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4234
Dave Love <fx@gnu.org>
parents:
diff changeset
4235 @item / D
Dave Love <fx@gnu.org>
parents:
diff changeset
4236 @kindex / D (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4237 @findex gnus-summary-limit-include-dormant
Dave Love <fx@gnu.org>
parents:
diff changeset
4238 Include all dormant articles in the limit
Dave Love <fx@gnu.org>
parents:
diff changeset
4239 (@code{gnus-summary-limit-include-dormant}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4240
Dave Love <fx@gnu.org>
parents:
diff changeset
4241 @item / *
Dave Love <fx@gnu.org>
parents:
diff changeset
4242 @kindex / * (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4243 @findex gnus-summary-limit-include-cached
Dave Love <fx@gnu.org>
parents:
diff changeset
4244 Include all cached articles in the limit
Dave Love <fx@gnu.org>
parents:
diff changeset
4245 (@code{gnus-summary-limit-include-cached}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4246
Dave Love <fx@gnu.org>
parents:
diff changeset
4247 @item / d
Dave Love <fx@gnu.org>
parents:
diff changeset
4248 @kindex / d (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4249 @findex gnus-summary-limit-exclude-dormant
Dave Love <fx@gnu.org>
parents:
diff changeset
4250 Exclude all dormant articles from the limit
Dave Love <fx@gnu.org>
parents:
diff changeset
4251 (@code{gnus-summary-limit-exclude-dormant}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4252
Dave Love <fx@gnu.org>
parents:
diff changeset
4253 @item / T
Dave Love <fx@gnu.org>
parents:
diff changeset
4254 @kindex / T (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4255 @findex gnus-summary-limit-include-thread
Dave Love <fx@gnu.org>
parents:
diff changeset
4256 Include all the articles in the current thread in the limit.
Dave Love <fx@gnu.org>
parents:
diff changeset
4257
Dave Love <fx@gnu.org>
parents:
diff changeset
4258 @item / c
Dave Love <fx@gnu.org>
parents:
diff changeset
4259 @kindex / c (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4260 @findex gnus-summary-limit-exclude-childless-dormant
Dave Love <fx@gnu.org>
parents:
diff changeset
4261 Exclude all dormant articles that have no children from the limit
Dave Love <fx@gnu.org>
parents:
diff changeset
4262 (@code{gnus-summary-limit-exclude-childless-dormant}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4263
Dave Love <fx@gnu.org>
parents:
diff changeset
4264 @item / C
Dave Love <fx@gnu.org>
parents:
diff changeset
4265 @kindex / C (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4266 @findex gnus-summary-limit-mark-excluded-as-read
Dave Love <fx@gnu.org>
parents:
diff changeset
4267 Mark all excluded unread articles as read
Dave Love <fx@gnu.org>
parents:
diff changeset
4268 (@code{gnus-summary-limit-mark-excluded-as-read}). If given a prefix,
Dave Love <fx@gnu.org>
parents:
diff changeset
4269 also mark excluded ticked and dormant articles as read.
Dave Love <fx@gnu.org>
parents:
diff changeset
4270
Dave Love <fx@gnu.org>
parents:
diff changeset
4271 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
4272
Dave Love <fx@gnu.org>
parents:
diff changeset
4273
Dave Love <fx@gnu.org>
parents:
diff changeset
4274 @node Threading
Dave Love <fx@gnu.org>
parents:
diff changeset
4275 @section Threading
Dave Love <fx@gnu.org>
parents:
diff changeset
4276 @cindex threading
Dave Love <fx@gnu.org>
parents:
diff changeset
4277 @cindex article threading
Dave Love <fx@gnu.org>
parents:
diff changeset
4278
Dave Love <fx@gnu.org>
parents:
diff changeset
4279 Gnus threads articles by default. @dfn{To thread} is to put responses
Dave Love <fx@gnu.org>
parents:
diff changeset
4280 to articles directly after the articles they respond to---in a
Dave Love <fx@gnu.org>
parents:
diff changeset
4281 hierarchical fashion.
Dave Love <fx@gnu.org>
parents:
diff changeset
4282
Dave Love <fx@gnu.org>
parents:
diff changeset
4283 Threading is done by looking at the @code{References} headers of the
Dave Love <fx@gnu.org>
parents:
diff changeset
4284 articles. In a perfect world, this would be enough to build pretty
Dave Love <fx@gnu.org>
parents:
diff changeset
4285 trees, but unfortunately, the @code{References} header is often broken
Dave Love <fx@gnu.org>
parents:
diff changeset
4286 or simply missing. Weird news propagation excarcerbates the problem,
Dave Love <fx@gnu.org>
parents:
diff changeset
4287 so one has to employ other heuristics to get pleasing results. A
Dave Love <fx@gnu.org>
parents:
diff changeset
4288 plethora of approaches exists, as detailed in horrible detail in
Dave Love <fx@gnu.org>
parents:
diff changeset
4289 @pxref{Customizing Threading}.
Dave Love <fx@gnu.org>
parents:
diff changeset
4290
Dave Love <fx@gnu.org>
parents:
diff changeset
4291 First, a quick overview of the concepts:
Dave Love <fx@gnu.org>
parents:
diff changeset
4292
Dave Love <fx@gnu.org>
parents:
diff changeset
4293 @table @dfn
Dave Love <fx@gnu.org>
parents:
diff changeset
4294 @item root
Dave Love <fx@gnu.org>
parents:
diff changeset
4295 The top-most article in a thread; the first article in the thread.
Dave Love <fx@gnu.org>
parents:
diff changeset
4296
Dave Love <fx@gnu.org>
parents:
diff changeset
4297 @item thread
Dave Love <fx@gnu.org>
parents:
diff changeset
4298 A tree-like article structure.
Dave Love <fx@gnu.org>
parents:
diff changeset
4299
Dave Love <fx@gnu.org>
parents:
diff changeset
4300 @item sub-thread
Dave Love <fx@gnu.org>
parents:
diff changeset
4301 A small(er) section of this tree-like structure.
Dave Love <fx@gnu.org>
parents:
diff changeset
4302
Dave Love <fx@gnu.org>
parents:
diff changeset
4303 @item loose threads
Dave Love <fx@gnu.org>
parents:
diff changeset
4304 Threads often lose their roots due to article expiry, or due to the root
Dave Love <fx@gnu.org>
parents:
diff changeset
4305 already having been read in a previous session, and not displayed in the
Dave Love <fx@gnu.org>
parents:
diff changeset
4306 summary buffer. We then typically have many sub-threads that really
Dave Love <fx@gnu.org>
parents:
diff changeset
4307 belong to one thread, but are without connecting roots. These are
Dave Love <fx@gnu.org>
parents:
diff changeset
4308 called loose threads.
Dave Love <fx@gnu.org>
parents:
diff changeset
4309
Dave Love <fx@gnu.org>
parents:
diff changeset
4310 @item thread gathering
Dave Love <fx@gnu.org>
parents:
diff changeset
4311 An attempt to gather loose threads into bigger threads.
Dave Love <fx@gnu.org>
parents:
diff changeset
4312
Dave Love <fx@gnu.org>
parents:
diff changeset
4313 @item sparse threads
Dave Love <fx@gnu.org>
parents:
diff changeset
4314 A thread where the missing articles have been ``guessed'' at, and are
Dave Love <fx@gnu.org>
parents:
diff changeset
4315 displayed as empty lines in the summary buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
4316
Dave Love <fx@gnu.org>
parents:
diff changeset
4317 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
4318
Dave Love <fx@gnu.org>
parents:
diff changeset
4319
Dave Love <fx@gnu.org>
parents:
diff changeset
4320 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
4321 * Customizing Threading:: Variables you can change to affect the threading.
Dave Love <fx@gnu.org>
parents:
diff changeset
4322 * Thread Commands:: Thread based commands in the summary buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
4323 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
4324
Dave Love <fx@gnu.org>
parents:
diff changeset
4325
Dave Love <fx@gnu.org>
parents:
diff changeset
4326 @node Customizing Threading
Dave Love <fx@gnu.org>
parents:
diff changeset
4327 @subsection Customizing Threading
Dave Love <fx@gnu.org>
parents:
diff changeset
4328 @cindex customizing threading
Dave Love <fx@gnu.org>
parents:
diff changeset
4329
Dave Love <fx@gnu.org>
parents:
diff changeset
4330 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
4331 * Loose Threads:: How Gnus gathers loose threads into bigger threads.
Dave Love <fx@gnu.org>
parents:
diff changeset
4332 * Filling In Threads:: Making the threads displayed look fuller.
Dave Love <fx@gnu.org>
parents:
diff changeset
4333 * More Threading:: Even more variables for fiddling with threads.
Dave Love <fx@gnu.org>
parents:
diff changeset
4334 * Low-Level Threading:: You thought it was over... but you were wrong!
Dave Love <fx@gnu.org>
parents:
diff changeset
4335 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
4336
Dave Love <fx@gnu.org>
parents:
diff changeset
4337
Dave Love <fx@gnu.org>
parents:
diff changeset
4338 @node Loose Threads
Dave Love <fx@gnu.org>
parents:
diff changeset
4339 @subsubsection Loose Threads
Dave Love <fx@gnu.org>
parents:
diff changeset
4340 @cindex <
Dave Love <fx@gnu.org>
parents:
diff changeset
4341 @cindex >
Dave Love <fx@gnu.org>
parents:
diff changeset
4342 @cindex loose threads
Dave Love <fx@gnu.org>
parents:
diff changeset
4343
Dave Love <fx@gnu.org>
parents:
diff changeset
4344 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
4345 @item gnus-summary-make-false-root
Dave Love <fx@gnu.org>
parents:
diff changeset
4346 @vindex gnus-summary-make-false-root
Dave Love <fx@gnu.org>
parents:
diff changeset
4347 If non-@code{nil}, Gnus will gather all loose subtrees into one big tree
Dave Love <fx@gnu.org>
parents:
diff changeset
4348 and create a dummy root at the top. (Wait a minute. Root at the top?
Dave Love <fx@gnu.org>
parents:
diff changeset
4349 Yup.) Loose subtrees occur when the real root has expired, or you've
Dave Love <fx@gnu.org>
parents:
diff changeset
4350 read or killed the root in a previous session.
Dave Love <fx@gnu.org>
parents:
diff changeset
4351
Dave Love <fx@gnu.org>
parents:
diff changeset
4352 When there is no real root of a thread, Gnus will have to fudge
Dave Love <fx@gnu.org>
parents:
diff changeset
4353 something. This variable says what fudging method Gnus should use.
Dave Love <fx@gnu.org>
parents:
diff changeset
4354 There are four possible values:
Dave Love <fx@gnu.org>
parents:
diff changeset
4355
Dave Love <fx@gnu.org>
parents:
diff changeset
4356 @cindex adopting articles
Dave Love <fx@gnu.org>
parents:
diff changeset
4357
Dave Love <fx@gnu.org>
parents:
diff changeset
4358 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
4359
Dave Love <fx@gnu.org>
parents:
diff changeset
4360 @item adopt
Dave Love <fx@gnu.org>
parents:
diff changeset
4361 Gnus will make the first of the orphaned articles the parent. This
Dave Love <fx@gnu.org>
parents:
diff changeset
4362 parent will adopt all the other articles. The adopted articles will be
Dave Love <fx@gnu.org>
parents:
diff changeset
4363 marked as such by pointy brackets (@samp{<>}) instead of the standard
Dave Love <fx@gnu.org>
parents:
diff changeset
4364 square brackets (@samp{[]}). This is the default method.
Dave Love <fx@gnu.org>
parents:
diff changeset
4365
Dave Love <fx@gnu.org>
parents:
diff changeset
4366 @item dummy
Dave Love <fx@gnu.org>
parents:
diff changeset
4367 @vindex gnus-summary-dummy-line-format
Dave Love <fx@gnu.org>
parents:
diff changeset
4368 Gnus will create a dummy summary line that will pretend to be the
Dave Love <fx@gnu.org>
parents:
diff changeset
4369 parent. This dummy line does not correspond to any real article, so
Dave Love <fx@gnu.org>
parents:
diff changeset
4370 selecting it will just select the first real article after the dummy
Dave Love <fx@gnu.org>
parents:
diff changeset
4371 article. @code{gnus-summary-dummy-line-format} is used to specify the
Dave Love <fx@gnu.org>
parents:
diff changeset
4372 format of the dummy roots. It accepts only one format spec: @samp{S},
Dave Love <fx@gnu.org>
parents:
diff changeset
4373 which is the subject of the article. @xref{Formatting Variables}.
Dave Love <fx@gnu.org>
parents:
diff changeset
4374
Dave Love <fx@gnu.org>
parents:
diff changeset
4375 @item empty
Dave Love <fx@gnu.org>
parents:
diff changeset
4376 Gnus won't actually make any article the parent, but simply leave the
Dave Love <fx@gnu.org>
parents:
diff changeset
4377 subject field of all orphans except the first empty. (Actually, it will
Dave Love <fx@gnu.org>
parents:
diff changeset
4378 use @code{gnus-summary-same-subject} as the subject (@pxref{Summary
Dave Love <fx@gnu.org>
parents:
diff changeset
4379 Buffer Format}).)
Dave Love <fx@gnu.org>
parents:
diff changeset
4380
Dave Love <fx@gnu.org>
parents:
diff changeset
4381 @item none
Dave Love <fx@gnu.org>
parents:
diff changeset
4382 Don't make any article parent at all. Just gather the threads and
Dave Love <fx@gnu.org>
parents:
diff changeset
4383 display them after one another.
Dave Love <fx@gnu.org>
parents:
diff changeset
4384
Dave Love <fx@gnu.org>
parents:
diff changeset
4385 @item nil
Dave Love <fx@gnu.org>
parents:
diff changeset
4386 Don't gather loose threads.
Dave Love <fx@gnu.org>
parents:
diff changeset
4387 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
4388
Dave Love <fx@gnu.org>
parents:
diff changeset
4389 @item gnus-summary-gather-subject-limit
Dave Love <fx@gnu.org>
parents:
diff changeset
4390 @vindex gnus-summary-gather-subject-limit
Dave Love <fx@gnu.org>
parents:
diff changeset
4391 Loose threads are gathered by comparing subjects of articles. If this
Dave Love <fx@gnu.org>
parents:
diff changeset
4392 variable is @code{nil}, Gnus requires an exact match between the
Dave Love <fx@gnu.org>
parents:
diff changeset
4393 subjects of the loose threads before gathering them into one big
Dave Love <fx@gnu.org>
parents:
diff changeset
4394 super-thread. This might be too strict a requirement, what with the
Dave Love <fx@gnu.org>
parents:
diff changeset
4395 presence of stupid newsreaders that chop off long subject lines. If
Dave Love <fx@gnu.org>
parents:
diff changeset
4396 you think so, set this variable to, say, 20 to require that only the
Dave Love <fx@gnu.org>
parents:
diff changeset
4397 first 20 characters of the subjects have to match. If you set this
Dave Love <fx@gnu.org>
parents:
diff changeset
4398 variable to a really low number, you'll find that Gnus will gather
Dave Love <fx@gnu.org>
parents:
diff changeset
4399 everything in sight into one thread, which isn't very helpful.
Dave Love <fx@gnu.org>
parents:
diff changeset
4400
Dave Love <fx@gnu.org>
parents:
diff changeset
4401 @cindex fuzzy article gathering
Dave Love <fx@gnu.org>
parents:
diff changeset
4402 If you set this variable to the special value @code{fuzzy}, Gnus will
Dave Love <fx@gnu.org>
parents:
diff changeset
4403 use a fuzzy string comparison algorithm on the subjects (@pxref{Fuzzy
Dave Love <fx@gnu.org>
parents:
diff changeset
4404 Matching}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4405
Dave Love <fx@gnu.org>
parents:
diff changeset
4406 @item gnus-simplify-subject-fuzzy-regexp
Dave Love <fx@gnu.org>
parents:
diff changeset
4407 @vindex gnus-simplify-subject-fuzzy-regexp
Dave Love <fx@gnu.org>
parents:
diff changeset
4408 This can either be a regular expression or list of regular expressions
Dave Love <fx@gnu.org>
parents:
diff changeset
4409 that match strings that will be removed from subjects if fuzzy subject
Dave Love <fx@gnu.org>
parents:
diff changeset
4410 simplification is used.
Dave Love <fx@gnu.org>
parents:
diff changeset
4411
Dave Love <fx@gnu.org>
parents:
diff changeset
4412 @item gnus-simplify-ignored-prefixes
Dave Love <fx@gnu.org>
parents:
diff changeset
4413 @vindex gnus-simplify-ignored-prefixes
Dave Love <fx@gnu.org>
parents:
diff changeset
4414 If you set @code{gnus-summary-gather-subject-limit} to something as low
Dave Love <fx@gnu.org>
parents:
diff changeset
4415 as 10, you might consider setting this variable to something sensible:
Dave Love <fx@gnu.org>
parents:
diff changeset
4416
Dave Love <fx@gnu.org>
parents:
diff changeset
4417 @c Written by Michael Ernst <mernst@cs.rice.edu>
Dave Love <fx@gnu.org>
parents:
diff changeset
4418 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
4419 (setq gnus-simplify-ignored-prefixes
Dave Love <fx@gnu.org>
parents:
diff changeset
4420 (concat
Dave Love <fx@gnu.org>
parents:
diff changeset
4421 "\\`\\[?\\("
Dave Love <fx@gnu.org>
parents:
diff changeset
4422 (mapconcat
Dave Love <fx@gnu.org>
parents:
diff changeset
4423 'identity
Dave Love <fx@gnu.org>
parents:
diff changeset
4424 '("looking"
Dave Love <fx@gnu.org>
parents:
diff changeset
4425 "wanted" "followup" "summary\\( of\\)?"
Dave Love <fx@gnu.org>
parents:
diff changeset
4426 "help" "query" "problem" "question"
Dave Love <fx@gnu.org>
parents:
diff changeset
4427 "answer" "reference" "announce"
Dave Love <fx@gnu.org>
parents:
diff changeset
4428 "How can I" "How to" "Comparison of"
Dave Love <fx@gnu.org>
parents:
diff changeset
4429 ;; ...
Dave Love <fx@gnu.org>
parents:
diff changeset
4430 )
Dave Love <fx@gnu.org>
parents:
diff changeset
4431 "\\|")
Dave Love <fx@gnu.org>
parents:
diff changeset
4432 "\\)\\s *\\("
Dave Love <fx@gnu.org>
parents:
diff changeset
4433 (mapconcat 'identity
Dave Love <fx@gnu.org>
parents:
diff changeset
4434 '("for" "for reference" "with" "about")
Dave Love <fx@gnu.org>
parents:
diff changeset
4435 "\\|")
Dave Love <fx@gnu.org>
parents:
diff changeset
4436 "\\)?\\]?:?[ \t]*"))
Dave Love <fx@gnu.org>
parents:
diff changeset
4437 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
4438
Dave Love <fx@gnu.org>
parents:
diff changeset
4439 All words that match this regexp will be removed before comparing two
Dave Love <fx@gnu.org>
parents:
diff changeset
4440 subjects.
Dave Love <fx@gnu.org>
parents:
diff changeset
4441
Dave Love <fx@gnu.org>
parents:
diff changeset
4442 @item gnus-simplify-subject-functions
Dave Love <fx@gnu.org>
parents:
diff changeset
4443 @vindex gnus-simplify-subject-functions
Dave Love <fx@gnu.org>
parents:
diff changeset
4444 If non-@code{nil}, this variable overrides
Dave Love <fx@gnu.org>
parents:
diff changeset
4445 @code{gnus-summary-gather-subject-limit}. This variable should be a
Dave Love <fx@gnu.org>
parents:
diff changeset
4446 list of functions to apply to the @code{Subject} string iteratively to
Dave Love <fx@gnu.org>
parents:
diff changeset
4447 arrive at the simplified version of the string.
Dave Love <fx@gnu.org>
parents:
diff changeset
4448
Dave Love <fx@gnu.org>
parents:
diff changeset
4449 Useful functions to put in this list include:
Dave Love <fx@gnu.org>
parents:
diff changeset
4450
Dave Love <fx@gnu.org>
parents:
diff changeset
4451 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
4452 @item gnus-simplify-subject-re
Dave Love <fx@gnu.org>
parents:
diff changeset
4453 @findex gnus-simplify-subject-re
Dave Love <fx@gnu.org>
parents:
diff changeset
4454 Strip the leading @samp{Re:}.
Dave Love <fx@gnu.org>
parents:
diff changeset
4455
Dave Love <fx@gnu.org>
parents:
diff changeset
4456 @item gnus-simplify-subject-fuzzy
Dave Love <fx@gnu.org>
parents:
diff changeset
4457 @findex gnus-simplify-subject-fuzzy
Dave Love <fx@gnu.org>
parents:
diff changeset
4458 Simplify fuzzily.
Dave Love <fx@gnu.org>
parents:
diff changeset
4459
Dave Love <fx@gnu.org>
parents:
diff changeset
4460 @item gnus-simplify-whitespace
Dave Love <fx@gnu.org>
parents:
diff changeset
4461 @findex gnus-simplify-whitespace
Dave Love <fx@gnu.org>
parents:
diff changeset
4462 Remove excessive whitespace.
Dave Love <fx@gnu.org>
parents:
diff changeset
4463 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
4464
Dave Love <fx@gnu.org>
parents:
diff changeset
4465 You may also write your own functions, of course.
Dave Love <fx@gnu.org>
parents:
diff changeset
4466
Dave Love <fx@gnu.org>
parents:
diff changeset
4467
Dave Love <fx@gnu.org>
parents:
diff changeset
4468 @item gnus-summary-gather-exclude-subject
Dave Love <fx@gnu.org>
parents:
diff changeset
4469 @vindex gnus-summary-gather-exclude-subject
Dave Love <fx@gnu.org>
parents:
diff changeset
4470 Since loose thread gathering is done on subjects only, that might lead
Dave Love <fx@gnu.org>
parents:
diff changeset
4471 to many false hits, especially with certain common subjects like
Dave Love <fx@gnu.org>
parents:
diff changeset
4472 @samp{} and @samp{(none)}. To make the situation slightly better,
Dave Love <fx@gnu.org>
parents:
diff changeset
4473 you can use the regexp @code{gnus-summary-gather-exclude-subject} to say
Dave Love <fx@gnu.org>
parents:
diff changeset
4474 what subjects should be excluded from the gathering process.@*
Dave Love <fx@gnu.org>
parents:
diff changeset
4475 The default is @samp{^ *$\\|^(none)$}.
Dave Love <fx@gnu.org>
parents:
diff changeset
4476
Dave Love <fx@gnu.org>
parents:
diff changeset
4477 @item gnus-summary-thread-gathering-function
Dave Love <fx@gnu.org>
parents:
diff changeset
4478 @vindex gnus-summary-thread-gathering-function
Dave Love <fx@gnu.org>
parents:
diff changeset
4479 Gnus gathers threads by looking at @code{Subject} headers. This means
Dave Love <fx@gnu.org>
parents:
diff changeset
4480 that totally unrelated articles may end up in the same ``thread'', which
Dave Love <fx@gnu.org>
parents:
diff changeset
4481 is confusing. An alternate approach is to look at all the
Dave Love <fx@gnu.org>
parents:
diff changeset
4482 @code{Message-ID}s in all the @code{References} headers to find matches.
Dave Love <fx@gnu.org>
parents:
diff changeset
4483 This will ensure that no gathered threads ever include unrelated
Dave Love <fx@gnu.org>
parents:
diff changeset
4484 articles, but it also means that people who have posted with broken
Dave Love <fx@gnu.org>
parents:
diff changeset
4485 newsreaders won't be gathered properly. The choice is yours---plague or
Dave Love <fx@gnu.org>
parents:
diff changeset
4486 cholera:
Dave Love <fx@gnu.org>
parents:
diff changeset
4487
Dave Love <fx@gnu.org>
parents:
diff changeset
4488 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
4489 @item gnus-gather-threads-by-subject
Dave Love <fx@gnu.org>
parents:
diff changeset
4490 @findex gnus-gather-threads-by-subject
Dave Love <fx@gnu.org>
parents:
diff changeset
4491 This function is the default gathering function and looks at
Dave Love <fx@gnu.org>
parents:
diff changeset
4492 @code{Subject}s exclusively.
Dave Love <fx@gnu.org>
parents:
diff changeset
4493
Dave Love <fx@gnu.org>
parents:
diff changeset
4494 @item gnus-gather-threads-by-references
Dave Love <fx@gnu.org>
parents:
diff changeset
4495 @findex gnus-gather-threads-by-references
Dave Love <fx@gnu.org>
parents:
diff changeset
4496 This function looks at @code{References} headers exclusively.
Dave Love <fx@gnu.org>
parents:
diff changeset
4497 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
4498
Dave Love <fx@gnu.org>
parents:
diff changeset
4499 If you want to test gathering by @code{References}, you could say
Dave Love <fx@gnu.org>
parents:
diff changeset
4500 something like:
Dave Love <fx@gnu.org>
parents:
diff changeset
4501
Dave Love <fx@gnu.org>
parents:
diff changeset
4502 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
4503 (setq gnus-summary-thread-gathering-function
Dave Love <fx@gnu.org>
parents:
diff changeset
4504 'gnus-gather-threads-by-references)
Dave Love <fx@gnu.org>
parents:
diff changeset
4505 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
4506
Dave Love <fx@gnu.org>
parents:
diff changeset
4507 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
4508
Dave Love <fx@gnu.org>
parents:
diff changeset
4509
Dave Love <fx@gnu.org>
parents:
diff changeset
4510 @node Filling In Threads
Dave Love <fx@gnu.org>
parents:
diff changeset
4511 @subsubsection Filling In Threads
Dave Love <fx@gnu.org>
parents:
diff changeset
4512
Dave Love <fx@gnu.org>
parents:
diff changeset
4513 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
4514 @item gnus-fetch-old-headers
Dave Love <fx@gnu.org>
parents:
diff changeset
4515 @vindex gnus-fetch-old-headers
Dave Love <fx@gnu.org>
parents:
diff changeset
4516 If non-@code{nil}, Gnus will attempt to build old threads by fetching
Dave Love <fx@gnu.org>
parents:
diff changeset
4517 more old headers---headers to articles marked as read. If you
Dave Love <fx@gnu.org>
parents:
diff changeset
4518 would like to display as few summary lines as possible, but still
Dave Love <fx@gnu.org>
parents:
diff changeset
4519 connect as many loose threads as possible, you should set this variable
Dave Love <fx@gnu.org>
parents:
diff changeset
4520 to @code{some} or a number. If you set it to a number, no more than
Dave Love <fx@gnu.org>
parents:
diff changeset
4521 that number of extra old headers will be fetched. In either case,
Dave Love <fx@gnu.org>
parents:
diff changeset
4522 fetching old headers only works if the backend you are using carries
Dave Love <fx@gnu.org>
parents:
diff changeset
4523 overview files---this would normally be @code{nntp}, @code{nnspool} and
Dave Love <fx@gnu.org>
parents:
diff changeset
4524 @code{nnml}. Also remember that if the root of the thread has been
Dave Love <fx@gnu.org>
parents:
diff changeset
4525 expired by the server, there's not much Gnus can do about that.
Dave Love <fx@gnu.org>
parents:
diff changeset
4526
Dave Love <fx@gnu.org>
parents:
diff changeset
4527 This variable can also be set to @code{invisible}. This won't have any
Dave Love <fx@gnu.org>
parents:
diff changeset
4528 visible effects, but is useful if you use the @kbd{A T} command a lot
Dave Love <fx@gnu.org>
parents:
diff changeset
4529 (@pxref{Finding the Parent}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4530
Dave Love <fx@gnu.org>
parents:
diff changeset
4531 @item gnus-build-sparse-threads
Dave Love <fx@gnu.org>
parents:
diff changeset
4532 @vindex gnus-build-sparse-threads
Dave Love <fx@gnu.org>
parents:
diff changeset
4533 Fetching old headers can be slow. A low-rent similar effect can be
Dave Love <fx@gnu.org>
parents:
diff changeset
4534 gotten by setting this variable to @code{some}. Gnus will then look at
Dave Love <fx@gnu.org>
parents:
diff changeset
4535 the complete @code{References} headers of all articles and try to string
Dave Love <fx@gnu.org>
parents:
diff changeset
4536 together articles that belong in the same thread. This will leave
Dave Love <fx@gnu.org>
parents:
diff changeset
4537 @dfn{gaps} in the threading display where Gnus guesses that an article
Dave Love <fx@gnu.org>
parents:
diff changeset
4538 is missing from the thread. (These gaps appear like normal summary
Dave Love <fx@gnu.org>
parents:
diff changeset
4539 lines. If you select a gap, Gnus will try to fetch the article in
Dave Love <fx@gnu.org>
parents:
diff changeset
4540 question.) If this variable is @code{t}, Gnus will display all these
Dave Love <fx@gnu.org>
parents:
diff changeset
4541 ``gaps'' without regard for whether they are useful for completing the
Dave Love <fx@gnu.org>
parents:
diff changeset
4542 thread or not. Finally, if this variable is @code{more}, Gnus won't cut
Dave Love <fx@gnu.org>
parents:
diff changeset
4543 off sparse leaf nodes that don't lead anywhere. This variable is
Dave Love <fx@gnu.org>
parents:
diff changeset
4544 @code{nil} by default.
Dave Love <fx@gnu.org>
parents:
diff changeset
4545
Dave Love <fx@gnu.org>
parents:
diff changeset
4546 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
4547
Dave Love <fx@gnu.org>
parents:
diff changeset
4548
Dave Love <fx@gnu.org>
parents:
diff changeset
4549 @node More Threading
Dave Love <fx@gnu.org>
parents:
diff changeset
4550 @subsubsection More Threading
Dave Love <fx@gnu.org>
parents:
diff changeset
4551
Dave Love <fx@gnu.org>
parents:
diff changeset
4552 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
4553 @item gnus-show-threads
Dave Love <fx@gnu.org>
parents:
diff changeset
4554 @vindex gnus-show-threads
Dave Love <fx@gnu.org>
parents:
diff changeset
4555 If this variable is @code{nil}, no threading will be done, and all of
Dave Love <fx@gnu.org>
parents:
diff changeset
4556 the rest of the variables here will have no effect. Turning threading
Dave Love <fx@gnu.org>
parents:
diff changeset
4557 off will speed group selection up a bit, but it is sure to make reading
Dave Love <fx@gnu.org>
parents:
diff changeset
4558 slower and more awkward.
Dave Love <fx@gnu.org>
parents:
diff changeset
4559
Dave Love <fx@gnu.org>
parents:
diff changeset
4560 @item gnus-thread-hide-subtree
Dave Love <fx@gnu.org>
parents:
diff changeset
4561 @vindex gnus-thread-hide-subtree
Dave Love <fx@gnu.org>
parents:
diff changeset
4562 If non-@code{nil}, all threads will be hidden when the summary buffer is
Dave Love <fx@gnu.org>
parents:
diff changeset
4563 generated.
Dave Love <fx@gnu.org>
parents:
diff changeset
4564
Dave Love <fx@gnu.org>
parents:
diff changeset
4565 @item gnus-thread-expunge-below
Dave Love <fx@gnu.org>
parents:
diff changeset
4566 @vindex gnus-thread-expunge-below
Dave Love <fx@gnu.org>
parents:
diff changeset
4567 All threads that have a total score (as defined by
Dave Love <fx@gnu.org>
parents:
diff changeset
4568 @code{gnus-thread-score-function}) less than this number will be
Dave Love <fx@gnu.org>
parents:
diff changeset
4569 expunged. This variable is @code{nil} by default, which means that no
Dave Love <fx@gnu.org>
parents:
diff changeset
4570 threads are expunged.
Dave Love <fx@gnu.org>
parents:
diff changeset
4571
Dave Love <fx@gnu.org>
parents:
diff changeset
4572 @item gnus-thread-hide-killed
Dave Love <fx@gnu.org>
parents:
diff changeset
4573 @vindex gnus-thread-hide-killed
Dave Love <fx@gnu.org>
parents:
diff changeset
4574 if you kill a thread and this variable is non-@code{nil}, the subtree
Dave Love <fx@gnu.org>
parents:
diff changeset
4575 will be hidden.
Dave Love <fx@gnu.org>
parents:
diff changeset
4576
Dave Love <fx@gnu.org>
parents:
diff changeset
4577 @item gnus-thread-ignore-subject
Dave Love <fx@gnu.org>
parents:
diff changeset
4578 @vindex gnus-thread-ignore-subject
Dave Love <fx@gnu.org>
parents:
diff changeset
4579 Sometimes somebody changes the subject in the middle of a thread. If
Dave Love <fx@gnu.org>
parents:
diff changeset
4580 this variable is non-@code{nil}, the subject change is ignored. If it
Dave Love <fx@gnu.org>
parents:
diff changeset
4581 is @code{nil}, which is the default, a change in the subject will result
Dave Love <fx@gnu.org>
parents:
diff changeset
4582 in a new thread.
Dave Love <fx@gnu.org>
parents:
diff changeset
4583
Dave Love <fx@gnu.org>
parents:
diff changeset
4584 @item gnus-thread-indent-level
Dave Love <fx@gnu.org>
parents:
diff changeset
4585 @vindex gnus-thread-indent-level
Dave Love <fx@gnu.org>
parents:
diff changeset
4586 This is a number that says how much each sub-thread should be indented.
Dave Love <fx@gnu.org>
parents:
diff changeset
4587 The default is 4.
Dave Love <fx@gnu.org>
parents:
diff changeset
4588
Dave Love <fx@gnu.org>
parents:
diff changeset
4589 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
4590
Dave Love <fx@gnu.org>
parents:
diff changeset
4591
Dave Love <fx@gnu.org>
parents:
diff changeset
4592 @node Low-Level Threading
Dave Love <fx@gnu.org>
parents:
diff changeset
4593 @subsubsection Low-Level Threading
Dave Love <fx@gnu.org>
parents:
diff changeset
4594
Dave Love <fx@gnu.org>
parents:
diff changeset
4595 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
4596
Dave Love <fx@gnu.org>
parents:
diff changeset
4597 @item gnus-parse-headers-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
4598 @vindex gnus-parse-headers-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
4599 Hook run before parsing any headers. The default value is
Dave Love <fx@gnu.org>
parents:
diff changeset
4600 @code{(gnus-decode-rfc1522)}, which means that QPized headers will be
Dave Love <fx@gnu.org>
parents:
diff changeset
4601 slightly decoded in a hackish way. This is likely to change in the
26290
df10644e22b5 Fix complaints from makeinfo 4.0.
Dave Love <fx@gnu.org>
parents: 25829
diff changeset
4602 future when Gnus becomes @sc{mime}ified.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
4603
Dave Love <fx@gnu.org>
parents:
diff changeset
4604 @item gnus-alter-header-function
Dave Love <fx@gnu.org>
parents:
diff changeset
4605 @vindex gnus-alter-header-function
Dave Love <fx@gnu.org>
parents:
diff changeset
4606 If non-@code{nil}, this function will be called to allow alteration of
Dave Love <fx@gnu.org>
parents:
diff changeset
4607 article header structures. The function is called with one parameter,
Dave Love <fx@gnu.org>
parents:
diff changeset
4608 the article header vector, which it may alter in any way. For instance,
Dave Love <fx@gnu.org>
parents:
diff changeset
4609 if you have a mail-to-news gateway which alters the @code{Message-ID}s
Dave Love <fx@gnu.org>
parents:
diff changeset
4610 in systematic ways (by adding prefixes and such), you can use this
Dave Love <fx@gnu.org>
parents:
diff changeset
4611 variable to un-scramble the @code{Message-ID}s so that they are more
Dave Love <fx@gnu.org>
parents:
diff changeset
4612 meaningful. Here's one example:
Dave Love <fx@gnu.org>
parents:
diff changeset
4613
Dave Love <fx@gnu.org>
parents:
diff changeset
4614 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
4615 (setq gnus-alter-header-function 'my-alter-message-id)
Dave Love <fx@gnu.org>
parents:
diff changeset
4616
Dave Love <fx@gnu.org>
parents:
diff changeset
4617 (defun my-alter-message-id (header)
Dave Love <fx@gnu.org>
parents:
diff changeset
4618 (let ((id (mail-header-id header)))
Dave Love <fx@gnu.org>
parents:
diff changeset
4619 (when (string-match
Dave Love <fx@gnu.org>
parents:
diff changeset
4620 "\\(<[^<>@@]*\\)\\.?cygnus\\..*@@\\([^<>@@]*>\\)" id)
Dave Love <fx@gnu.org>
parents:
diff changeset
4621 (mail-header-set-id
Dave Love <fx@gnu.org>
parents:
diff changeset
4622 (concat (match-string 1 id) "@@" (match-string 2 id))
Dave Love <fx@gnu.org>
parents:
diff changeset
4623 header))))
Dave Love <fx@gnu.org>
parents:
diff changeset
4624 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
4625
Dave Love <fx@gnu.org>
parents:
diff changeset
4626 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
4627
Dave Love <fx@gnu.org>
parents:
diff changeset
4628
Dave Love <fx@gnu.org>
parents:
diff changeset
4629 @node Thread Commands
Dave Love <fx@gnu.org>
parents:
diff changeset
4630 @subsection Thread Commands
Dave Love <fx@gnu.org>
parents:
diff changeset
4631 @cindex thread commands
Dave Love <fx@gnu.org>
parents:
diff changeset
4632
Dave Love <fx@gnu.org>
parents:
diff changeset
4633 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
4634
Dave Love <fx@gnu.org>
parents:
diff changeset
4635 @item T k
Dave Love <fx@gnu.org>
parents:
diff changeset
4636 @itemx M-C-k
Dave Love <fx@gnu.org>
parents:
diff changeset
4637 @kindex T k (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4638 @kindex M-C-k (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4639 @findex gnus-summary-kill-thread
Dave Love <fx@gnu.org>
parents:
diff changeset
4640 Mark all articles in the current (sub-)thread as read
Dave Love <fx@gnu.org>
parents:
diff changeset
4641 (@code{gnus-summary-kill-thread}). If the prefix argument is positive,
Dave Love <fx@gnu.org>
parents:
diff changeset
4642 remove all marks instead. If the prefix argument is negative, tick
Dave Love <fx@gnu.org>
parents:
diff changeset
4643 articles instead.
Dave Love <fx@gnu.org>
parents:
diff changeset
4644
Dave Love <fx@gnu.org>
parents:
diff changeset
4645 @item T l
Dave Love <fx@gnu.org>
parents:
diff changeset
4646 @itemx M-C-l
Dave Love <fx@gnu.org>
parents:
diff changeset
4647 @kindex T l (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4648 @kindex M-C-l (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4649 @findex gnus-summary-lower-thread
Dave Love <fx@gnu.org>
parents:
diff changeset
4650 Lower the score of the current (sub-)thread
Dave Love <fx@gnu.org>
parents:
diff changeset
4651 (@code{gnus-summary-lower-thread}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4652
Dave Love <fx@gnu.org>
parents:
diff changeset
4653 @item T i
Dave Love <fx@gnu.org>
parents:
diff changeset
4654 @kindex T i (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4655 @findex gnus-summary-raise-thread
Dave Love <fx@gnu.org>
parents:
diff changeset
4656 Increase the score of the current (sub-)thread
Dave Love <fx@gnu.org>
parents:
diff changeset
4657 (@code{gnus-summary-raise-thread}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4658
Dave Love <fx@gnu.org>
parents:
diff changeset
4659 @item T #
Dave Love <fx@gnu.org>
parents:
diff changeset
4660 @kindex T # (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4661 @findex gnus-uu-mark-thread
Dave Love <fx@gnu.org>
parents:
diff changeset
4662 Set the process mark on the current (sub-)thread
Dave Love <fx@gnu.org>
parents:
diff changeset
4663 (@code{gnus-uu-mark-thread}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4664
Dave Love <fx@gnu.org>
parents:
diff changeset
4665 @item T M-#
Dave Love <fx@gnu.org>
parents:
diff changeset
4666 @kindex T M-# (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4667 @findex gnus-uu-unmark-thread
Dave Love <fx@gnu.org>
parents:
diff changeset
4668 Remove the process mark from the current (sub-)thread
Dave Love <fx@gnu.org>
parents:
diff changeset
4669 (@code{gnus-uu-unmark-thread}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4670
Dave Love <fx@gnu.org>
parents:
diff changeset
4671 @item T T
Dave Love <fx@gnu.org>
parents:
diff changeset
4672 @kindex T T (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4673 @findex gnus-summary-toggle-threads
Dave Love <fx@gnu.org>
parents:
diff changeset
4674 Toggle threading (@code{gnus-summary-toggle-threads}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4675
Dave Love <fx@gnu.org>
parents:
diff changeset
4676 @item T s
Dave Love <fx@gnu.org>
parents:
diff changeset
4677 @kindex T s (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4678 @findex gnus-summary-show-thread
Dave Love <fx@gnu.org>
parents:
diff changeset
4679 Expose the (sub-)thread hidden under the current article, if any
Dave Love <fx@gnu.org>
parents:
diff changeset
4680 (@code{gnus-summary-show-thread}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4681
Dave Love <fx@gnu.org>
parents:
diff changeset
4682 @item T h
Dave Love <fx@gnu.org>
parents:
diff changeset
4683 @kindex T h (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4684 @findex gnus-summary-hide-thread
Dave Love <fx@gnu.org>
parents:
diff changeset
4685 Hide the current (sub-)thread (@code{gnus-summary-hide-thread}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4686
Dave Love <fx@gnu.org>
parents:
diff changeset
4687 @item T S
Dave Love <fx@gnu.org>
parents:
diff changeset
4688 @kindex T S (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4689 @findex gnus-summary-show-all-threads
Dave Love <fx@gnu.org>
parents:
diff changeset
4690 Expose all hidden threads (@code{gnus-summary-show-all-threads}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4691
Dave Love <fx@gnu.org>
parents:
diff changeset
4692 @item T H
Dave Love <fx@gnu.org>
parents:
diff changeset
4693 @kindex T H (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4694 @findex gnus-summary-hide-all-threads
Dave Love <fx@gnu.org>
parents:
diff changeset
4695 Hide all threads (@code{gnus-summary-hide-all-threads}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4696
Dave Love <fx@gnu.org>
parents:
diff changeset
4697 @item T t
Dave Love <fx@gnu.org>
parents:
diff changeset
4698 @kindex T t (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4699 @findex gnus-summary-rethread-current
Dave Love <fx@gnu.org>
parents:
diff changeset
4700 Re-thread the current article's thread
Dave Love <fx@gnu.org>
parents:
diff changeset
4701 (@code{gnus-summary-rethread-current}). This works even when the
Dave Love <fx@gnu.org>
parents:
diff changeset
4702 summary buffer is otherwise unthreaded.
Dave Love <fx@gnu.org>
parents:
diff changeset
4703
Dave Love <fx@gnu.org>
parents:
diff changeset
4704 @item T ^
Dave Love <fx@gnu.org>
parents:
diff changeset
4705 @kindex T ^ (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4706 @findex gnus-summary-reparent-thread
Dave Love <fx@gnu.org>
parents:
diff changeset
4707 Make the current article the child of the marked (or previous) article
Dave Love <fx@gnu.org>
parents:
diff changeset
4708 (@code{gnus-summary-reparent-thread}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4709
Dave Love <fx@gnu.org>
parents:
diff changeset
4710 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
4711
Dave Love <fx@gnu.org>
parents:
diff changeset
4712 The following commands are thread movement commands. They all
Dave Love <fx@gnu.org>
parents:
diff changeset
4713 understand the numeric prefix.
Dave Love <fx@gnu.org>
parents:
diff changeset
4714
Dave Love <fx@gnu.org>
parents:
diff changeset
4715 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
4716
Dave Love <fx@gnu.org>
parents:
diff changeset
4717 @item T n
Dave Love <fx@gnu.org>
parents:
diff changeset
4718 @kindex T n (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4719 @findex gnus-summary-next-thread
Dave Love <fx@gnu.org>
parents:
diff changeset
4720 Go to the next thread (@code{gnus-summary-next-thread}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4721
Dave Love <fx@gnu.org>
parents:
diff changeset
4722 @item T p
Dave Love <fx@gnu.org>
parents:
diff changeset
4723 @kindex T p (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4724 @findex gnus-summary-prev-thread
Dave Love <fx@gnu.org>
parents:
diff changeset
4725 Go to the previous thread (@code{gnus-summary-prev-thread}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4726
Dave Love <fx@gnu.org>
parents:
diff changeset
4727 @item T d
Dave Love <fx@gnu.org>
parents:
diff changeset
4728 @kindex T d (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4729 @findex gnus-summary-down-thread
Dave Love <fx@gnu.org>
parents:
diff changeset
4730 Descend the thread (@code{gnus-summary-down-thread}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4731
Dave Love <fx@gnu.org>
parents:
diff changeset
4732 @item T u
Dave Love <fx@gnu.org>
parents:
diff changeset
4733 @kindex T u (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4734 @findex gnus-summary-up-thread
Dave Love <fx@gnu.org>
parents:
diff changeset
4735 Ascend the thread (@code{gnus-summary-up-thread}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4736
Dave Love <fx@gnu.org>
parents:
diff changeset
4737 @item T o
Dave Love <fx@gnu.org>
parents:
diff changeset
4738 @kindex T o (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
4739 @findex gnus-summary-top-thread
Dave Love <fx@gnu.org>
parents:
diff changeset
4740 Go to the top of the thread (@code{gnus-summary-top-thread}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4741 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
4742
Dave Love <fx@gnu.org>
parents:
diff changeset
4743 @vindex gnus-thread-operation-ignore-subject
Dave Love <fx@gnu.org>
parents:
diff changeset
4744 If you ignore subject while threading, you'll naturally end up with
Dave Love <fx@gnu.org>
parents:
diff changeset
4745 threads that have several different subjects in them. If you then issue
Dave Love <fx@gnu.org>
parents:
diff changeset
4746 a command like `T k' (@code{gnus-summary-kill-thread}) you might not
Dave Love <fx@gnu.org>
parents:
diff changeset
4747 wish to kill the entire thread, but just those parts of the thread that
Dave Love <fx@gnu.org>
parents:
diff changeset
4748 have the same subject as the current article. If you like this idea,
Dave Love <fx@gnu.org>
parents:
diff changeset
4749 you can fiddle with @code{gnus-thread-operation-ignore-subject}. If it
Dave Love <fx@gnu.org>
parents:
diff changeset
4750 is non-@code{nil} (which it is by default), subjects will be ignored
Dave Love <fx@gnu.org>
parents:
diff changeset
4751 when doing thread commands. If this variable is @code{nil}, articles in
Dave Love <fx@gnu.org>
parents:
diff changeset
4752 the same thread with different subjects will not be included in the
Dave Love <fx@gnu.org>
parents:
diff changeset
4753 operation in question. If this variable is @code{fuzzy}, only articles
Dave Love <fx@gnu.org>
parents:
diff changeset
4754 that have subjects fuzzily equal will be included (@pxref{Fuzzy
Dave Love <fx@gnu.org>
parents:
diff changeset
4755 Matching}).
Dave Love <fx@gnu.org>
parents:
diff changeset
4756
Dave Love <fx@gnu.org>
parents:
diff changeset
4757
Dave Love <fx@gnu.org>
parents:
diff changeset
4758 @node Sorting
Dave Love <fx@gnu.org>
parents:
diff changeset
4759 @section Sorting
Dave Love <fx@gnu.org>
parents:
diff changeset
4760
Dave Love <fx@gnu.org>
parents:
diff changeset
4761 @findex gnus-thread-sort-by-total-score
Dave Love <fx@gnu.org>
parents:
diff changeset
4762 @findex gnus-thread-sort-by-date
Dave Love <fx@gnu.org>
parents:
diff changeset
4763 @findex gnus-thread-sort-by-score
Dave Love <fx@gnu.org>
parents:
diff changeset
4764 @findex gnus-thread-sort-by-subject
Dave Love <fx@gnu.org>
parents:
diff changeset
4765 @findex gnus-thread-sort-by-author
Dave Love <fx@gnu.org>
parents:
diff changeset
4766 @findex gnus-thread-sort-by-number
Dave Love <fx@gnu.org>
parents:
diff changeset
4767 @vindex gnus-thread-sort-functions
Dave Love <fx@gnu.org>
parents:
diff changeset
4768 If you are using a threaded summary display, you can sort the threads by
Dave Love <fx@gnu.org>
parents:
diff changeset
4769 setting @code{gnus-thread-sort-functions}, which is a list of functions.
Dave Love <fx@gnu.org>
parents:
diff changeset
4770 By default, sorting is done on article numbers. Ready-made sorting
Dave Love <fx@gnu.org>
parents:
diff changeset
4771 predicate functions include @code{gnus-thread-sort-by-number},
Dave Love <fx@gnu.org>
parents:
diff changeset
4772 @code{gnus-thread-sort-by-author}, @code{gnus-thread-sort-by-subject},
Dave Love <fx@gnu.org>
parents:
diff changeset
4773 @code{gnus-thread-sort-by-date}, @code{gnus-thread-sort-by-score}, and
Dave Love <fx@gnu.org>
parents:
diff changeset
4774 @code{gnus-thread-sort-by-total-score}.
Dave Love <fx@gnu.org>
parents:
diff changeset
4775
Dave Love <fx@gnu.org>
parents:
diff changeset
4776 Each function takes two threads and returns non-@code{nil} if the first
Dave Love <fx@gnu.org>
parents:
diff changeset
4777 thread should be sorted before the other. Note that sorting really is
Dave Love <fx@gnu.org>
parents:
diff changeset
4778 normally done by looking only at the roots of each thread. If you use
Dave Love <fx@gnu.org>
parents:
diff changeset
4779 more than one function, the primary sort key should be the last function
Dave Love <fx@gnu.org>
parents:
diff changeset
4780 in the list. You should probably always include
Dave Love <fx@gnu.org>
parents:
diff changeset
4781 @code{gnus-thread-sort-by-number} in the list of sorting
Dave Love <fx@gnu.org>
parents:
diff changeset
4782 functions---preferably first. This will ensure that threads that are
Dave Love <fx@gnu.org>
parents:
diff changeset
4783 equal with respect to the other sort criteria will be displayed in
Dave Love <fx@gnu.org>
parents:
diff changeset
4784 ascending article order.
Dave Love <fx@gnu.org>
parents:
diff changeset
4785
Dave Love <fx@gnu.org>
parents:
diff changeset
4786 If you would like to sort by score, then by subject, and finally by
Dave Love <fx@gnu.org>
parents:
diff changeset
4787 number, you could do something like:
Dave Love <fx@gnu.org>
parents:
diff changeset
4788
Dave Love <fx@gnu.org>
parents:
diff changeset
4789 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
4790 (setq gnus-thread-sort-functions
Dave Love <fx@gnu.org>
parents:
diff changeset
4791 '(gnus-thread-sort-by-number
Dave Love <fx@gnu.org>
parents:
diff changeset
4792 gnus-thread-sort-by-subject
Dave Love <fx@gnu.org>
parents:
diff changeset
4793 gnus-thread-sort-by-total-score))
Dave Love <fx@gnu.org>
parents:
diff changeset
4794 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
4795
Dave Love <fx@gnu.org>
parents:
diff changeset
4796 The threads that have highest score will be displayed first in the
Dave Love <fx@gnu.org>
parents:
diff changeset
4797 summary buffer. When threads have the same score, they will be sorted
Dave Love <fx@gnu.org>
parents:
diff changeset
4798 alphabetically. The threads that have the same score and the same
Dave Love <fx@gnu.org>
parents:
diff changeset
4799 subject will be sorted by number, which is (normally) the sequence in
Dave Love <fx@gnu.org>
parents:
diff changeset
4800 which the articles arrived.
Dave Love <fx@gnu.org>
parents:
diff changeset
4801
Dave Love <fx@gnu.org>
parents:
diff changeset
4802 If you want to sort by score and then reverse arrival order, you could
Dave Love <fx@gnu.org>
parents:
diff changeset
4803 say something like:
Dave Love <fx@gnu.org>
parents:
diff changeset
4804
Dave Love <fx@gnu.org>
parents:
diff changeset
4805 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
4806 (setq gnus-thread-sort-functions
Dave Love <fx@gnu.org>
parents:
diff changeset
4807 '((lambda (t1 t2)
Dave Love <fx@gnu.org>
parents:
diff changeset
4808 (not (gnus-thread-sort-by-number t1 t2)))
Dave Love <fx@gnu.org>
parents:
diff changeset
4809 gnus-thread-sort-by-score))
Dave Love <fx@gnu.org>
parents:
diff changeset
4810 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
4811
Dave Love <fx@gnu.org>
parents:
diff changeset
4812 @vindex gnus-thread-score-function
Dave Love <fx@gnu.org>
parents:
diff changeset
4813 The function in the @code{gnus-thread-score-function} variable (default
Dave Love <fx@gnu.org>
parents:
diff changeset
4814 @code{+}) is used for calculating the total score of a thread. Useful
Dave Love <fx@gnu.org>
parents:
diff changeset
4815 functions might be @code{max}, @code{min}, or squared means, or whatever
Dave Love <fx@gnu.org>
parents:
diff changeset
4816 tickles your fancy.
Dave Love <fx@gnu.org>
parents:
diff changeset
4817
Dave Love <fx@gnu.org>
parents:
diff changeset
4818 @findex gnus-article-sort-functions
Dave Love <fx@gnu.org>
parents:
diff changeset
4819 @findex gnus-article-sort-by-date
Dave Love <fx@gnu.org>
parents:
diff changeset
4820 @findex gnus-article-sort-by-score
Dave Love <fx@gnu.org>
parents:
diff changeset
4821 @findex gnus-article-sort-by-subject
Dave Love <fx@gnu.org>
parents:
diff changeset
4822 @findex gnus-article-sort-by-author
Dave Love <fx@gnu.org>
parents:
diff changeset
4823 @findex gnus-article-sort-by-number
Dave Love <fx@gnu.org>
parents:
diff changeset
4824 If you are using an unthreaded display for some strange reason or other,
Dave Love <fx@gnu.org>
parents:
diff changeset
4825 you have to fiddle with the @code{gnus-article-sort-functions} variable.
Dave Love <fx@gnu.org>
parents:
diff changeset
4826 It is very similar to the @code{gnus-thread-sort-functions}, except that
Dave Love <fx@gnu.org>
parents:
diff changeset
4827 it uses slightly different functions for article comparison. Available
Dave Love <fx@gnu.org>
parents:
diff changeset
4828 sorting predicate functions are @code{gnus-article-sort-by-number},
Dave Love <fx@gnu.org>
parents:
diff changeset
4829 @code{gnus-article-sort-by-author}, @code{gnus-article-sort-by-subject},
Dave Love <fx@gnu.org>
parents:
diff changeset
4830 @code{gnus-article-sort-by-date}, and @code{gnus-article-sort-by-score}.
Dave Love <fx@gnu.org>
parents:
diff changeset
4831
Dave Love <fx@gnu.org>
parents:
diff changeset
4832 If you want to sort an unthreaded summary display by subject, you could
Dave Love <fx@gnu.org>
parents:
diff changeset
4833 say something like:
Dave Love <fx@gnu.org>
parents:
diff changeset
4834
Dave Love <fx@gnu.org>
parents:
diff changeset
4835 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
4836 (setq gnus-article-sort-functions
Dave Love <fx@gnu.org>
parents:
diff changeset
4837 '(gnus-article-sort-by-number
Dave Love <fx@gnu.org>
parents:
diff changeset
4838 gnus-article-sort-by-subject))
Dave Love <fx@gnu.org>
parents:
diff changeset
4839 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
4840
Dave Love <fx@gnu.org>
parents:
diff changeset
4841
Dave Love <fx@gnu.org>
parents:
diff changeset
4842
Dave Love <fx@gnu.org>
parents:
diff changeset
4843 @node Asynchronous Fetching
Dave Love <fx@gnu.org>
parents:
diff changeset
4844 @section Asynchronous Article Fetching
Dave Love <fx@gnu.org>
parents:
diff changeset
4845 @cindex asynchronous article fetching
Dave Love <fx@gnu.org>
parents:
diff changeset
4846 @cindex article pre-fetch
Dave Love <fx@gnu.org>
parents:
diff changeset
4847 @cindex pre-fetch
Dave Love <fx@gnu.org>
parents:
diff changeset
4848
Dave Love <fx@gnu.org>
parents:
diff changeset
4849 If you read your news from an @sc{nntp} server that's far away, the
Dave Love <fx@gnu.org>
parents:
diff changeset
4850 network latencies may make reading articles a chore. You have to wait
Dave Love <fx@gnu.org>
parents:
diff changeset
4851 for a while after pressing @kbd{n} to go to the next article before the
Dave Love <fx@gnu.org>
parents:
diff changeset
4852 article appears. Why can't Gnus just go ahead and fetch the article
Dave Love <fx@gnu.org>
parents:
diff changeset
4853 while you are reading the previous one? Why not, indeed.
Dave Love <fx@gnu.org>
parents:
diff changeset
4854
Dave Love <fx@gnu.org>
parents:
diff changeset
4855 First, some caveats. There are some pitfalls to using asynchronous
Dave Love <fx@gnu.org>
parents:
diff changeset
4856 article fetching, especially the way Gnus does it.
Dave Love <fx@gnu.org>
parents:
diff changeset
4857
Dave Love <fx@gnu.org>
parents:
diff changeset
4858 Let's say you are reading article 1, which is short, and article 2 is
Dave Love <fx@gnu.org>
parents:
diff changeset
4859 quite long, and you are not interested in reading that. Gnus does not
Dave Love <fx@gnu.org>
parents:
diff changeset
4860 know this, so it goes ahead and fetches article 2. You decide to read
Dave Love <fx@gnu.org>
parents:
diff changeset
4861 article 3, but since Gnus is in the process of fetching article 2, the
Dave Love <fx@gnu.org>
parents:
diff changeset
4862 connection is blocked.
Dave Love <fx@gnu.org>
parents:
diff changeset
4863
Dave Love <fx@gnu.org>
parents:
diff changeset
4864 To avoid these situations, Gnus will open two (count 'em two)
Dave Love <fx@gnu.org>
parents:
diff changeset
4865 connections to the server. Some people may think this isn't a very nice
Dave Love <fx@gnu.org>
parents:
diff changeset
4866 thing to do, but I don't see any real alternatives. Setting up that
Dave Love <fx@gnu.org>
parents:
diff changeset
4867 extra connection takes some time, so Gnus startup will be slower.
Dave Love <fx@gnu.org>
parents:
diff changeset
4868
Dave Love <fx@gnu.org>
parents:
diff changeset
4869 Gnus will fetch more articles than you will read. This will mean that
Dave Love <fx@gnu.org>
parents:
diff changeset
4870 the link between your machine and the @sc{nntp} server will become more
Dave Love <fx@gnu.org>
parents:
diff changeset
4871 loaded than if you didn't use article pre-fetch. The server itself will
Dave Love <fx@gnu.org>
parents:
diff changeset
4872 also become more loaded---both with the extra article requests, and the
Dave Love <fx@gnu.org>
parents:
diff changeset
4873 extra connection.
Dave Love <fx@gnu.org>
parents:
diff changeset
4874
Dave Love <fx@gnu.org>
parents:
diff changeset
4875 Ok, so now you know that you shouldn't really use this thing... unless
Dave Love <fx@gnu.org>
parents:
diff changeset
4876 you really want to.
Dave Love <fx@gnu.org>
parents:
diff changeset
4877
Dave Love <fx@gnu.org>
parents:
diff changeset
4878 @vindex gnus-asynchronous
Dave Love <fx@gnu.org>
parents:
diff changeset
4879 Here's how: Set @code{gnus-asynchronous} to @code{t}. The rest should
Dave Love <fx@gnu.org>
parents:
diff changeset
4880 happen automatically.
Dave Love <fx@gnu.org>
parents:
diff changeset
4881
Dave Love <fx@gnu.org>
parents:
diff changeset
4882 @vindex gnus-use-article-prefetch
Dave Love <fx@gnu.org>
parents:
diff changeset
4883 You can control how many articles are to be pre-fetched by setting
Dave Love <fx@gnu.org>
parents:
diff changeset
4884 @code{gnus-use-article-prefetch}. This is 30 by default, which means
Dave Love <fx@gnu.org>
parents:
diff changeset
4885 that when you read an article in the group, the backend will pre-fetch
Dave Love <fx@gnu.org>
parents:
diff changeset
4886 the next 30 articles. If this variable is @code{t}, the backend will
Dave Love <fx@gnu.org>
parents:
diff changeset
4887 pre-fetch all the articles it can without bound. If it is
Dave Love <fx@gnu.org>
parents:
diff changeset
4888 @code{nil}, no pre-fetching will be done.
Dave Love <fx@gnu.org>
parents:
diff changeset
4889
Dave Love <fx@gnu.org>
parents:
diff changeset
4890 @vindex gnus-async-prefetch-article-p
Dave Love <fx@gnu.org>
parents:
diff changeset
4891 @findex gnus-async-read-p
Dave Love <fx@gnu.org>
parents:
diff changeset
4892 There are probably some articles that you don't want to pre-fetch---read
Dave Love <fx@gnu.org>
parents:
diff changeset
4893 articles, for instance. The @code{gnus-async-prefetch-article-p} variable controls whether an article is to be pre-fetched. This function should
Dave Love <fx@gnu.org>
parents:
diff changeset
4894 return non-@code{nil} when the article in question is to be
Dave Love <fx@gnu.org>
parents:
diff changeset
4895 pre-fetched. The default is @code{gnus-async-read-p}, which returns
Dave Love <fx@gnu.org>
parents:
diff changeset
4896 @code{nil} on read articles. The function is called with an article
Dave Love <fx@gnu.org>
parents:
diff changeset
4897 data structure as the only parameter.
Dave Love <fx@gnu.org>
parents:
diff changeset
4898
Dave Love <fx@gnu.org>
parents:
diff changeset
4899 If, for instance, you wish to pre-fetch only unread articles shorter than 100 lines, you could say something like:
Dave Love <fx@gnu.org>
parents:
diff changeset
4900
Dave Love <fx@gnu.org>
parents:
diff changeset
4901 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
4902 (defun my-async-short-unread-p (data)
Dave Love <fx@gnu.org>
parents:
diff changeset
4903 "Return non-nil for short, unread articles."
Dave Love <fx@gnu.org>
parents:
diff changeset
4904 (and (gnus-data-unread-p data)
Dave Love <fx@gnu.org>
parents:
diff changeset
4905 (< (mail-header-lines (gnus-data-header data))
Dave Love <fx@gnu.org>
parents:
diff changeset
4906 100)))
Dave Love <fx@gnu.org>
parents:
diff changeset
4907
Dave Love <fx@gnu.org>
parents:
diff changeset
4908 (setq gnus-async-prefetch-article-p 'my-async-short-unread-p)
Dave Love <fx@gnu.org>
parents:
diff changeset
4909 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
4910
Dave Love <fx@gnu.org>
parents:
diff changeset
4911 These functions will be called many, many times, so they should
Dave Love <fx@gnu.org>
parents:
diff changeset
4912 preferably be short and sweet to avoid slowing down Gnus too much.
Dave Love <fx@gnu.org>
parents:
diff changeset
4913 It's probably a good idea to byte-compile things like this.
Dave Love <fx@gnu.org>
parents:
diff changeset
4914
Dave Love <fx@gnu.org>
parents:
diff changeset
4915 @vindex gnus-prefetched-article-deletion-strategy
Dave Love <fx@gnu.org>
parents:
diff changeset
4916 Articles have to be removed from the asynch buffer sooner or later. The
Dave Love <fx@gnu.org>
parents:
diff changeset
4917 @code{gnus-prefetched-article-deletion-strategy} says when to remove
Dave Love <fx@gnu.org>
parents:
diff changeset
4918 articles. This is a list that may contain the following elements:
Dave Love <fx@gnu.org>
parents:
diff changeset
4919
Dave Love <fx@gnu.org>
parents:
diff changeset
4920 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
4921 @item read
Dave Love <fx@gnu.org>
parents:
diff changeset
4922 Remove articles when they are read.
Dave Love <fx@gnu.org>
parents:
diff changeset
4923
Dave Love <fx@gnu.org>
parents:
diff changeset
4924 @item exit
Dave Love <fx@gnu.org>
parents:
diff changeset
4925 Remove articles when exiting the group.
Dave Love <fx@gnu.org>
parents:
diff changeset
4926 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
4927
Dave Love <fx@gnu.org>
parents:
diff changeset
4928 The default value is @code{(read exit)}.
Dave Love <fx@gnu.org>
parents:
diff changeset
4929
Dave Love <fx@gnu.org>
parents:
diff changeset
4930 @c @vindex gnus-use-header-prefetch
Dave Love <fx@gnu.org>
parents:
diff changeset
4931 @c If @code{gnus-use-header-prefetch} is non-@code{nil}, prefetch articles
Dave Love <fx@gnu.org>
parents:
diff changeset
4932 @c from the next group.
Dave Love <fx@gnu.org>
parents:
diff changeset
4933
Dave Love <fx@gnu.org>
parents:
diff changeset
4934
Dave Love <fx@gnu.org>
parents:
diff changeset
4935 @node Article Caching
Dave Love <fx@gnu.org>
parents:
diff changeset
4936 @section Article Caching
Dave Love <fx@gnu.org>
parents:
diff changeset
4937 @cindex article caching
Dave Love <fx@gnu.org>
parents:
diff changeset
4938 @cindex caching
Dave Love <fx@gnu.org>
parents:
diff changeset
4939
Dave Love <fx@gnu.org>
parents:
diff changeset
4940 If you have an @emph{extremely} slow @sc{nntp} connection, you may
Dave Love <fx@gnu.org>
parents:
diff changeset
4941 consider turning article caching on. Each article will then be stored
Dave Love <fx@gnu.org>
parents:
diff changeset
4942 locally under your home directory. As you may surmise, this could
Dave Love <fx@gnu.org>
parents:
diff changeset
4943 potentially use @emph{huge} amounts of disk space, as well as eat up all
Dave Love <fx@gnu.org>
parents:
diff changeset
4944 your inodes so fast it will make your head swim. In vodka.
Dave Love <fx@gnu.org>
parents:
diff changeset
4945
Dave Love <fx@gnu.org>
parents:
diff changeset
4946 Used carefully, though, it could be just an easier way to save articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
4947
Dave Love <fx@gnu.org>
parents:
diff changeset
4948 @vindex gnus-use-long-file-name
Dave Love <fx@gnu.org>
parents:
diff changeset
4949 @vindex gnus-cache-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
4950 @vindex gnus-use-cache
Dave Love <fx@gnu.org>
parents:
diff changeset
4951 To turn caching on, set @code{gnus-use-cache} to @code{t}. By default,
Dave Love <fx@gnu.org>
parents:
diff changeset
4952 all articles ticked or marked as dormant will then be copied
Dave Love <fx@gnu.org>
parents:
diff changeset
4953 over to your local cache (@code{gnus-cache-directory}). Whether this
Dave Love <fx@gnu.org>
parents:
diff changeset
4954 cache is flat or hierarchal is controlled by the
Dave Love <fx@gnu.org>
parents:
diff changeset
4955 @code{gnus-use-long-file-name} variable, as usual.
Dave Love <fx@gnu.org>
parents:
diff changeset
4956
Dave Love <fx@gnu.org>
parents:
diff changeset
4957 When re-selecting a ticked or dormant article, it will be fetched from the
Dave Love <fx@gnu.org>
parents:
diff changeset
4958 cache instead of from the server. As articles in your cache will never
Dave Love <fx@gnu.org>
parents:
diff changeset
4959 expire, this might serve as a method of saving articles while still
Dave Love <fx@gnu.org>
parents:
diff changeset
4960 keeping them where they belong. Just mark all articles you want to save
Dave Love <fx@gnu.org>
parents:
diff changeset
4961 as dormant, and don't worry.
Dave Love <fx@gnu.org>
parents:
diff changeset
4962
Dave Love <fx@gnu.org>
parents:
diff changeset
4963 When an article is marked as read, is it removed from the cache.
Dave Love <fx@gnu.org>
parents:
diff changeset
4964
Dave Love <fx@gnu.org>
parents:
diff changeset
4965 @vindex gnus-cache-remove-articles
Dave Love <fx@gnu.org>
parents:
diff changeset
4966 @vindex gnus-cache-enter-articles
Dave Love <fx@gnu.org>
parents:
diff changeset
4967 The entering/removal of articles from the cache is controlled by the
Dave Love <fx@gnu.org>
parents:
diff changeset
4968 @code{gnus-cache-enter-articles} and @code{gnus-cache-remove-articles}
Dave Love <fx@gnu.org>
parents:
diff changeset
4969 variables. Both are lists of symbols. The first is @code{(ticked
Dave Love <fx@gnu.org>
parents:
diff changeset
4970 dormant)} by default, meaning that ticked and dormant articles will be
Dave Love <fx@gnu.org>
parents:
diff changeset
4971 put in the cache. The latter is @code{(read)} by default, meaning that
Dave Love <fx@gnu.org>
parents:
diff changeset
4972 articles marked as read are removed from the cache. Possibly
Dave Love <fx@gnu.org>
parents:
diff changeset
4973 symbols in these two lists are @code{ticked}, @code{dormant},
Dave Love <fx@gnu.org>
parents:
diff changeset
4974 @code{unread} and @code{read}.
Dave Love <fx@gnu.org>
parents:
diff changeset
4975
Dave Love <fx@gnu.org>
parents:
diff changeset
4976 @findex gnus-jog-cache
Dave Love <fx@gnu.org>
parents:
diff changeset
4977 So where does the massive article-fetching and storing come into the
Dave Love <fx@gnu.org>
parents:
diff changeset
4978 picture? The @code{gnus-jog-cache} command will go through all
Dave Love <fx@gnu.org>
parents:
diff changeset
4979 subscribed newsgroups, request all unread articles, score them, and
Dave Love <fx@gnu.org>
parents:
diff changeset
4980 store them in the cache. You should only ever, ever ever ever, use this
Dave Love <fx@gnu.org>
parents:
diff changeset
4981 command if 1) your connection to the @sc{nntp} server is really, really,
Dave Love <fx@gnu.org>
parents:
diff changeset
4982 really slow and 2) you have a really, really, really huge disk.
Dave Love <fx@gnu.org>
parents:
diff changeset
4983 Seriously. One way to cut down on the number of articles downloaded is
Dave Love <fx@gnu.org>
parents:
diff changeset
4984 to score unwanted articles down and have them marked as read. They will
Dave Love <fx@gnu.org>
parents:
diff changeset
4985 not then be downloaded by this command.
Dave Love <fx@gnu.org>
parents:
diff changeset
4986
Dave Love <fx@gnu.org>
parents:
diff changeset
4987 @vindex gnus-uncacheable-groups
Dave Love <fx@gnu.org>
parents:
diff changeset
4988 @vindex gnus-cacheable-groups
Dave Love <fx@gnu.org>
parents:
diff changeset
4989 It is likely that you do not want caching on all groups. For instance,
Dave Love <fx@gnu.org>
parents:
diff changeset
4990 if your @code{nnml} mail is located under your home directory, it makes no
Dave Love <fx@gnu.org>
parents:
diff changeset
4991 sense to cache it somewhere else under your home directory. Unless you
Dave Love <fx@gnu.org>
parents:
diff changeset
4992 feel that it's neat to use twice as much space.
Dave Love <fx@gnu.org>
parents:
diff changeset
4993
Dave Love <fx@gnu.org>
parents:
diff changeset
4994 To limit the caching, you could set @code{gnus-cacheable-groups} to a
Dave Love <fx@gnu.org>
parents:
diff changeset
4995 regexp of groups to cache, @samp{^nntp} for instance, or set the
Dave Love <fx@gnu.org>
parents:
diff changeset
4996 @code{gnus-uncacheable-groups} regexp to @samp{^nnml}, for instance.
Dave Love <fx@gnu.org>
parents:
diff changeset
4997 Both variables are @code{nil} by default. If a group matches both
Dave Love <fx@gnu.org>
parents:
diff changeset
4998 variables, the group is not cached.
Dave Love <fx@gnu.org>
parents:
diff changeset
4999
Dave Love <fx@gnu.org>
parents:
diff changeset
5000 @findex gnus-cache-generate-nov-databases
Dave Love <fx@gnu.org>
parents:
diff changeset
5001 @findex gnus-cache-generate-active
Dave Love <fx@gnu.org>
parents:
diff changeset
5002 @vindex gnus-cache-active-file
Dave Love <fx@gnu.org>
parents:
diff changeset
5003 The cache stores information on what articles it contains in its active
Dave Love <fx@gnu.org>
parents:
diff changeset
5004 file (@code{gnus-cache-active-file}). If this file (or any other parts
Dave Love <fx@gnu.org>
parents:
diff changeset
5005 of the cache) becomes all messed up for some reason or other, Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
5006 offers two functions that will try to set things right. @kbd{M-x
Dave Love <fx@gnu.org>
parents:
diff changeset
5007 gnus-cache-generate-nov-databases} will (re)build all the @sc{nov}
Dave Love <fx@gnu.org>
parents:
diff changeset
5008 files, and @kbd{gnus-cache-generate-active} will (re)generate the active
Dave Love <fx@gnu.org>
parents:
diff changeset
5009 file.
Dave Love <fx@gnu.org>
parents:
diff changeset
5010
Dave Love <fx@gnu.org>
parents:
diff changeset
5011
Dave Love <fx@gnu.org>
parents:
diff changeset
5012 @node Persistent Articles
Dave Love <fx@gnu.org>
parents:
diff changeset
5013 @section Persistent Articles
Dave Love <fx@gnu.org>
parents:
diff changeset
5014 @cindex persistent articles
Dave Love <fx@gnu.org>
parents:
diff changeset
5015
Dave Love <fx@gnu.org>
parents:
diff changeset
5016 Closely related to article caching, we have @dfn{persistent articles}.
Dave Love <fx@gnu.org>
parents:
diff changeset
5017 In fact, it's just a different way of looking at caching, and much more
Dave Love <fx@gnu.org>
parents:
diff changeset
5018 useful in my opinion.
Dave Love <fx@gnu.org>
parents:
diff changeset
5019
Dave Love <fx@gnu.org>
parents:
diff changeset
5020 Say you're reading a newsgroup, and you happen on to some valuable gem
Dave Love <fx@gnu.org>
parents:
diff changeset
5021 that you want to keep and treasure forever. You'd normally just save it
Dave Love <fx@gnu.org>
parents:
diff changeset
5022 (using one of the many saving commands) in some file. The problem with
Dave Love <fx@gnu.org>
parents:
diff changeset
5023 that is that it's just, well, yucky. Ideally you'd prefer just having
Dave Love <fx@gnu.org>
parents:
diff changeset
5024 the article remain in the group where you found it forever; untouched by
Dave Love <fx@gnu.org>
parents:
diff changeset
5025 the expiry going on at the news server.
Dave Love <fx@gnu.org>
parents:
diff changeset
5026
Dave Love <fx@gnu.org>
parents:
diff changeset
5027 This is what a @dfn{persistent article} is---an article that just won't
Dave Love <fx@gnu.org>
parents:
diff changeset
5028 be deleted. It's implemented using the normal cache functions, but
Dave Love <fx@gnu.org>
parents:
diff changeset
5029 you use two explicit commands for managing persistent articles:
Dave Love <fx@gnu.org>
parents:
diff changeset
5030
Dave Love <fx@gnu.org>
parents:
diff changeset
5031 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
5032
Dave Love <fx@gnu.org>
parents:
diff changeset
5033 @item *
Dave Love <fx@gnu.org>
parents:
diff changeset
5034 @kindex * (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
5035 @findex gnus-cache-enter-article
Dave Love <fx@gnu.org>
parents:
diff changeset
5036 Make the current article persistent (@code{gnus-cache-enter-article}).
Dave Love <fx@gnu.org>
parents:
diff changeset
5037
Dave Love <fx@gnu.org>
parents:
diff changeset
5038 @item M-*
Dave Love <fx@gnu.org>
parents:
diff changeset
5039 @kindex M-* (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
5040 @findex gnus-cache-remove-article
Dave Love <fx@gnu.org>
parents:
diff changeset
5041 Remove the current article from the persistent articles
Dave Love <fx@gnu.org>
parents:
diff changeset
5042 (@code{gnus-cache-remove-article}). This will normally delete the
Dave Love <fx@gnu.org>
parents:
diff changeset
5043 article.
Dave Love <fx@gnu.org>
parents:
diff changeset
5044 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
5045
Dave Love <fx@gnu.org>
parents:
diff changeset
5046 Both these commands understand the process/prefix convention.
Dave Love <fx@gnu.org>
parents:
diff changeset
5047
Dave Love <fx@gnu.org>
parents:
diff changeset
5048 To avoid having all ticked articles (and stuff) entered into the cache,
Dave Love <fx@gnu.org>
parents:
diff changeset
5049 you should set @code{gnus-use-cache} to @code{passive} if you're just
Dave Love <fx@gnu.org>
parents:
diff changeset
5050 interested in persistent articles:
Dave Love <fx@gnu.org>
parents:
diff changeset
5051
Dave Love <fx@gnu.org>
parents:
diff changeset
5052 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
5053 (setq gnus-use-cache 'passive)
Dave Love <fx@gnu.org>
parents:
diff changeset
5054 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
5055
Dave Love <fx@gnu.org>
parents:
diff changeset
5056
Dave Love <fx@gnu.org>
parents:
diff changeset
5057 @node Article Backlog
Dave Love <fx@gnu.org>
parents:
diff changeset
5058 @section Article Backlog
Dave Love <fx@gnu.org>
parents:
diff changeset
5059 @cindex backlog
Dave Love <fx@gnu.org>
parents:
diff changeset
5060 @cindex article backlog
Dave Love <fx@gnu.org>
parents:
diff changeset
5061
Dave Love <fx@gnu.org>
parents:
diff changeset
5062 If you have a slow connection, but the idea of using caching seems
Dave Love <fx@gnu.org>
parents:
diff changeset
5063 unappealing to you (and it is, really), you can help the situation some
Dave Love <fx@gnu.org>
parents:
diff changeset
5064 by switching on the @dfn{backlog}. This is where Gnus will buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
5065 already read articles so that it doesn't have to re-fetch articles
Dave Love <fx@gnu.org>
parents:
diff changeset
5066 you've already read. This only helps if you are in the habit of
Dave Love <fx@gnu.org>
parents:
diff changeset
5067 re-selecting articles you've recently read, of course. If you never do
Dave Love <fx@gnu.org>
parents:
diff changeset
5068 that, turning the backlog on will slow Gnus down a little bit, and
Dave Love <fx@gnu.org>
parents:
diff changeset
5069 increase memory usage some.
Dave Love <fx@gnu.org>
parents:
diff changeset
5070
Dave Love <fx@gnu.org>
parents:
diff changeset
5071 @vindex gnus-keep-backlog
Dave Love <fx@gnu.org>
parents:
diff changeset
5072 If you set @code{gnus-keep-backlog} to a number @var{n}, Gnus will store
Dave Love <fx@gnu.org>
parents:
diff changeset
5073 at most @var{n} old articles in a buffer for later re-fetching. If this
Dave Love <fx@gnu.org>
parents:
diff changeset
5074 variable is non-@code{nil} and is not a number, Gnus will store
Dave Love <fx@gnu.org>
parents:
diff changeset
5075 @emph{all} read articles, which means that your Emacs will grow without
Dave Love <fx@gnu.org>
parents:
diff changeset
5076 bound before exploding and taking your machine down with you. I put
Dave Love <fx@gnu.org>
parents:
diff changeset
5077 that in there just to keep y'all on your toes.
Dave Love <fx@gnu.org>
parents:
diff changeset
5078
Dave Love <fx@gnu.org>
parents:
diff changeset
5079 This variable is @code{nil} by default.
Dave Love <fx@gnu.org>
parents:
diff changeset
5080
Dave Love <fx@gnu.org>
parents:
diff changeset
5081
Dave Love <fx@gnu.org>
parents:
diff changeset
5082 @node Saving Articles
Dave Love <fx@gnu.org>
parents:
diff changeset
5083 @section Saving Articles
Dave Love <fx@gnu.org>
parents:
diff changeset
5084 @cindex saving articles
Dave Love <fx@gnu.org>
parents:
diff changeset
5085
Dave Love <fx@gnu.org>
parents:
diff changeset
5086 Gnus can save articles in a number of ways. Below is the documentation
Dave Love <fx@gnu.org>
parents:
diff changeset
5087 for saving articles in a fairly straight-forward fashion (i.e., little
Dave Love <fx@gnu.org>
parents:
diff changeset
5088 processing of the article is done before it is saved). For a different
Dave Love <fx@gnu.org>
parents:
diff changeset
5089 approach (uudecoding, unsharing) you should use @code{gnus-uu}
Dave Love <fx@gnu.org>
parents:
diff changeset
5090 (@pxref{Decoding Articles}).
Dave Love <fx@gnu.org>
parents:
diff changeset
5091
Dave Love <fx@gnu.org>
parents:
diff changeset
5092 @vindex gnus-save-all-headers
Dave Love <fx@gnu.org>
parents:
diff changeset
5093 If @code{gnus-save-all-headers} is non-@code{nil}, Gnus will not delete
Dave Love <fx@gnu.org>
parents:
diff changeset
5094 unwanted headers before saving the article.
Dave Love <fx@gnu.org>
parents:
diff changeset
5095
Dave Love <fx@gnu.org>
parents:
diff changeset
5096 @vindex gnus-saved-headers
Dave Love <fx@gnu.org>
parents:
diff changeset
5097 If the preceding variable is @code{nil}, all headers that match the
Dave Love <fx@gnu.org>
parents:
diff changeset
5098 @code{gnus-saved-headers} regexp will be kept, while the rest will be
Dave Love <fx@gnu.org>
parents:
diff changeset
5099 deleted before saving.
Dave Love <fx@gnu.org>
parents:
diff changeset
5100
Dave Love <fx@gnu.org>
parents:
diff changeset
5101 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
5102
Dave Love <fx@gnu.org>
parents:
diff changeset
5103 @item O o
Dave Love <fx@gnu.org>
parents:
diff changeset
5104 @itemx o
Dave Love <fx@gnu.org>
parents:
diff changeset
5105 @kindex O o (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
5106 @kindex o (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
5107 @findex gnus-summary-save-article
Dave Love <fx@gnu.org>
parents:
diff changeset
5108 @c @icon{gnus-summary-save-article}
Dave Love <fx@gnu.org>
parents:
diff changeset
5109 Save the current article using the default article saver
Dave Love <fx@gnu.org>
parents:
diff changeset
5110 (@code{gnus-summary-save-article}).
Dave Love <fx@gnu.org>
parents:
diff changeset
5111
Dave Love <fx@gnu.org>
parents:
diff changeset
5112 @item O m
Dave Love <fx@gnu.org>
parents:
diff changeset
5113 @kindex O m (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
5114 @findex gnus-summary-save-article-mail
Dave Love <fx@gnu.org>
parents:
diff changeset
5115 Save the current article in mail format
Dave Love <fx@gnu.org>
parents:
diff changeset
5116 (@code{gnus-summary-save-article-mail}).
Dave Love <fx@gnu.org>
parents:
diff changeset
5117
Dave Love <fx@gnu.org>
parents:
diff changeset
5118 @item O r
Dave Love <fx@gnu.org>
parents:
diff changeset
5119 @kindex O r (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
5120 @findex gnus-summary-save-article-rmail
Dave Love <fx@gnu.org>
parents:
diff changeset
5121 Save the current article in rmail format
Dave Love <fx@gnu.org>
parents:
diff changeset
5122 (@code{gnus-summary-save-article-rmail}).
Dave Love <fx@gnu.org>
parents:
diff changeset
5123
Dave Love <fx@gnu.org>
parents:
diff changeset
5124 @item O f
Dave Love <fx@gnu.org>
parents:
diff changeset
5125 @kindex O f (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
5126 @findex gnus-summary-save-article-file
Dave Love <fx@gnu.org>
parents:
diff changeset
5127 @c @icon{gnus-summary-save-article-file}
Dave Love <fx@gnu.org>
parents:
diff changeset
5128 Save the current article in plain file format
Dave Love <fx@gnu.org>
parents:
diff changeset
5129 (@code{gnus-summary-save-article-file}).
Dave Love <fx@gnu.org>
parents:
diff changeset
5130
Dave Love <fx@gnu.org>
parents:
diff changeset
5131 @item O F
Dave Love <fx@gnu.org>
parents:
diff changeset
5132 @kindex O F (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
5133 @findex gnus-summary-write-article-file
Dave Love <fx@gnu.org>
parents:
diff changeset
5134 Write the current article in plain file format, overwriting any previous
Dave Love <fx@gnu.org>
parents:
diff changeset
5135 file contents (@code{gnus-summary-write-article-file}).
Dave Love <fx@gnu.org>
parents:
diff changeset
5136
Dave Love <fx@gnu.org>
parents:
diff changeset
5137 @item O b
Dave Love <fx@gnu.org>
parents:
diff changeset
5138 @kindex O b (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
5139 @findex gnus-summary-save-article-body-file
Dave Love <fx@gnu.org>
parents:
diff changeset
5140 Save the current article body in plain file format
Dave Love <fx@gnu.org>
parents:
diff changeset
5141 (@code{gnus-summary-save-article-body-file}).
Dave Love <fx@gnu.org>
parents:
diff changeset
5142
Dave Love <fx@gnu.org>
parents:
diff changeset
5143 @item O h
Dave Love <fx@gnu.org>
parents:
diff changeset
5144 @kindex O h (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
5145 @findex gnus-summary-save-article-folder
Dave Love <fx@gnu.org>
parents:
diff changeset
5146 Save the current article in mh folder format
Dave Love <fx@gnu.org>
parents:
diff changeset
5147 (@code{gnus-summary-save-article-folder}).
Dave Love <fx@gnu.org>
parents:
diff changeset
5148
Dave Love <fx@gnu.org>
parents:
diff changeset
5149 @item O v
Dave Love <fx@gnu.org>
parents:
diff changeset
5150 @kindex O v (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
5151 @findex gnus-summary-save-article-vm
Dave Love <fx@gnu.org>
parents:
diff changeset
5152 Save the current article in a VM folder
Dave Love <fx@gnu.org>
parents:
diff changeset
5153 (@code{gnus-summary-save-article-vm}).
Dave Love <fx@gnu.org>
parents:
diff changeset
5154
Dave Love <fx@gnu.org>
parents:
diff changeset
5155 @item O p
Dave Love <fx@gnu.org>
parents:
diff changeset
5156 @kindex O p (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
5157 @findex gnus-summary-pipe-output
Dave Love <fx@gnu.org>
parents:
diff changeset
5158 Save the current article in a pipe. Uhm, like, what I mean is---Pipe
Dave Love <fx@gnu.org>
parents:
diff changeset
5159 the current article to a process (@code{gnus-summary-pipe-output}).
Dave Love <fx@gnu.org>
parents:
diff changeset
5160 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
5161
Dave Love <fx@gnu.org>
parents:
diff changeset
5162 @vindex gnus-prompt-before-saving
Dave Love <fx@gnu.org>
parents:
diff changeset
5163 All these commands use the process/prefix convention
Dave Love <fx@gnu.org>
parents:
diff changeset
5164 (@pxref{Process/Prefix}). If you save bunches of articles using these
Dave Love <fx@gnu.org>
parents:
diff changeset
5165 functions, you might get tired of being prompted for files to save each
Dave Love <fx@gnu.org>
parents:
diff changeset
5166 and every article in. The prompting action is controlled by
Dave Love <fx@gnu.org>
parents:
diff changeset
5167 the @code{gnus-prompt-before-saving} variable, which is @code{always} by
Dave Love <fx@gnu.org>
parents:
diff changeset
5168 default, giving you that excessive prompting action you know and
Dave Love <fx@gnu.org>
parents:
diff changeset
5169 loathe. If you set this variable to @code{t} instead, you'll be prompted
Dave Love <fx@gnu.org>
parents:
diff changeset
5170 just once for each series of articles you save. If you like to really
Dave Love <fx@gnu.org>
parents:
diff changeset
5171 have Gnus do all your thinking for you, you can even set this variable
Dave Love <fx@gnu.org>
parents:
diff changeset
5172 to @code{nil}, which means that you will never be prompted for files to
Dave Love <fx@gnu.org>
parents:
diff changeset
5173 save articles in. Gnus will simply save all the articles in the default
Dave Love <fx@gnu.org>
parents:
diff changeset
5174 files.
Dave Love <fx@gnu.org>
parents:
diff changeset
5175
Dave Love <fx@gnu.org>
parents:
diff changeset
5176
Dave Love <fx@gnu.org>
parents:
diff changeset
5177 @vindex gnus-default-article-saver
Dave Love <fx@gnu.org>
parents:
diff changeset
5178 You can customize the @code{gnus-default-article-saver} variable to make
Dave Love <fx@gnu.org>
parents:
diff changeset
5179 Gnus do what you want it to. You can use any of the four ready-made
Dave Love <fx@gnu.org>
parents:
diff changeset
5180 functions below, or you can create your own.
Dave Love <fx@gnu.org>
parents:
diff changeset
5181
Dave Love <fx@gnu.org>
parents:
diff changeset
5182 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
5183
Dave Love <fx@gnu.org>
parents:
diff changeset
5184 @item gnus-summary-save-in-rmail
Dave Love <fx@gnu.org>
parents:
diff changeset
5185 @findex gnus-summary-save-in-rmail
Dave Love <fx@gnu.org>
parents:
diff changeset
5186 @vindex gnus-rmail-save-name
Dave Love <fx@gnu.org>
parents:
diff changeset
5187 @findex gnus-plain-save-name
Dave Love <fx@gnu.org>
parents:
diff changeset
5188 This is the default format, @dfn{babyl}. Uses the function in the
Dave Love <fx@gnu.org>
parents:
diff changeset
5189 @code{gnus-rmail-save-name} variable to get a file name to save the
Dave Love <fx@gnu.org>
parents:
diff changeset
5190 article in. The default is @code{gnus-plain-save-name}.
Dave Love <fx@gnu.org>
parents:
diff changeset
5191
Dave Love <fx@gnu.org>
parents:
diff changeset
5192 @item gnus-summary-save-in-mail
Dave Love <fx@gnu.org>
parents:
diff changeset
5193 @findex gnus-summary-save-in-mail
Dave Love <fx@gnu.org>
parents:
diff changeset
5194 @vindex gnus-mail-save-name
Dave Love <fx@gnu.org>
parents:
diff changeset
5195 Save in a Unix mail (mbox) file. Uses the function in the
Dave Love <fx@gnu.org>
parents:
diff changeset
5196 @code{gnus-mail-save-name} variable to get a file name to save the
Dave Love <fx@gnu.org>
parents:
diff changeset
5197 article in. The default is @code{gnus-plain-save-name}.
Dave Love <fx@gnu.org>
parents:
diff changeset
5198
Dave Love <fx@gnu.org>
parents:
diff changeset
5199 @item gnus-summary-save-in-file
Dave Love <fx@gnu.org>
parents:
diff changeset
5200 @findex gnus-summary-save-in-file
Dave Love <fx@gnu.org>
parents:
diff changeset
5201 @vindex gnus-file-save-name
Dave Love <fx@gnu.org>
parents:
diff changeset
5202 @findex gnus-numeric-save-name
Dave Love <fx@gnu.org>
parents:
diff changeset
5203 Append the article straight to an ordinary file. Uses the function in
Dave Love <fx@gnu.org>
parents:
diff changeset
5204 the @code{gnus-file-save-name} variable to get a file name to save the
Dave Love <fx@gnu.org>
parents:
diff changeset
5205 article in. The default is @code{gnus-numeric-save-name}.
Dave Love <fx@gnu.org>
parents:
diff changeset
5206
Dave Love <fx@gnu.org>
parents:
diff changeset
5207 @item gnus-summary-save-body-in-file
Dave Love <fx@gnu.org>
parents:
diff changeset
5208 @findex gnus-summary-save-body-in-file
Dave Love <fx@gnu.org>
parents:
diff changeset
5209 Append the article body to an ordinary file. Uses the function in the
Dave Love <fx@gnu.org>
parents:
diff changeset
5210 @code{gnus-file-save-name} variable to get a file name to save the
Dave Love <fx@gnu.org>
parents:
diff changeset
5211 article in. The default is @code{gnus-numeric-save-name}.
Dave Love <fx@gnu.org>
parents:
diff changeset
5212
Dave Love <fx@gnu.org>
parents:
diff changeset
5213 @item gnus-summary-save-in-folder
Dave Love <fx@gnu.org>
parents:
diff changeset
5214 @findex gnus-summary-save-in-folder
Dave Love <fx@gnu.org>
parents:
diff changeset
5215 @findex gnus-folder-save-name
Dave Love <fx@gnu.org>
parents:
diff changeset
5216 @findex gnus-Folder-save-name
Dave Love <fx@gnu.org>
parents:
diff changeset
5217 @vindex gnus-folder-save-name
Dave Love <fx@gnu.org>
parents:
diff changeset
5218 @cindex rcvstore
Dave Love <fx@gnu.org>
parents:
diff changeset
5219 @cindex MH folders
Dave Love <fx@gnu.org>
parents:
diff changeset
5220 Save the article to an MH folder using @code{rcvstore} from the MH
Dave Love <fx@gnu.org>
parents:
diff changeset
5221 library. Uses the function in the @code{gnus-folder-save-name} variable
Dave Love <fx@gnu.org>
parents:
diff changeset
5222 to get a file name to save the article in. The default is
Dave Love <fx@gnu.org>
parents:
diff changeset
5223 @code{gnus-folder-save-name}, but you can also use
Dave Love <fx@gnu.org>
parents:
diff changeset
5224 @code{gnus-Folder-save-name}, which creates capitalized names.
Dave Love <fx@gnu.org>
parents:
diff changeset
5225
Dave Love <fx@gnu.org>
parents:
diff changeset
5226 @item gnus-summary-save-in-vm
Dave Love <fx@gnu.org>
parents:
diff changeset
5227 @findex gnus-summary-save-in-vm
Dave Love <fx@gnu.org>
parents:
diff changeset
5228 Save the article in a VM folder. You have to have the VM mail
Dave Love <fx@gnu.org>
parents:
diff changeset
5229 reader to use this setting.
Dave Love <fx@gnu.org>
parents:
diff changeset
5230 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
5231
Dave Love <fx@gnu.org>
parents:
diff changeset
5232 @vindex gnus-article-save-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
5233 All of these functions, except for the last one, will save the article
Dave Love <fx@gnu.org>
parents:
diff changeset
5234 in the @code{gnus-article-save-directory}, which is initialized from the
Dave Love <fx@gnu.org>
parents:
diff changeset
5235 @code{SAVEDIR} environment variable. This is @file{~/News/} by
Dave Love <fx@gnu.org>
parents:
diff changeset
5236 default.
Dave Love <fx@gnu.org>
parents:
diff changeset
5237
Dave Love <fx@gnu.org>
parents:
diff changeset
5238 As you can see above, the functions use different functions to find a
Dave Love <fx@gnu.org>
parents:
diff changeset
5239 suitable name of a file to save the article in. Below is a list of
Dave Love <fx@gnu.org>
parents:
diff changeset
5240 available functions that generate names:
Dave Love <fx@gnu.org>
parents:
diff changeset
5241
Dave Love <fx@gnu.org>
parents:
diff changeset
5242 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
5243
Dave Love <fx@gnu.org>
parents:
diff changeset
5244 @item gnus-Numeric-save-name
Dave Love <fx@gnu.org>
parents:
diff changeset
5245 @findex gnus-Numeric-save-name
Dave Love <fx@gnu.org>
parents:
diff changeset
5246 File names like @file{~/News/Alt.andrea-dworkin/45}.
Dave Love <fx@gnu.org>
parents:
diff changeset
5247
Dave Love <fx@gnu.org>
parents:
diff changeset
5248 @item gnus-numeric-save-name
Dave Love <fx@gnu.org>
parents:
diff changeset
5249 @findex gnus-numeric-save-name
Dave Love <fx@gnu.org>
parents:
diff changeset
5250 File names like @file{~/News/alt.andrea-dworkin/45}.
Dave Love <fx@gnu.org>
parents:
diff changeset
5251
Dave Love <fx@gnu.org>
parents:
diff changeset
5252 @item gnus-Plain-save-name
Dave Love <fx@gnu.org>
parents:
diff changeset
5253 @findex gnus-Plain-save-name
Dave Love <fx@gnu.org>
parents:
diff changeset
5254 File names like @file{~/News/Alt.andrea-dworkin}.
Dave Love <fx@gnu.org>
parents:
diff changeset
5255
Dave Love <fx@gnu.org>
parents:
diff changeset
5256 @item gnus-plain-save-name
Dave Love <fx@gnu.org>
parents:
diff changeset
5257 @findex gnus-plain-save-name
Dave Love <fx@gnu.org>
parents:
diff changeset
5258 File names like @file{~/News/alt.andrea-dworkin}.
Dave Love <fx@gnu.org>
parents:
diff changeset
5259 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
5260
Dave Love <fx@gnu.org>
parents:
diff changeset
5261 @vindex gnus-split-methods
Dave Love <fx@gnu.org>
parents:
diff changeset
5262 You can have Gnus suggest where to save articles by plonking a regexp into
Dave Love <fx@gnu.org>
parents:
diff changeset
5263 the @code{gnus-split-methods} alist. For instance, if you would like to
Dave Love <fx@gnu.org>
parents:
diff changeset
5264 save articles related to Gnus in the file @file{gnus-stuff}, and articles
Dave Love <fx@gnu.org>
parents:
diff changeset
5265 related to VM in @code{vm-stuff}, you could set this variable to something
Dave Love <fx@gnu.org>
parents:
diff changeset
5266 like:
Dave Love <fx@gnu.org>
parents:
diff changeset
5267
Dave Love <fx@gnu.org>
parents:
diff changeset
5268 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
5269 (("^Subject:.*gnus\\|^Newsgroups:.*gnus" "gnus-stuff")
Dave Love <fx@gnu.org>
parents:
diff changeset
5270 ("^Subject:.*vm\\|^Xref:.*vm" "vm-stuff")
Dave Love <fx@gnu.org>
parents:
diff changeset
5271 (my-choosing-function "../other-dir/my-stuff")
Dave Love <fx@gnu.org>
parents:
diff changeset
5272 ((equal gnus-newsgroup-name "mail.misc") "mail-stuff"))
Dave Love <fx@gnu.org>
parents:
diff changeset
5273 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
5274
Dave Love <fx@gnu.org>
parents:
diff changeset
5275 We see that this is a list where each element is a list that has two
Dave Love <fx@gnu.org>
parents:
diff changeset
5276 elements---the @dfn{match} and the @dfn{file}. The match can either be
Dave Love <fx@gnu.org>
parents:
diff changeset
5277 a string (in which case it is used as a regexp to match on the article
Dave Love <fx@gnu.org>
parents:
diff changeset
5278 head); it can be a symbol (which will be called as a function with the
Dave Love <fx@gnu.org>
parents:
diff changeset
5279 group name as a parameter); or it can be a list (which will be
Dave Love <fx@gnu.org>
parents:
diff changeset
5280 @code{eval}ed). If any of these actions have a non-@code{nil} result,
Dave Love <fx@gnu.org>
parents:
diff changeset
5281 the @dfn{file} will be used as a default prompt. In addition, the
Dave Love <fx@gnu.org>
parents:
diff changeset
5282 result of the operation itself will be used if the function or form
Dave Love <fx@gnu.org>
parents:
diff changeset
5283 called returns a string or a list of strings.
Dave Love <fx@gnu.org>
parents:
diff changeset
5284
Dave Love <fx@gnu.org>
parents:
diff changeset
5285 You basically end up with a list of file names that might be used when
Dave Love <fx@gnu.org>
parents:
diff changeset
5286 saving the current article. (All ``matches'' will be used.) You will
Dave Love <fx@gnu.org>
parents:
diff changeset
5287 then be prompted for what you really want to use as a name, with file
Dave Love <fx@gnu.org>
parents:
diff changeset
5288 name completion over the results from applying this variable.
Dave Love <fx@gnu.org>
parents:
diff changeset
5289
Dave Love <fx@gnu.org>
parents:
diff changeset
5290 This variable is @code{((gnus-article-archive-name))} by default, which
Dave Love <fx@gnu.org>
parents:
diff changeset
5291 means that Gnus will look at the articles it saves for an
Dave Love <fx@gnu.org>
parents:
diff changeset
5292 @code{Archive-name} line and use that as a suggestion for the file
Dave Love <fx@gnu.org>
parents:
diff changeset
5293 name.
Dave Love <fx@gnu.org>
parents:
diff changeset
5294
Dave Love <fx@gnu.org>
parents:
diff changeset
5295 Here's an example function to clean up file names somewhat. If you have
Dave Love <fx@gnu.org>
parents:
diff changeset
5296 lots of mail groups called things like
Dave Love <fx@gnu.org>
parents:
diff changeset
5297 @samp{nnml:mail.whatever}, you may want to chop off the beginning of
Dave Love <fx@gnu.org>
parents:
diff changeset
5298 these group names before creating the file name to save to. The
Dave Love <fx@gnu.org>
parents:
diff changeset
5299 following will do just that:
Dave Love <fx@gnu.org>
parents:
diff changeset
5300
Dave Love <fx@gnu.org>
parents:
diff changeset
5301 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
5302 (defun my-save-name (group)
Dave Love <fx@gnu.org>
parents:
diff changeset
5303 (when (string-match "^nnml:mail." group)
Dave Love <fx@gnu.org>
parents:
diff changeset
5304 (substring group (match-end 0))))
Dave Love <fx@gnu.org>
parents:
diff changeset
5305
Dave Love <fx@gnu.org>
parents:
diff changeset
5306 (setq gnus-split-methods
Dave Love <fx@gnu.org>
parents:
diff changeset
5307 '((gnus-article-archive-name)
Dave Love <fx@gnu.org>
parents:
diff changeset
5308 (my-save-name)))
Dave Love <fx@gnu.org>
parents:
diff changeset
5309 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
5310
Dave Love <fx@gnu.org>
parents:
diff changeset
5311
Dave Love <fx@gnu.org>
parents:
diff changeset
5312 @vindex gnus-use-long-file-name
Dave Love <fx@gnu.org>
parents:
diff changeset
5313 Finally, you have the @code{gnus-use-long-file-name} variable. If it is
Dave Love <fx@gnu.org>
parents:
diff changeset
5314 @code{nil}, all the preceding functions will replace all periods
Dave Love <fx@gnu.org>
parents:
diff changeset
5315 (@samp{.}) in the group names with slashes (@samp{/})---which means that
Dave Love <fx@gnu.org>
parents:
diff changeset
5316 the functions will generate hierarchies of directories instead of having
Dave Love <fx@gnu.org>
parents:
diff changeset
5317 all the files in the top level directory
Dave Love <fx@gnu.org>
parents:
diff changeset
5318 (@file{~/News/alt/andrea-dworkin} instead of
Dave Love <fx@gnu.org>
parents:
diff changeset
5319 @file{~/News/alt.andrea-dworkin}.) This variable is @code{t} by default
Dave Love <fx@gnu.org>
parents:
diff changeset
5320 on most systems. However, for historical reasons, this is @code{nil} on
Dave Love <fx@gnu.org>
parents:
diff changeset
5321 Xenix and usg-unix-v machines by default.
Dave Love <fx@gnu.org>
parents:
diff changeset
5322
Dave Love <fx@gnu.org>
parents:
diff changeset
5323 This function also affects kill and score file names. If this variable
Dave Love <fx@gnu.org>
parents:
diff changeset
5324 is a list, and the list contains the element @code{not-score}, long file
Dave Love <fx@gnu.org>
parents:
diff changeset
5325 names will not be used for score files, if it contains the element
Dave Love <fx@gnu.org>
parents:
diff changeset
5326 @code{not-save}, long file names will not be used for saving, and if it
Dave Love <fx@gnu.org>
parents:
diff changeset
5327 contains the element @code{not-kill}, long file names will not be used
Dave Love <fx@gnu.org>
parents:
diff changeset
5328 for kill files.
Dave Love <fx@gnu.org>
parents:
diff changeset
5329
Dave Love <fx@gnu.org>
parents:
diff changeset
5330 If you'd like to save articles in a hierarchy that looks something like
Dave Love <fx@gnu.org>
parents:
diff changeset
5331 a spool, you could
Dave Love <fx@gnu.org>
parents:
diff changeset
5332
Dave Love <fx@gnu.org>
parents:
diff changeset
5333 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
5334 (setq gnus-use-long-file-name '(not-save)) ; to get a hierarchy
Dave Love <fx@gnu.org>
parents:
diff changeset
5335 (setq gnus-default-article-saver 'gnus-summary-save-in-file) ; no encoding
Dave Love <fx@gnu.org>
parents:
diff changeset
5336 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
5337
Dave Love <fx@gnu.org>
parents:
diff changeset
5338 Then just save with @kbd{o}. You'd then read this hierarchy with
Dave Love <fx@gnu.org>
parents:
diff changeset
5339 ephemeral @code{nneething} groups---@kbd{G D} in the group buffer, and
Dave Love <fx@gnu.org>
parents:
diff changeset
5340 the top level directory as the argument (@file{~/News/}). Then just walk
Dave Love <fx@gnu.org>
parents:
diff changeset
5341 around to the groups/directories with @code{nneething}.
Dave Love <fx@gnu.org>
parents:
diff changeset
5342
Dave Love <fx@gnu.org>
parents:
diff changeset
5343
Dave Love <fx@gnu.org>
parents:
diff changeset
5344 @node Decoding Articles
Dave Love <fx@gnu.org>
parents:
diff changeset
5345 @section Decoding Articles
Dave Love <fx@gnu.org>
parents:
diff changeset
5346 @cindex decoding articles
Dave Love <fx@gnu.org>
parents:
diff changeset
5347
Dave Love <fx@gnu.org>
parents:
diff changeset
5348 Sometime users post articles (or series of articles) that have been
Dave Love <fx@gnu.org>
parents:
diff changeset
5349 encoded in some way or other. Gnus can decode them for you.
Dave Love <fx@gnu.org>
parents:
diff changeset
5350
Dave Love <fx@gnu.org>
parents:
diff changeset
5351 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
5352 * Uuencoded Articles:: Uudecode articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
5353 * Shell Archives:: Unshar articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
5354 * PostScript Files:: Split PostScript.
Dave Love <fx@gnu.org>
parents:
diff changeset
5355 * Other Files:: Plain save and binhex.
Dave Love <fx@gnu.org>
parents:
diff changeset
5356 * Decoding Variables:: Variables for a happy decoding.
Dave Love <fx@gnu.org>
parents:
diff changeset
5357 * Viewing Files:: You want to look at the result of the decoding?
Dave Love <fx@gnu.org>
parents:
diff changeset
5358 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
5359
Dave Love <fx@gnu.org>
parents:
diff changeset
5360 @cindex series
Dave Love <fx@gnu.org>
parents:
diff changeset
5361 @cindex article series
Dave Love <fx@gnu.org>
parents:
diff changeset
5362 All these functions use the process/prefix convention
Dave Love <fx@gnu.org>
parents:
diff changeset
5363 (@pxref{Process/Prefix}) for finding out what articles to work on, with
Dave Love <fx@gnu.org>
parents:
diff changeset
5364 the extension that a ``single article'' means ``a single series''. Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
5365 can find out by itself what articles belong to a series, decode all the
Dave Love <fx@gnu.org>
parents:
diff changeset
5366 articles and unpack/view/save the resulting file(s).
Dave Love <fx@gnu.org>
parents:
diff changeset
5367
Dave Love <fx@gnu.org>
parents:
diff changeset
5368 Gnus guesses what articles are in the series according to the following
Dave Love <fx@gnu.org>
parents:
diff changeset
5369 simplish rule: The subjects must be (nearly) identical, except for the
Dave Love <fx@gnu.org>
parents:
diff changeset
5370 last two numbers of the line. (Spaces are largely ignored, however.)
Dave Love <fx@gnu.org>
parents:
diff changeset
5371
Dave Love <fx@gnu.org>
parents:
diff changeset
5372 For example: If you choose a subject called @samp{cat.gif (2/3)}, Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
5373 will find all the articles that match the regexp @samp{^cat.gif
Dave Love <fx@gnu.org>
parents:
diff changeset
5374 ([0-9]+/[0-9]+).*$}.
Dave Love <fx@gnu.org>
parents:
diff changeset
5375
Dave Love <fx@gnu.org>
parents:
diff changeset
5376 Subjects that are non-standard, like @samp{cat.gif (2/3) Part 6 of a
Dave Love <fx@gnu.org>
parents:
diff changeset
5377 series}, will not be properly recognized by any of the automatic viewing
Dave Love <fx@gnu.org>
parents:
diff changeset
5378 commands, and you have to mark the articles manually with @kbd{#}.
Dave Love <fx@gnu.org>
parents:
diff changeset
5379
Dave Love <fx@gnu.org>
parents:
diff changeset
5380
Dave Love <fx@gnu.org>
parents:
diff changeset
5381 @node Uuencoded Articles
Dave Love <fx@gnu.org>
parents:
diff changeset
5382 @subsection Uuencoded Articles
Dave Love <fx@gnu.org>
parents:
diff changeset
5383 @cindex uudecode
Dave Love <fx@gnu.org>
parents:
diff changeset
5384 @cindex uuencoded articles
Dave Love <fx@gnu.org>
parents:
diff changeset
5385
Dave Love <fx@gnu.org>
parents:
diff changeset
5386 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
5387
Dave Love <fx@gnu.org>
parents:
diff changeset
5388 @item X u
Dave Love <fx@gnu.org>
parents:
diff changeset
5389 @kindex X u (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
5390 @findex gnus-uu-decode-uu
Dave Love <fx@gnu.org>
parents:
diff changeset
5391 @c @icon{gnus-uu-decode-uu}
Dave Love <fx@gnu.org>
parents:
diff changeset
5392 Uudecodes the current series (@code{gnus-uu-decode-uu}).
Dave Love <fx@gnu.org>
parents:
diff changeset
5393
Dave Love <fx@gnu.org>
parents:
diff changeset
5394 @item X U
Dave Love <fx@gnu.org>
parents:
diff changeset
5395 @kindex X U (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
5396 @findex gnus-uu-decode-uu-and-save
Dave Love <fx@gnu.org>
parents:
diff changeset
5397 Uudecodes and saves the current series
Dave Love <fx@gnu.org>
parents:
diff changeset
5398 (@code{gnus-uu-decode-uu-and-save}).
Dave Love <fx@gnu.org>
parents:
diff changeset
5399
Dave Love <fx@gnu.org>
parents:
diff changeset
5400 @item X v u
Dave Love <fx@gnu.org>
parents:
diff changeset
5401 @kindex X v u (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
5402 @findex gnus-uu-decode-uu-view
Dave Love <fx@gnu.org>
parents:
diff changeset
5403 Uudecodes and views the current series (@code{gnus-uu-decode-uu-view}).
Dave Love <fx@gnu.org>
parents:
diff changeset
5404
Dave Love <fx@gnu.org>
parents:
diff changeset
5405 @item X v U
Dave Love <fx@gnu.org>
parents:
diff changeset
5406 @kindex X v U (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
5407 @findex gnus-uu-decode-uu-and-save-view
Dave Love <fx@gnu.org>
parents:
diff changeset
5408 Uudecodes, views and saves the current series
Dave Love <fx@gnu.org>
parents:
diff changeset
5409 (@code{gnus-uu-decode-uu-and-save-view}).
Dave Love <fx@gnu.org>
parents:
diff changeset
5410
Dave Love <fx@gnu.org>
parents:
diff changeset
5411 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
5412
Dave Love <fx@gnu.org>
parents:
diff changeset
5413 Remember that these all react to the presence of articles marked with
Dave Love <fx@gnu.org>
parents:
diff changeset
5414 the process mark. If, for instance, you'd like to decode and save an
Dave Love <fx@gnu.org>
parents:
diff changeset
5415 entire newsgroup, you'd typically do @kbd{M P a}
Dave Love <fx@gnu.org>
parents:
diff changeset
5416 (@code{gnus-uu-mark-all}) and then @kbd{X U}
Dave Love <fx@gnu.org>
parents:
diff changeset
5417 (@code{gnus-uu-decode-uu-and-save}).
Dave Love <fx@gnu.org>
parents:
diff changeset
5418
Dave Love <fx@gnu.org>
parents:
diff changeset
5419 All this is very much different from how @code{gnus-uu} worked with
Dave Love <fx@gnu.org>
parents:
diff changeset
5420 @sc{gnus 4.1}, where you had explicit keystrokes for everything under
Dave Love <fx@gnu.org>
parents:
diff changeset
5421 the sun. This version of @code{gnus-uu} generally assumes that you mark
Dave Love <fx@gnu.org>
parents:
diff changeset
5422 articles in some way (@pxref{Setting Process Marks}) and then press
Dave Love <fx@gnu.org>
parents:
diff changeset
5423 @kbd{X u}.
Dave Love <fx@gnu.org>
parents:
diff changeset
5424
Dave Love <fx@gnu.org>
parents:
diff changeset
5425 @vindex gnus-uu-notify-files
Dave Love <fx@gnu.org>
parents:
diff changeset
5426 Note: When trying to decode articles that have names matching
Dave Love <fx@gnu.org>
parents:
diff changeset
5427 @code{gnus-uu-notify-files}, which is hard-coded to
Dave Love <fx@gnu.org>
parents:
diff changeset
5428 @samp{[Cc][Ii][Nn][Dd][Yy][0-9]+.\\(gif\\|jpg\\)}, @code{gnus-uu} will
Dave Love <fx@gnu.org>
parents:
diff changeset
5429 automatically post an article on @samp{comp.unix.wizards} saying that
Dave Love <fx@gnu.org>
parents:
diff changeset
5430 you have just viewed the file in question. This feature can't be turned
Dave Love <fx@gnu.org>
parents:
diff changeset
5431 off.
Dave Love <fx@gnu.org>
parents:
diff changeset
5432
Dave Love <fx@gnu.org>
parents:
diff changeset
5433
Dave Love <fx@gnu.org>
parents:
diff changeset
5434 @node Shell Archives
Dave Love <fx@gnu.org>
parents:
diff changeset
5435 @subsection Shell Archives
Dave Love <fx@gnu.org>
parents:
diff changeset
5436 @cindex unshar
Dave Love <fx@gnu.org>
parents:
diff changeset
5437 @cindex shell archives
Dave Love <fx@gnu.org>
parents:
diff changeset
5438 @cindex shared articles
Dave Love <fx@gnu.org>
parents:
diff changeset
5439
Dave Love <fx@gnu.org>
parents:
diff changeset
5440 Shell archives (``shar files'') used to be a popular way to distribute
Dave Love <fx@gnu.org>
parents:
diff changeset
5441 sources, but it isn't used all that much today. In any case, we have
Dave Love <fx@gnu.org>
parents:
diff changeset
5442 some commands to deal with these:
Dave Love <fx@gnu.org>
parents:
diff changeset
5443
Dave Love <fx@gnu.org>
parents:
diff changeset
5444 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
5445
Dave Love <fx@gnu.org>
parents:
diff changeset
5446 @item X s
Dave Love <fx@gnu.org>
parents:
diff changeset
5447 @kindex X s (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
5448 @findex gnus-uu-decode-unshar
Dave Love <fx@gnu.org>
parents:
diff changeset
5449 Unshars the current series (@code{gnus-uu-decode-unshar}).
Dave Love <fx@gnu.org>
parents:
diff changeset
5450
Dave Love <fx@gnu.org>
parents:
diff changeset
5451 @item X S
Dave Love <fx@gnu.org>
parents:
diff changeset
5452 @kindex X S (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
5453 @findex gnus-uu-decode-unshar-and-save
Dave Love <fx@gnu.org>
parents:
diff changeset
5454 Unshars and saves the current series (@code{gnus-uu-decode-unshar-and-save}).
Dave Love <fx@gnu.org>
parents:
diff changeset
5455
Dave Love <fx@gnu.org>
parents:
diff changeset
5456 @item X v s
Dave Love <fx@gnu.org>
parents:
diff changeset
5457 @kindex X v s (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
5458 @findex gnus-uu-decode-unshar-view
Dave Love <fx@gnu.org>
parents:
diff changeset
5459 Unshars and views the current series (@code{gnus-uu-decode-unshar-view}).
Dave Love <fx@gnu.org>
parents:
diff changeset
5460
Dave Love <fx@gnu.org>
parents:
diff changeset
5461 @item X v S
Dave Love <fx@gnu.org>
parents:
diff changeset
5462 @kindex X v S (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
5463 @findex gnus-uu-decode-unshar-and-save-view
Dave Love <fx@gnu.org>
parents:
diff changeset
5464 Unshars, views and saves the current series
Dave Love <fx@gnu.org>
parents:
diff changeset
5465 (@code{gnus-uu-decode-unshar-and-save-view}).
Dave Love <fx@gnu.org>
parents:
diff changeset
5466 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
5467
Dave Love <fx@gnu.org>
parents:
diff changeset
5468
Dave Love <fx@gnu.org>
parents:
diff changeset
5469 @node PostScript Files
Dave Love <fx@gnu.org>
parents:
diff changeset
5470 @subsection PostScript Files
Dave Love <fx@gnu.org>
parents:
diff changeset
5471 @cindex PostScript
Dave Love <fx@gnu.org>
parents:
diff changeset
5472
Dave Love <fx@gnu.org>
parents:
diff changeset
5473 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
5474
Dave Love <fx@gnu.org>
parents:
diff changeset
5475 @item X p
Dave Love <fx@gnu.org>
parents:
diff changeset
5476 @kindex X p (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
5477 @findex gnus-uu-decode-postscript
Dave Love <fx@gnu.org>
parents:
diff changeset
5478 Unpack the current PostScript series (@code{gnus-uu-decode-postscript}).
Dave Love <fx@gnu.org>
parents:
diff changeset
5479
Dave Love <fx@gnu.org>
parents:
diff changeset
5480 @item X P
Dave Love <fx@gnu.org>
parents:
diff changeset
5481 @kindex X P (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
5482 @findex gnus-uu-decode-postscript-and-save
Dave Love <fx@gnu.org>
parents:
diff changeset
5483 Unpack and save the current PostScript series
Dave Love <fx@gnu.org>
parents:
diff changeset
5484 (@code{gnus-uu-decode-postscript-and-save}).
Dave Love <fx@gnu.org>
parents:
diff changeset
5485
Dave Love <fx@gnu.org>
parents:
diff changeset
5486 @item X v p
Dave Love <fx@gnu.org>
parents:
diff changeset
5487 @kindex X v p (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
5488 @findex gnus-uu-decode-postscript-view
Dave Love <fx@gnu.org>
parents:
diff changeset
5489 View the current PostScript series
Dave Love <fx@gnu.org>
parents:
diff changeset
5490 (@code{gnus-uu-decode-postscript-view}).
Dave Love <fx@gnu.org>
parents:
diff changeset
5491
Dave Love <fx@gnu.org>
parents:
diff changeset
5492 @item X v P
Dave Love <fx@gnu.org>
parents:
diff changeset
5493 @kindex X v P (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
5494 @findex gnus-uu-decode-postscript-and-save-view
Dave Love <fx@gnu.org>
parents:
diff changeset
5495 View and save the current PostScript series
Dave Love <fx@gnu.org>
parents:
diff changeset
5496 (@code{gnus-uu-decode-postscript-and-save-view}).
Dave Love <fx@gnu.org>
parents:
diff changeset
5497 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
5498
Dave Love <fx@gnu.org>
parents:
diff changeset
5499
Dave Love <fx@gnu.org>
parents:
diff changeset
5500 @node Other Files
Dave Love <fx@gnu.org>
parents:
diff changeset
5501 @subsection Other Files
Dave Love <fx@gnu.org>
parents:
diff changeset
5502
Dave Love <fx@gnu.org>
parents:
diff changeset
5503 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
5504 @item X o
Dave Love <fx@gnu.org>
parents:
diff changeset
5505 @kindex X o (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
5506 @findex gnus-uu-decode-save
Dave Love <fx@gnu.org>
parents:
diff changeset
5507 Save the current series
Dave Love <fx@gnu.org>
parents:
diff changeset
5508 (@code{gnus-uu-decode-save}).
Dave Love <fx@gnu.org>
parents:
diff changeset
5509
Dave Love <fx@gnu.org>
parents:
diff changeset
5510 @item X b
Dave Love <fx@gnu.org>
parents:
diff changeset
5511 @kindex X b (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
5512 @findex gnus-uu-decode-binhex
Dave Love <fx@gnu.org>
parents:
diff changeset
5513 Unbinhex the current series (@code{gnus-uu-decode-binhex}). This
Dave Love <fx@gnu.org>
parents:
diff changeset
5514 doesn't really work yet.
Dave Love <fx@gnu.org>
parents:
diff changeset
5515 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
5516
Dave Love <fx@gnu.org>
parents:
diff changeset
5517
Dave Love <fx@gnu.org>
parents:
diff changeset
5518 @node Decoding Variables
Dave Love <fx@gnu.org>
parents:
diff changeset
5519 @subsection Decoding Variables
Dave Love <fx@gnu.org>
parents:
diff changeset
5520
Dave Love <fx@gnu.org>
parents:
diff changeset
5521 Adjective, not verb.
Dave Love <fx@gnu.org>
parents:
diff changeset
5522
Dave Love <fx@gnu.org>
parents:
diff changeset
5523 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
5524 * Rule Variables:: Variables that say how a file is to be viewed.
Dave Love <fx@gnu.org>
parents:
diff changeset
5525 * Other Decode Variables:: Other decode variables.
Dave Love <fx@gnu.org>
parents:
diff changeset
5526 * Uuencoding and Posting:: Variables for customizing uuencoding.
Dave Love <fx@gnu.org>
parents:
diff changeset
5527 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
5528
Dave Love <fx@gnu.org>
parents:
diff changeset
5529
Dave Love <fx@gnu.org>
parents:
diff changeset
5530 @node Rule Variables
Dave Love <fx@gnu.org>
parents:
diff changeset
5531 @subsubsection Rule Variables
Dave Love <fx@gnu.org>
parents:
diff changeset
5532 @cindex rule variables
Dave Love <fx@gnu.org>
parents:
diff changeset
5533
Dave Love <fx@gnu.org>
parents:
diff changeset
5534 Gnus uses @dfn{rule variables} to decide how to view a file. All these
Dave Love <fx@gnu.org>
parents:
diff changeset
5535 variables are of the form
Dave Love <fx@gnu.org>
parents:
diff changeset
5536
Dave Love <fx@gnu.org>
parents:
diff changeset
5537 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
5538 (list '(regexp1 command2)
Dave Love <fx@gnu.org>
parents:
diff changeset
5539 '(regexp2 command2)
Dave Love <fx@gnu.org>
parents:
diff changeset
5540 ...)
Dave Love <fx@gnu.org>
parents:
diff changeset
5541 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
5542
Dave Love <fx@gnu.org>
parents:
diff changeset
5543 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
5544
Dave Love <fx@gnu.org>
parents:
diff changeset
5545 @item gnus-uu-user-view-rules
Dave Love <fx@gnu.org>
parents:
diff changeset
5546 @vindex gnus-uu-user-view-rules
Dave Love <fx@gnu.org>
parents:
diff changeset
5547 @cindex sox
Dave Love <fx@gnu.org>
parents:
diff changeset
5548 This variable is consulted first when viewing files. If you wish to use,
Dave Love <fx@gnu.org>
parents:
diff changeset
5549 for instance, @code{sox} to convert an @samp{.au} sound file, you could
Dave Love <fx@gnu.org>
parents:
diff changeset
5550 say something like:
Dave Love <fx@gnu.org>
parents:
diff changeset
5551 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
5552 (setq gnus-uu-user-view-rules
Dave Love <fx@gnu.org>
parents:
diff changeset
5553 (list '(\"\\\\.au$\" \"sox %s -t .aiff > /dev/audio\")))
Dave Love <fx@gnu.org>
parents:
diff changeset
5554 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
5555
Dave Love <fx@gnu.org>
parents:
diff changeset
5556 @item gnus-uu-user-view-rules-end
Dave Love <fx@gnu.org>
parents:
diff changeset
5557 @vindex gnus-uu-user-view-rules-end
Dave Love <fx@gnu.org>
parents:
diff changeset
5558 This variable is consulted if Gnus couldn't make any matches from the
Dave Love <fx@gnu.org>
parents:
diff changeset
5559 user and default view rules.
Dave Love <fx@gnu.org>
parents:
diff changeset
5560
Dave Love <fx@gnu.org>
parents:
diff changeset
5561 @item gnus-uu-user-archive-rules
Dave Love <fx@gnu.org>
parents:
diff changeset
5562 @vindex gnus-uu-user-archive-rules
Dave Love <fx@gnu.org>
parents:
diff changeset
5563 This variable can be used to say what commands should be used to unpack
Dave Love <fx@gnu.org>
parents:
diff changeset
5564 archives.
Dave Love <fx@gnu.org>
parents:
diff changeset
5565 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
5566
Dave Love <fx@gnu.org>
parents:
diff changeset
5567
Dave Love <fx@gnu.org>
parents:
diff changeset
5568 @node Other Decode Variables
Dave Love <fx@gnu.org>
parents:
diff changeset
5569 @subsubsection Other Decode Variables
Dave Love <fx@gnu.org>
parents:
diff changeset
5570
Dave Love <fx@gnu.org>
parents:
diff changeset
5571 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
5572 @vindex gnus-uu-grabbed-file-functions
Dave Love <fx@gnu.org>
parents:
diff changeset
5573
Dave Love <fx@gnu.org>
parents:
diff changeset
5574 @item gnus-uu-grabbed-file-functions
Dave Love <fx@gnu.org>
parents:
diff changeset
5575 All functions in this list will be called right after each file has been
Dave Love <fx@gnu.org>
parents:
diff changeset
5576 successfully decoded---so that you can move or view files right away,
Dave Love <fx@gnu.org>
parents:
diff changeset
5577 and don't have to wait for all files to be decoded before you can do
Dave Love <fx@gnu.org>
parents:
diff changeset
5578 anything. Ready-made functions you can put in this list are:
Dave Love <fx@gnu.org>
parents:
diff changeset
5579
Dave Love <fx@gnu.org>
parents:
diff changeset
5580 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
5581
Dave Love <fx@gnu.org>
parents:
diff changeset
5582 @item gnus-uu-grab-view
Dave Love <fx@gnu.org>
parents:
diff changeset
5583 @findex gnus-uu-grab-view
Dave Love <fx@gnu.org>
parents:
diff changeset
5584 View the file.
Dave Love <fx@gnu.org>
parents:
diff changeset
5585
Dave Love <fx@gnu.org>
parents:
diff changeset
5586 @item gnus-uu-grab-move
Dave Love <fx@gnu.org>
parents:
diff changeset
5587 @findex gnus-uu-grab-move
Dave Love <fx@gnu.org>
parents:
diff changeset
5588 Move the file (if you're using a saving function.)
Dave Love <fx@gnu.org>
parents:
diff changeset
5589 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
5590
Dave Love <fx@gnu.org>
parents:
diff changeset
5591 @item gnus-uu-be-dangerous
Dave Love <fx@gnu.org>
parents:
diff changeset
5592 @vindex gnus-uu-be-dangerous
Dave Love <fx@gnu.org>
parents:
diff changeset
5593 Specifies what to do if unusual situations arise during decoding. If
Dave Love <fx@gnu.org>
parents:
diff changeset
5594 @code{nil}, be as conservative as possible. If @code{t}, ignore things
Dave Love <fx@gnu.org>
parents:
diff changeset
5595 that didn't work, and overwrite existing files. Otherwise, ask each
Dave Love <fx@gnu.org>
parents:
diff changeset
5596 time.
Dave Love <fx@gnu.org>
parents:
diff changeset
5597
Dave Love <fx@gnu.org>
parents:
diff changeset
5598 @item gnus-uu-ignore-files-by-name
Dave Love <fx@gnu.org>
parents:
diff changeset
5599 @vindex gnus-uu-ignore-files-by-name
Dave Love <fx@gnu.org>
parents:
diff changeset
5600 Files with name matching this regular expression won't be viewed.
Dave Love <fx@gnu.org>
parents:
diff changeset
5601
Dave Love <fx@gnu.org>
parents:
diff changeset
5602 @item gnus-uu-ignore-files-by-type
Dave Love <fx@gnu.org>
parents:
diff changeset
5603 @vindex gnus-uu-ignore-files-by-type
Dave Love <fx@gnu.org>
parents:
diff changeset
5604 Files with a @sc{mime} type matching this variable won't be viewed.
Dave Love <fx@gnu.org>
parents:
diff changeset
5605 Note that Gnus tries to guess what type the file is based on the name.
Dave Love <fx@gnu.org>
parents:
diff changeset
5606 @code{gnus-uu} is not a @sc{mime} package (yet), so this is slightly
Dave Love <fx@gnu.org>
parents:
diff changeset
5607 kludgey.
Dave Love <fx@gnu.org>
parents:
diff changeset
5608
Dave Love <fx@gnu.org>
parents:
diff changeset
5609 @item gnus-uu-tmp-dir
Dave Love <fx@gnu.org>
parents:
diff changeset
5610 @vindex gnus-uu-tmp-dir
Dave Love <fx@gnu.org>
parents:
diff changeset
5611 Where @code{gnus-uu} does its work.
Dave Love <fx@gnu.org>
parents:
diff changeset
5612
Dave Love <fx@gnu.org>
parents:
diff changeset
5613 @item gnus-uu-do-not-unpack-archives
Dave Love <fx@gnu.org>
parents:
diff changeset
5614 @vindex gnus-uu-do-not-unpack-archives
Dave Love <fx@gnu.org>
parents:
diff changeset
5615 Non-@code{nil} means that @code{gnus-uu} won't peek inside archives
Dave Love <fx@gnu.org>
parents:
diff changeset
5616 looking for files to display.
Dave Love <fx@gnu.org>
parents:
diff changeset
5617
Dave Love <fx@gnu.org>
parents:
diff changeset
5618 @item gnus-uu-view-and-save
Dave Love <fx@gnu.org>
parents:
diff changeset
5619 @vindex gnus-uu-view-and-save
Dave Love <fx@gnu.org>
parents:
diff changeset
5620 Non-@code{nil} means that the user will always be asked to save a file
Dave Love <fx@gnu.org>
parents:
diff changeset
5621 after viewing it.
Dave Love <fx@gnu.org>
parents:
diff changeset
5622
Dave Love <fx@gnu.org>
parents:
diff changeset
5623 @item gnus-uu-ignore-default-view-rules
Dave Love <fx@gnu.org>
parents:
diff changeset
5624 @vindex gnus-uu-ignore-default-view-rules
Dave Love <fx@gnu.org>
parents:
diff changeset
5625 Non-@code{nil} means that @code{gnus-uu} will ignore the default viewing
Dave Love <fx@gnu.org>
parents:
diff changeset
5626 rules.
Dave Love <fx@gnu.org>
parents:
diff changeset
5627
Dave Love <fx@gnu.org>
parents:
diff changeset
5628 @item gnus-uu-ignore-default-archive-rules
Dave Love <fx@gnu.org>
parents:
diff changeset
5629 @vindex gnus-uu-ignore-default-archive-rules
Dave Love <fx@gnu.org>
parents:
diff changeset
5630 Non-@code{nil} means that @code{gnus-uu} will ignore the default archive
Dave Love <fx@gnu.org>
parents:
diff changeset
5631 unpacking commands.
Dave Love <fx@gnu.org>
parents:
diff changeset
5632
Dave Love <fx@gnu.org>
parents:
diff changeset
5633 @item gnus-uu-kill-carriage-return
Dave Love <fx@gnu.org>
parents:
diff changeset
5634 @vindex gnus-uu-kill-carriage-return
Dave Love <fx@gnu.org>
parents:
diff changeset
5635 Non-@code{nil} means that @code{gnus-uu} will strip all carriage returns
Dave Love <fx@gnu.org>
parents:
diff changeset
5636 from articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
5637
Dave Love <fx@gnu.org>
parents:
diff changeset
5638 @item gnus-uu-unmark-articles-not-decoded
Dave Love <fx@gnu.org>
parents:
diff changeset
5639 @vindex gnus-uu-unmark-articles-not-decoded
Dave Love <fx@gnu.org>
parents:
diff changeset
5640 Non-@code{nil} means that @code{gnus-uu} will mark unsuccessfully
Dave Love <fx@gnu.org>
parents:
diff changeset
5641 decoded articles as unread.
Dave Love <fx@gnu.org>
parents:
diff changeset
5642
Dave Love <fx@gnu.org>
parents:
diff changeset
5643 @item gnus-uu-correct-stripped-uucode
Dave Love <fx@gnu.org>
parents:
diff changeset
5644 @vindex gnus-uu-correct-stripped-uucode
Dave Love <fx@gnu.org>
parents:
diff changeset
5645 Non-@code{nil} means that @code{gnus-uu} will @emph{try} to fix
Dave Love <fx@gnu.org>
parents:
diff changeset
5646 uuencoded files that have had trailing spaces deleted.
Dave Love <fx@gnu.org>
parents:
diff changeset
5647
Dave Love <fx@gnu.org>
parents:
diff changeset
5648 @item gnus-uu-pre-uudecode-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
5649 @vindex gnus-uu-pre-uudecode-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
5650 Hook run before sending a message to @code{uudecode}.
Dave Love <fx@gnu.org>
parents:
diff changeset
5651
Dave Love <fx@gnu.org>
parents:
diff changeset
5652 @item gnus-uu-view-with-metamail
Dave Love <fx@gnu.org>
parents:
diff changeset
5653 @vindex gnus-uu-view-with-metamail
Dave Love <fx@gnu.org>
parents:
diff changeset
5654 @cindex metamail
Dave Love <fx@gnu.org>
parents:
diff changeset
5655 Non-@code{nil} means that @code{gnus-uu} will ignore the viewing
Dave Love <fx@gnu.org>
parents:
diff changeset
5656 commands defined by the rule variables and just fudge a @sc{mime}
Dave Love <fx@gnu.org>
parents:
diff changeset
5657 content type based on the file name. The result will be fed to
Dave Love <fx@gnu.org>
parents:
diff changeset
5658 @code{metamail} for viewing.
Dave Love <fx@gnu.org>
parents:
diff changeset
5659
Dave Love <fx@gnu.org>
parents:
diff changeset
5660 @item gnus-uu-save-in-digest
Dave Love <fx@gnu.org>
parents:
diff changeset
5661 @vindex gnus-uu-save-in-digest
Dave Love <fx@gnu.org>
parents:
diff changeset
5662 Non-@code{nil} means that @code{gnus-uu}, when asked to save without
Dave Love <fx@gnu.org>
parents:
diff changeset
5663 decoding, will save in digests. If this variable is @code{nil},
Dave Love <fx@gnu.org>
parents:
diff changeset
5664 @code{gnus-uu} will just save everything in a file without any
Dave Love <fx@gnu.org>
parents:
diff changeset
5665 embellishments. The digesting almost conforms to RFC1153---no easy way
Dave Love <fx@gnu.org>
parents:
diff changeset
5666 to specify any meaningful volume and issue numbers were found, so I
Dave Love <fx@gnu.org>
parents:
diff changeset
5667 simply dropped them.
Dave Love <fx@gnu.org>
parents:
diff changeset
5668
Dave Love <fx@gnu.org>
parents:
diff changeset
5669 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
5670
Dave Love <fx@gnu.org>
parents:
diff changeset
5671
Dave Love <fx@gnu.org>
parents:
diff changeset
5672 @node Uuencoding and Posting
Dave Love <fx@gnu.org>
parents:
diff changeset
5673 @subsubsection Uuencoding and Posting
Dave Love <fx@gnu.org>
parents:
diff changeset
5674
Dave Love <fx@gnu.org>
parents:
diff changeset
5675 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
5676
Dave Love <fx@gnu.org>
parents:
diff changeset
5677 @item gnus-uu-post-include-before-composing
Dave Love <fx@gnu.org>
parents:
diff changeset
5678 @vindex gnus-uu-post-include-before-composing
Dave Love <fx@gnu.org>
parents:
diff changeset
5679 Non-@code{nil} means that @code{gnus-uu} will ask for a file to encode
Dave Love <fx@gnu.org>
parents:
diff changeset
5680 before you compose the article. If this variable is @code{t}, you can
Dave Love <fx@gnu.org>
parents:
diff changeset
5681 either include an encoded file with @kbd{C-c C-i} or have one included
Dave Love <fx@gnu.org>
parents:
diff changeset
5682 for you when you post the article.
Dave Love <fx@gnu.org>
parents:
diff changeset
5683
Dave Love <fx@gnu.org>
parents:
diff changeset
5684 @item gnus-uu-post-length
Dave Love <fx@gnu.org>
parents:
diff changeset
5685 @vindex gnus-uu-post-length
Dave Love <fx@gnu.org>
parents:
diff changeset
5686 Maximum length of an article. The encoded file will be split into how
Dave Love <fx@gnu.org>
parents:
diff changeset
5687 many articles it takes to post the entire file.
Dave Love <fx@gnu.org>
parents:
diff changeset
5688
Dave Love <fx@gnu.org>
parents:
diff changeset
5689 @item gnus-uu-post-threaded
Dave Love <fx@gnu.org>
parents:
diff changeset
5690 @vindex gnus-uu-post-threaded
Dave Love <fx@gnu.org>
parents:
diff changeset
5691 Non-@code{nil} means that @code{gnus-uu} will post the encoded file in a
Dave Love <fx@gnu.org>
parents:
diff changeset
5692 thread. This may not be smart, as no other decoder I have seen is able
Dave Love <fx@gnu.org>
parents:
diff changeset
5693 to follow threads when collecting uuencoded articles. (Well, I have
Dave Love <fx@gnu.org>
parents:
diff changeset
5694 seen one package that does that---@code{gnus-uu}, but somehow, I don't
Dave Love <fx@gnu.org>
parents:
diff changeset
5695 think that counts...) Default is @code{nil}.
Dave Love <fx@gnu.org>
parents:
diff changeset
5696
Dave Love <fx@gnu.org>
parents:
diff changeset
5697 @item gnus-uu-post-separate-description
Dave Love <fx@gnu.org>
parents:
diff changeset
5698 @vindex gnus-uu-post-separate-description
Dave Love <fx@gnu.org>
parents:
diff changeset
5699 Non-@code{nil} means that the description will be posted in a separate
Dave Love <fx@gnu.org>
parents:
diff changeset
5700 article. The first article will typically be numbered (0/x). If this
Dave Love <fx@gnu.org>
parents:
diff changeset
5701 variable is @code{nil}, the description the user enters will be included
Dave Love <fx@gnu.org>
parents:
diff changeset
5702 at the beginning of the first article, which will be numbered (1/x).
Dave Love <fx@gnu.org>
parents:
diff changeset
5703 Default is @code{t}.
Dave Love <fx@gnu.org>
parents:
diff changeset
5704
Dave Love <fx@gnu.org>
parents:
diff changeset
5705 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
5706
Dave Love <fx@gnu.org>
parents:
diff changeset
5707
Dave Love <fx@gnu.org>
parents:
diff changeset
5708 @node Viewing Files
Dave Love <fx@gnu.org>
parents:
diff changeset
5709 @subsection Viewing Files
Dave Love <fx@gnu.org>
parents:
diff changeset
5710 @cindex viewing files
Dave Love <fx@gnu.org>
parents:
diff changeset
5711 @cindex pseudo-articles
Dave Love <fx@gnu.org>
parents:
diff changeset
5712
Dave Love <fx@gnu.org>
parents:
diff changeset
5713 After decoding, if the file is some sort of archive, Gnus will attempt
Dave Love <fx@gnu.org>
parents:
diff changeset
5714 to unpack the archive and see if any of the files in the archive can be
Dave Love <fx@gnu.org>
parents:
diff changeset
5715 viewed. For instance, if you have a gzipped tar file @file{pics.tar.gz}
Dave Love <fx@gnu.org>
parents:
diff changeset
5716 containing the files @file{pic1.jpg} and @file{pic2.gif}, Gnus will
Dave Love <fx@gnu.org>
parents:
diff changeset
5717 uncompress and de-tar the main file, and then view the two pictures.
Dave Love <fx@gnu.org>
parents:
diff changeset
5718 This unpacking process is recursive, so if the archive contains archives
Dave Love <fx@gnu.org>
parents:
diff changeset
5719 of archives, it'll all be unpacked.
Dave Love <fx@gnu.org>
parents:
diff changeset
5720
Dave Love <fx@gnu.org>
parents:
diff changeset
5721 Finally, Gnus will normally insert a @dfn{pseudo-article} for each
Dave Love <fx@gnu.org>
parents:
diff changeset
5722 extracted file into the summary buffer. If you go to these
Dave Love <fx@gnu.org>
parents:
diff changeset
5723 ``articles'', you will be prompted for a command to run (usually Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
5724 will make a suggestion), and then the command will be run.
Dave Love <fx@gnu.org>
parents:
diff changeset
5725
Dave Love <fx@gnu.org>
parents:
diff changeset
5726 @vindex gnus-view-pseudo-asynchronously
Dave Love <fx@gnu.org>
parents:
diff changeset
5727 If @code{gnus-view-pseudo-asynchronously} is @code{nil}, Emacs will wait
Dave Love <fx@gnu.org>
parents:
diff changeset
5728 until the viewing is done before proceeding.
Dave Love <fx@gnu.org>
parents:
diff changeset
5729
Dave Love <fx@gnu.org>
parents:
diff changeset
5730 @vindex gnus-view-pseudos
Dave Love <fx@gnu.org>
parents:
diff changeset
5731 If @code{gnus-view-pseudos} is @code{automatic}, Gnus will not insert
Dave Love <fx@gnu.org>
parents:
diff changeset
5732 the pseudo-articles into the summary buffer, but view them
Dave Love <fx@gnu.org>
parents:
diff changeset
5733 immediately. If this variable is @code{not-confirm}, the user won't even
Dave Love <fx@gnu.org>
parents:
diff changeset
5734 be asked for a confirmation before viewing is done.
Dave Love <fx@gnu.org>
parents:
diff changeset
5735
Dave Love <fx@gnu.org>
parents:
diff changeset
5736 @vindex gnus-view-pseudos-separately
Dave Love <fx@gnu.org>
parents:
diff changeset
5737 If @code{gnus-view-pseudos-separately} is non-@code{nil}, one
Dave Love <fx@gnu.org>
parents:
diff changeset
5738 pseudo-article will be created for each file to be viewed. If
Dave Love <fx@gnu.org>
parents:
diff changeset
5739 @code{nil}, all files that use the same viewing command will be given as
Dave Love <fx@gnu.org>
parents:
diff changeset
5740 a list of parameters to that command.
Dave Love <fx@gnu.org>
parents:
diff changeset
5741
Dave Love <fx@gnu.org>
parents:
diff changeset
5742 @vindex gnus-insert-pseudo-articles
Dave Love <fx@gnu.org>
parents:
diff changeset
5743 If @code{gnus-insert-pseudo-articles} is non-@code{nil}, insert
Dave Love <fx@gnu.org>
parents:
diff changeset
5744 pseudo-articles when decoding. It is @code{t} by default.
Dave Love <fx@gnu.org>
parents:
diff changeset
5745
Dave Love <fx@gnu.org>
parents:
diff changeset
5746 So; there you are, reading your @emph{pseudo-articles} in your
Dave Love <fx@gnu.org>
parents:
diff changeset
5747 @emph{virtual newsgroup} from the @emph{virtual server}; and you think:
Dave Love <fx@gnu.org>
parents:
diff changeset
5748 Why isn't anything real anymore? How did we get here?
Dave Love <fx@gnu.org>
parents:
diff changeset
5749
Dave Love <fx@gnu.org>
parents:
diff changeset
5750
Dave Love <fx@gnu.org>
parents:
diff changeset
5751 @node Article Treatment
Dave Love <fx@gnu.org>
parents:
diff changeset
5752 @section Article Treatment
Dave Love <fx@gnu.org>
parents:
diff changeset
5753
Dave Love <fx@gnu.org>
parents:
diff changeset
5754 Reading through this huge manual, you may have quite forgotten that the
Dave Love <fx@gnu.org>
parents:
diff changeset
5755 object of newsreaders is to actually, like, read what people have
Dave Love <fx@gnu.org>
parents:
diff changeset
5756 written. Reading articles. Unfortunately, people are quite bad at
Dave Love <fx@gnu.org>
parents:
diff changeset
5757 writing, so there are tons of functions and variables to make reading
Dave Love <fx@gnu.org>
parents:
diff changeset
5758 these articles easier.
Dave Love <fx@gnu.org>
parents:
diff changeset
5759
Dave Love <fx@gnu.org>
parents:
diff changeset
5760 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
5761 * Article Highlighting:: You want to make the article look like fruit salad.
Dave Love <fx@gnu.org>
parents:
diff changeset
5762 * Article Fontisizing:: Making emphasized text look nice.
Dave Love <fx@gnu.org>
parents:
diff changeset
5763 * Article Hiding:: You also want to make certain info go away.
Dave Love <fx@gnu.org>
parents:
diff changeset
5764 * Article Washing:: Lots of way-neat functions to make life better.
Dave Love <fx@gnu.org>
parents:
diff changeset
5765 * Article Buttons:: Click on URLs, Message-IDs, addresses and the like.
Dave Love <fx@gnu.org>
parents:
diff changeset
5766 * Article Date:: Grumble, UT!
Dave Love <fx@gnu.org>
parents:
diff changeset
5767 * Article Signature:: What is a signature?
Dave Love <fx@gnu.org>
parents:
diff changeset
5768 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
5769
Dave Love <fx@gnu.org>
parents:
diff changeset
5770
Dave Love <fx@gnu.org>
parents:
diff changeset
5771 @node Article Highlighting
Dave Love <fx@gnu.org>
parents:
diff changeset
5772 @subsection Article Highlighting
Dave Love <fx@gnu.org>
parents:
diff changeset
5773 @cindex highlighting
Dave Love <fx@gnu.org>
parents:
diff changeset
5774
Dave Love <fx@gnu.org>
parents:
diff changeset
5775 Not only do you want your article buffer to look like fruit salad, but
Dave Love <fx@gnu.org>
parents:
diff changeset
5776 you want it to look like technicolor fruit salad.
Dave Love <fx@gnu.org>
parents:
diff changeset
5777
Dave Love <fx@gnu.org>
parents:
diff changeset
5778 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
5779
Dave Love <fx@gnu.org>
parents:
diff changeset
5780 @item W H a
Dave Love <fx@gnu.org>
parents:
diff changeset
5781 @kindex W H a (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
5782 @findex gnus-article-highlight
Dave Love <fx@gnu.org>
parents:
diff changeset
5783 @findex gnus-article-maybe-highlight
Dave Love <fx@gnu.org>
parents:
diff changeset
5784 Do much highlighting of the current article
Dave Love <fx@gnu.org>
parents:
diff changeset
5785 (@code{gnus-article-highlight}). This function highlights header, cited
Dave Love <fx@gnu.org>
parents:
diff changeset
5786 text, the signature, and adds buttons to the body and the head.
Dave Love <fx@gnu.org>
parents:
diff changeset
5787
Dave Love <fx@gnu.org>
parents:
diff changeset
5788 Most users would prefer using @code{gnus-article-maybe-highlight} in
Dave Love <fx@gnu.org>
parents:
diff changeset
5789 @code{gnus-article-display-hook} (@pxref{Customizing Articles}) instead.
Dave Love <fx@gnu.org>
parents:
diff changeset
5790 This is a bit less agressive---it highlights only the headers, the
Dave Love <fx@gnu.org>
parents:
diff changeset
5791 signature and adds buttons.
Dave Love <fx@gnu.org>
parents:
diff changeset
5792
Dave Love <fx@gnu.org>
parents:
diff changeset
5793 @item W H h
Dave Love <fx@gnu.org>
parents:
diff changeset
5794 @kindex W H h (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
5795 @findex gnus-article-highlight-headers
Dave Love <fx@gnu.org>
parents:
diff changeset
5796 @vindex gnus-header-face-alist
Dave Love <fx@gnu.org>
parents:
diff changeset
5797 Highlight the headers (@code{gnus-article-highlight-headers}). The
Dave Love <fx@gnu.org>
parents:
diff changeset
5798 highlighting will be done according to the @code{gnus-header-face-alist}
26290
df10644e22b5 Fix complaints from makeinfo 4.0.
Dave Love <fx@gnu.org>
parents: 25829
diff changeset
5799 variable, which is a list where each element has the form @code{(@var{regexp}
df10644e22b5 Fix complaints from makeinfo 4.0.
Dave Love <fx@gnu.org>
parents: 25829
diff changeset
5800 @var{name} @var{content})}. @var{regexp} is a regular expression for matching the
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
5801 header, @var{name} is the face used for highlighting the header name
Dave Love <fx@gnu.org>
parents:
diff changeset
5802 (@pxref{Faces and Fonts}) and @var{content} is the face for highlighting
Dave Love <fx@gnu.org>
parents:
diff changeset
5803 the header value. The first match made will be used. Note that
Dave Love <fx@gnu.org>
parents:
diff changeset
5804 @var{regexp} shouldn't have @samp{^} prepended---Gnus will add one.
Dave Love <fx@gnu.org>
parents:
diff changeset
5805
Dave Love <fx@gnu.org>
parents:
diff changeset
5806 @item W H c
Dave Love <fx@gnu.org>
parents:
diff changeset
5807 @kindex W H c (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
5808 @findex gnus-article-highlight-citation
Dave Love <fx@gnu.org>
parents:
diff changeset
5809 Highlight cited text (@code{gnus-article-highlight-citation}).
Dave Love <fx@gnu.org>
parents:
diff changeset
5810
Dave Love <fx@gnu.org>
parents:
diff changeset
5811 Some variables to customize the citation highlights:
Dave Love <fx@gnu.org>
parents:
diff changeset
5812
Dave Love <fx@gnu.org>
parents:
diff changeset
5813 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
5814 @vindex gnus-cite-parse-max-size
Dave Love <fx@gnu.org>
parents:
diff changeset
5815
Dave Love <fx@gnu.org>
parents:
diff changeset
5816 @item gnus-cite-parse-max-size
Dave Love <fx@gnu.org>
parents:
diff changeset
5817 If the article size if bigger than this variable (which is 25000 by
Dave Love <fx@gnu.org>
parents:
diff changeset
5818 default), no citation highlighting will be performed.
Dave Love <fx@gnu.org>
parents:
diff changeset
5819
Dave Love <fx@gnu.org>
parents:
diff changeset
5820 @item gnus-cite-prefix-regexp
Dave Love <fx@gnu.org>
parents:
diff changeset
5821 @vindex gnus-cite-prefix-regexp
Dave Love <fx@gnu.org>
parents:
diff changeset
5822 Regexp matching the longest possible citation prefix on a line.
Dave Love <fx@gnu.org>
parents:
diff changeset
5823
Dave Love <fx@gnu.org>
parents:
diff changeset
5824 @item gnus-cite-max-prefix
Dave Love <fx@gnu.org>
parents:
diff changeset
5825 @vindex gnus-cite-max-prefix
Dave Love <fx@gnu.org>
parents:
diff changeset
5826 Maximum possible length for a citation prefix (default 20).
Dave Love <fx@gnu.org>
parents:
diff changeset
5827
Dave Love <fx@gnu.org>
parents:
diff changeset
5828 @item gnus-cite-face-list
Dave Love <fx@gnu.org>
parents:
diff changeset
5829 @vindex gnus-cite-face-list
Dave Love <fx@gnu.org>
parents:
diff changeset
5830 List of faces used for highlighting citations (@pxref{Faces and Fonts}).
Dave Love <fx@gnu.org>
parents:
diff changeset
5831 When there are citations from multiple articles in the same message,
Dave Love <fx@gnu.org>
parents:
diff changeset
5832 Gnus will try to give each citation from each article its own face.
Dave Love <fx@gnu.org>
parents:
diff changeset
5833 This should make it easier to see who wrote what.
Dave Love <fx@gnu.org>
parents:
diff changeset
5834
Dave Love <fx@gnu.org>
parents:
diff changeset
5835 @item gnus-supercite-regexp
Dave Love <fx@gnu.org>
parents:
diff changeset
5836 @vindex gnus-supercite-regexp
Dave Love <fx@gnu.org>
parents:
diff changeset
5837 Regexp matching normal Supercite attribution lines.
Dave Love <fx@gnu.org>
parents:
diff changeset
5838
Dave Love <fx@gnu.org>
parents:
diff changeset
5839 @item gnus-supercite-secondary-regexp
Dave Love <fx@gnu.org>
parents:
diff changeset
5840 @vindex gnus-supercite-secondary-regexp
Dave Love <fx@gnu.org>
parents:
diff changeset
5841 Regexp matching mangled Supercite attribution lines.
Dave Love <fx@gnu.org>
parents:
diff changeset
5842
Dave Love <fx@gnu.org>
parents:
diff changeset
5843 @item gnus-cite-minimum-match-count
Dave Love <fx@gnu.org>
parents:
diff changeset
5844 @vindex gnus-cite-minimum-match-count
Dave Love <fx@gnu.org>
parents:
diff changeset
5845 Minimum number of identical prefixes we have to see before we believe
Dave Love <fx@gnu.org>
parents:
diff changeset
5846 that it's a citation.
Dave Love <fx@gnu.org>
parents:
diff changeset
5847
Dave Love <fx@gnu.org>
parents:
diff changeset
5848 @item gnus-cite-attribution-prefix
Dave Love <fx@gnu.org>
parents:
diff changeset
5849 @vindex gnus-cite-attribution-prefix
Dave Love <fx@gnu.org>
parents:
diff changeset
5850 Regexp matching the beginning of an attribution line.
Dave Love <fx@gnu.org>
parents:
diff changeset
5851
Dave Love <fx@gnu.org>
parents:
diff changeset
5852 @item gnus-cite-attribution-suffix
Dave Love <fx@gnu.org>
parents:
diff changeset
5853 @vindex gnus-cite-attribution-suffix
Dave Love <fx@gnu.org>
parents:
diff changeset
5854 Regexp matching the end of an attribution line.
Dave Love <fx@gnu.org>
parents:
diff changeset
5855
Dave Love <fx@gnu.org>
parents:
diff changeset
5856 @item gnus-cite-attribution-face
Dave Love <fx@gnu.org>
parents:
diff changeset
5857 @vindex gnus-cite-attribution-face
Dave Love <fx@gnu.org>
parents:
diff changeset
5858 Face used for attribution lines. It is merged with the face for the
Dave Love <fx@gnu.org>
parents:
diff changeset
5859 cited text belonging to the attribution.
Dave Love <fx@gnu.org>
parents:
diff changeset
5860
Dave Love <fx@gnu.org>
parents:
diff changeset
5861 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
5862
Dave Love <fx@gnu.org>
parents:
diff changeset
5863
Dave Love <fx@gnu.org>
parents:
diff changeset
5864 @item W H s
Dave Love <fx@gnu.org>
parents:
diff changeset
5865 @kindex W H s (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
5866 @vindex gnus-signature-separator
Dave Love <fx@gnu.org>
parents:
diff changeset
5867 @vindex gnus-signature-face
Dave Love <fx@gnu.org>
parents:
diff changeset
5868 @findex gnus-article-highlight-signature
Dave Love <fx@gnu.org>
parents:
diff changeset
5869 Highlight the signature (@code{gnus-article-highlight-signature}).
Dave Love <fx@gnu.org>
parents:
diff changeset
5870 Everything after @code{gnus-signature-separator} (@pxref{Article
Dave Love <fx@gnu.org>
parents:
diff changeset
5871 Signature}) in an article will be considered a signature and will be
Dave Love <fx@gnu.org>
parents:
diff changeset
5872 highlighted with @code{gnus-signature-face}, which is @code{italic} by
Dave Love <fx@gnu.org>
parents:
diff changeset
5873 default.
Dave Love <fx@gnu.org>
parents:
diff changeset
5874
Dave Love <fx@gnu.org>
parents:
diff changeset
5875 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
5876
Dave Love <fx@gnu.org>
parents:
diff changeset
5877 @xref{Customizing Articles}, for how to highlight articles automatically.
Dave Love <fx@gnu.org>
parents:
diff changeset
5878
Dave Love <fx@gnu.org>
parents:
diff changeset
5879
Dave Love <fx@gnu.org>
parents:
diff changeset
5880 @node Article Fontisizing
Dave Love <fx@gnu.org>
parents:
diff changeset
5881 @subsection Article Fontisizing
Dave Love <fx@gnu.org>
parents:
diff changeset
5882 @cindex emphasis
Dave Love <fx@gnu.org>
parents:
diff changeset
5883 @cindex article emphasis
Dave Love <fx@gnu.org>
parents:
diff changeset
5884
Dave Love <fx@gnu.org>
parents:
diff changeset
5885 @findex gnus-article-emphasize
Dave Love <fx@gnu.org>
parents:
diff changeset
5886 @kindex W e (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
5887 People commonly add emphasis to words in news articles by writing things
Dave Love <fx@gnu.org>
parents:
diff changeset
5888 like @samp{_this_} or @samp{*this*}. Gnus can make this look nicer by
Dave Love <fx@gnu.org>
parents:
diff changeset
5889 running the article through the @kbd{W e}
Dave Love <fx@gnu.org>
parents:
diff changeset
5890 (@code{gnus-article-emphasize}) command.
Dave Love <fx@gnu.org>
parents:
diff changeset
5891
Dave Love <fx@gnu.org>
parents:
diff changeset
5892 @vindex gnus-emphasis-alist
Dave Love <fx@gnu.org>
parents:
diff changeset
5893 How the emphasis is computed is controlled by the
Dave Love <fx@gnu.org>
parents:
diff changeset
5894 @code{gnus-emphasis-alist} variable. This is an alist where the first
Dave Love <fx@gnu.org>
parents:
diff changeset
5895 element is a regular expression to be matched. The second is a number
Dave Love <fx@gnu.org>
parents:
diff changeset
5896 that says what regular expression grouping is used to find the entire
Dave Love <fx@gnu.org>
parents:
diff changeset
5897 emphasized word. The third is a number that says what regexp grouping
Dave Love <fx@gnu.org>
parents:
diff changeset
5898 should be displayed and highlighted. (The text between these two
Dave Love <fx@gnu.org>
parents:
diff changeset
5899 groupings will be hidden.) The fourth is the face used for
Dave Love <fx@gnu.org>
parents:
diff changeset
5900 highlighting.
Dave Love <fx@gnu.org>
parents:
diff changeset
5901
Dave Love <fx@gnu.org>
parents:
diff changeset
5902 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
5903 (setq gnus-article-emphasis
Dave Love <fx@gnu.org>
parents:
diff changeset
5904 '(("_\\(\\w+\\)_" 0 1 gnus-emphasis-underline)
Dave Love <fx@gnu.org>
parents:
diff changeset
5905 ("\\*\\(\\w+\\)\\*" 0 1 gnus-emphasis-bold)))
Dave Love <fx@gnu.org>
parents:
diff changeset
5906 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
5907
Dave Love <fx@gnu.org>
parents:
diff changeset
5908 @vindex gnus-emphasis-underline
Dave Love <fx@gnu.org>
parents:
diff changeset
5909 @vindex gnus-emphasis-bold
Dave Love <fx@gnu.org>
parents:
diff changeset
5910 @vindex gnus-emphasis-italic
Dave Love <fx@gnu.org>
parents:
diff changeset
5911 @vindex gnus-emphasis-underline-bold
Dave Love <fx@gnu.org>
parents:
diff changeset
5912 @vindex gnus-emphasis-underline-italic
Dave Love <fx@gnu.org>
parents:
diff changeset
5913 @vindex gnus-emphasis-bold-italic
Dave Love <fx@gnu.org>
parents:
diff changeset
5914 @vindex gnus-emphasis-underline-bold-italic
Dave Love <fx@gnu.org>
parents:
diff changeset
5915 By default, there are seven rules, and they use the following faces:
Dave Love <fx@gnu.org>
parents:
diff changeset
5916 @code{gnus-emphasis-bold}, @code{gnus-emphasis-italic},
Dave Love <fx@gnu.org>
parents:
diff changeset
5917 @code{gnus-emphasis-underline}, @code{gnus-emphasis-bold-italic},
Dave Love <fx@gnu.org>
parents:
diff changeset
5918 @code{gnus-emphasis-underline-italic},
Dave Love <fx@gnu.org>
parents:
diff changeset
5919 @code{gnus-emphasis-underline-bold}, and
Dave Love <fx@gnu.org>
parents:
diff changeset
5920 @code{gnus-emphasis-underline-bold-italic}.
Dave Love <fx@gnu.org>
parents:
diff changeset
5921
Dave Love <fx@gnu.org>
parents:
diff changeset
5922 If you want to change these faces, you can either use @kbd{M-x
Dave Love <fx@gnu.org>
parents:
diff changeset
5923 customize}, or you can use @code{copy-face}. For instance, if you want
Dave Love <fx@gnu.org>
parents:
diff changeset
5924 to make @code{gnus-emphasis-italic} use a red face instead, you could
Dave Love <fx@gnu.org>
parents:
diff changeset
5925 say something like:
Dave Love <fx@gnu.org>
parents:
diff changeset
5926
Dave Love <fx@gnu.org>
parents:
diff changeset
5927 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
5928 (copy-face 'red 'gnus-emphasis-italic)
Dave Love <fx@gnu.org>
parents:
diff changeset
5929 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
5930
Dave Love <fx@gnu.org>
parents:
diff changeset
5931 @xref{Customizing Articles}, for how to fontize articles automatically.
Dave Love <fx@gnu.org>
parents:
diff changeset
5932
Dave Love <fx@gnu.org>
parents:
diff changeset
5933
Dave Love <fx@gnu.org>
parents:
diff changeset
5934 @node Article Hiding
Dave Love <fx@gnu.org>
parents:
diff changeset
5935 @subsection Article Hiding
Dave Love <fx@gnu.org>
parents:
diff changeset
5936 @cindex article hiding
Dave Love <fx@gnu.org>
parents:
diff changeset
5937
Dave Love <fx@gnu.org>
parents:
diff changeset
5938 Or rather, hiding certain things in each article. There usually is much
Dave Love <fx@gnu.org>
parents:
diff changeset
5939 too much cruft in most articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
5940
Dave Love <fx@gnu.org>
parents:
diff changeset
5941 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
5942
Dave Love <fx@gnu.org>
parents:
diff changeset
5943 @item W W a
Dave Love <fx@gnu.org>
parents:
diff changeset
5944 @kindex W W a (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
5945 @findex gnus-article-hide
Dave Love <fx@gnu.org>
parents:
diff changeset
5946 Do quite a lot of hiding on the article buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
5947 (@kbd{gnus-article-hide}). In particular, this function will hide
Dave Love <fx@gnu.org>
parents:
diff changeset
5948 headers, PGP, cited text and the signature.
Dave Love <fx@gnu.org>
parents:
diff changeset
5949
Dave Love <fx@gnu.org>
parents:
diff changeset
5950 @item W W h
Dave Love <fx@gnu.org>
parents:
diff changeset
5951 @kindex W W h (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
5952 @findex gnus-article-hide-headers
Dave Love <fx@gnu.org>
parents:
diff changeset
5953 Hide headers (@code{gnus-article-hide-headers}). @xref{Hiding
Dave Love <fx@gnu.org>
parents:
diff changeset
5954 Headers}.
Dave Love <fx@gnu.org>
parents:
diff changeset
5955
Dave Love <fx@gnu.org>
parents:
diff changeset
5956 @item W W b
Dave Love <fx@gnu.org>
parents:
diff changeset
5957 @kindex W W b (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
5958 @findex gnus-article-hide-boring-headers
Dave Love <fx@gnu.org>
parents:
diff changeset
5959 Hide headers that aren't particularly interesting
Dave Love <fx@gnu.org>
parents:
diff changeset
5960 (@code{gnus-article-hide-boring-headers}). @xref{Hiding Headers}.
Dave Love <fx@gnu.org>
parents:
diff changeset
5961
Dave Love <fx@gnu.org>
parents:
diff changeset
5962 @item W W s
Dave Love <fx@gnu.org>
parents:
diff changeset
5963 @kindex W W s (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
5964 @findex gnus-article-hide-signature
Dave Love <fx@gnu.org>
parents:
diff changeset
5965 Hide signature (@code{gnus-article-hide-signature}). @xref{Article
Dave Love <fx@gnu.org>
parents:
diff changeset
5966 Signature}.
Dave Love <fx@gnu.org>
parents:
diff changeset
5967
Dave Love <fx@gnu.org>
parents:
diff changeset
5968 @item W W p
Dave Love <fx@gnu.org>
parents:
diff changeset
5969 @kindex W W p (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
5970 @findex gnus-article-hide-pgp
Dave Love <fx@gnu.org>
parents:
diff changeset
5971 @vindex gnus-article-hide-pgp-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
5972 Hide @sc{pgp} signatures (@code{gnus-article-hide-pgp}). The
Dave Love <fx@gnu.org>
parents:
diff changeset
5973 @code{gnus-article-hide-pgp-hook} hook will be run after a @sc{pgp}
Dave Love <fx@gnu.org>
parents:
diff changeset
5974 signature has been hidden.
Dave Love <fx@gnu.org>
parents:
diff changeset
5975
Dave Love <fx@gnu.org>
parents:
diff changeset
5976 @item W W P
Dave Love <fx@gnu.org>
parents:
diff changeset
5977 @kindex W W P (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
5978 @findex gnus-article-hide-pem
Dave Love <fx@gnu.org>
parents:
diff changeset
5979 Hide @sc{pem} (privacy enhanced messages) cruft
Dave Love <fx@gnu.org>
parents:
diff changeset
5980 (@code{gnus-article-hide-pem}).
Dave Love <fx@gnu.org>
parents:
diff changeset
5981
Dave Love <fx@gnu.org>
parents:
diff changeset
5982 @item W W c
Dave Love <fx@gnu.org>
parents:
diff changeset
5983 @kindex W W c (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
5984 @findex gnus-article-hide-citation
Dave Love <fx@gnu.org>
parents:
diff changeset
5985 Hide citation (@code{gnus-article-hide-citation}). Some variables for
Dave Love <fx@gnu.org>
parents:
diff changeset
5986 customizing the hiding:
Dave Love <fx@gnu.org>
parents:
diff changeset
5987
Dave Love <fx@gnu.org>
parents:
diff changeset
5988 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
5989
Dave Love <fx@gnu.org>
parents:
diff changeset
5990 @item gnus-cited-opened-text-button-line-format
Dave Love <fx@gnu.org>
parents:
diff changeset
5991 @itemx gnus-cited-closed-text-button-line-format
Dave Love <fx@gnu.org>
parents:
diff changeset
5992 @vindex gnus-cited-closed-text-button-line-format
Dave Love <fx@gnu.org>
parents:
diff changeset
5993 @vindex gnus-cited-opened-text-button-line-format
Dave Love <fx@gnu.org>
parents:
diff changeset
5994 Gnus adds buttons to show where the cited text has been hidden, and to
Dave Love <fx@gnu.org>
parents:
diff changeset
5995 allow toggle hiding the text. The format of the variable is specified
Dave Love <fx@gnu.org>
parents:
diff changeset
5996 by these format-like variable (@pxref{Formatting Variables}). These
Dave Love <fx@gnu.org>
parents:
diff changeset
5997 specs are valid:
Dave Love <fx@gnu.org>
parents:
diff changeset
5998
Dave Love <fx@gnu.org>
parents:
diff changeset
5999 @table @samp
Dave Love <fx@gnu.org>
parents:
diff changeset
6000 @item b
Dave Love <fx@gnu.org>
parents:
diff changeset
6001 Starting point of the hidden text.
Dave Love <fx@gnu.org>
parents:
diff changeset
6002 @item e
Dave Love <fx@gnu.org>
parents:
diff changeset
6003 Ending point of the hidden text.
Dave Love <fx@gnu.org>
parents:
diff changeset
6004 @item l
Dave Love <fx@gnu.org>
parents:
diff changeset
6005 Number of characters in the hidden region.
Dave Love <fx@gnu.org>
parents:
diff changeset
6006 @item n
Dave Love <fx@gnu.org>
parents:
diff changeset
6007 Number of lines of hidden text.
Dave Love <fx@gnu.org>
parents:
diff changeset
6008 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
6009
Dave Love <fx@gnu.org>
parents:
diff changeset
6010 @item gnus-cited-lines-visible
Dave Love <fx@gnu.org>
parents:
diff changeset
6011 @vindex gnus-cited-lines-visible
Dave Love <fx@gnu.org>
parents:
diff changeset
6012 The number of lines at the beginning of the cited text to leave shown.
Dave Love <fx@gnu.org>
parents:
diff changeset
6013
Dave Love <fx@gnu.org>
parents:
diff changeset
6014 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
6015
Dave Love <fx@gnu.org>
parents:
diff changeset
6016 @item W W C-c
Dave Love <fx@gnu.org>
parents:
diff changeset
6017 @kindex W W C-c (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6018 @findex gnus-article-hide-citation-maybe
Dave Love <fx@gnu.org>
parents:
diff changeset
6019
Dave Love <fx@gnu.org>
parents:
diff changeset
6020 Hide citation (@code{gnus-article-hide-citation-maybe}) depending on the
Dave Love <fx@gnu.org>
parents:
diff changeset
6021 following two variables:
Dave Love <fx@gnu.org>
parents:
diff changeset
6022
Dave Love <fx@gnu.org>
parents:
diff changeset
6023 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
6024 @item gnus-cite-hide-percentage
Dave Love <fx@gnu.org>
parents:
diff changeset
6025 @vindex gnus-cite-hide-percentage
Dave Love <fx@gnu.org>
parents:
diff changeset
6026 If the cited text is of a bigger percentage than this variable (default
Dave Love <fx@gnu.org>
parents:
diff changeset
6027 50), hide the cited text.
Dave Love <fx@gnu.org>
parents:
diff changeset
6028
Dave Love <fx@gnu.org>
parents:
diff changeset
6029 @item gnus-cite-hide-absolute
Dave Love <fx@gnu.org>
parents:
diff changeset
6030 @vindex gnus-cite-hide-absolute
Dave Love <fx@gnu.org>
parents:
diff changeset
6031 The cited text must have at least this length (default 10) before it
Dave Love <fx@gnu.org>
parents:
diff changeset
6032 is hidden.
Dave Love <fx@gnu.org>
parents:
diff changeset
6033 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
6034
Dave Love <fx@gnu.org>
parents:
diff changeset
6035 @item W W C
Dave Love <fx@gnu.org>
parents:
diff changeset
6036 @kindex W W C (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6037 @findex gnus-article-hide-citation-in-followups
Dave Love <fx@gnu.org>
parents:
diff changeset
6038 Hide cited text in articles that aren't roots
Dave Love <fx@gnu.org>
parents:
diff changeset
6039 (@code{gnus-article-hide-citation-in-followups}). This isn't very
Dave Love <fx@gnu.org>
parents:
diff changeset
6040 useful as an interactive command, but might be a handy function to stick
Dave Love <fx@gnu.org>
parents:
diff changeset
6041 in @code{gnus-article-display-hook} (@pxref{Customizing Articles}).
Dave Love <fx@gnu.org>
parents:
diff changeset
6042
Dave Love <fx@gnu.org>
parents:
diff changeset
6043 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
6044
Dave Love <fx@gnu.org>
parents:
diff changeset
6045 All these ``hiding'' commands are toggles, but if you give a negative
Dave Love <fx@gnu.org>
parents:
diff changeset
6046 prefix to these commands, they will show what they have previously
Dave Love <fx@gnu.org>
parents:
diff changeset
6047 hidden. If you give a positive prefix, they will always hide.
Dave Love <fx@gnu.org>
parents:
diff changeset
6048
Dave Love <fx@gnu.org>
parents:
diff changeset
6049 Also @pxref{Article Highlighting} for further variables for
Dave Love <fx@gnu.org>
parents:
diff changeset
6050 citation customization.
Dave Love <fx@gnu.org>
parents:
diff changeset
6051
Dave Love <fx@gnu.org>
parents:
diff changeset
6052 @xref{Customizing Articles}, for how to hide article elements
Dave Love <fx@gnu.org>
parents:
diff changeset
6053 automatically.
Dave Love <fx@gnu.org>
parents:
diff changeset
6054
Dave Love <fx@gnu.org>
parents:
diff changeset
6055
Dave Love <fx@gnu.org>
parents:
diff changeset
6056 @node Article Washing
Dave Love <fx@gnu.org>
parents:
diff changeset
6057 @subsection Article Washing
Dave Love <fx@gnu.org>
parents:
diff changeset
6058 @cindex washing
Dave Love <fx@gnu.org>
parents:
diff changeset
6059 @cindex article washing
Dave Love <fx@gnu.org>
parents:
diff changeset
6060
Dave Love <fx@gnu.org>
parents:
diff changeset
6061 We call this ``article washing'' for a really good reason. Namely, the
Dave Love <fx@gnu.org>
parents:
diff changeset
6062 @kbd{A} key was taken, so we had to use the @kbd{W} key instead.
Dave Love <fx@gnu.org>
parents:
diff changeset
6063
Dave Love <fx@gnu.org>
parents:
diff changeset
6064 @dfn{Washing} is defined by us as ``changing something from something to
Dave Love <fx@gnu.org>
parents:
diff changeset
6065 something else'', but normally results in something looking better.
Dave Love <fx@gnu.org>
parents:
diff changeset
6066 Cleaner, perhaps.
Dave Love <fx@gnu.org>
parents:
diff changeset
6067
Dave Love <fx@gnu.org>
parents:
diff changeset
6068 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
6069
Dave Love <fx@gnu.org>
parents:
diff changeset
6070 @item W l
Dave Love <fx@gnu.org>
parents:
diff changeset
6071 @kindex W l (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6072 @findex gnus-summary-stop-page-breaking
Dave Love <fx@gnu.org>
parents:
diff changeset
6073 Remove page breaks from the current article
Dave Love <fx@gnu.org>
parents:
diff changeset
6074 (@code{gnus-summary-stop-page-breaking}). @xref{Misc Article}, for page
Dave Love <fx@gnu.org>
parents:
diff changeset
6075 delimiters.
Dave Love <fx@gnu.org>
parents:
diff changeset
6076
Dave Love <fx@gnu.org>
parents:
diff changeset
6077 @item W r
Dave Love <fx@gnu.org>
parents:
diff changeset
6078 @kindex W r (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6079 @findex gnus-summary-caesar-message
Dave Love <fx@gnu.org>
parents:
diff changeset
6080 @c @icon{gnus-summary-caesar-message}
Dave Love <fx@gnu.org>
parents:
diff changeset
6081 Do a Caesar rotate (rot13) on the article buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
6082 (@code{gnus-summary-caesar-message}).
Dave Love <fx@gnu.org>
parents:
diff changeset
6083 Unreadable articles that tell you to read them with Caesar rotate or rot13.
Dave Love <fx@gnu.org>
parents:
diff changeset
6084 (Typically offensive jokes and such.)
Dave Love <fx@gnu.org>
parents:
diff changeset
6085
Dave Love <fx@gnu.org>
parents:
diff changeset
6086 It's commonly called ``rot13'' because each letter is rotated 13
Dave Love <fx@gnu.org>
parents:
diff changeset
6087 positions in the alphabet, e. g. @samp{B} (letter #2) -> @samp{O} (letter
Dave Love <fx@gnu.org>
parents:
diff changeset
6088 #15). It is sometimes referred to as ``Caesar rotate'' because Caesar
Dave Love <fx@gnu.org>
parents:
diff changeset
6089 is rumored to have employed this form of, uh, somewhat weak encryption.
Dave Love <fx@gnu.org>
parents:
diff changeset
6090
Dave Love <fx@gnu.org>
parents:
diff changeset
6091 @item W t
Dave Love <fx@gnu.org>
parents:
diff changeset
6092 @kindex W t (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6093 @findex gnus-summary-toggle-header
Dave Love <fx@gnu.org>
parents:
diff changeset
6094 Toggle whether to display all headers in the article buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
6095 (@code{gnus-summary-toggle-header}).
Dave Love <fx@gnu.org>
parents:
diff changeset
6096
Dave Love <fx@gnu.org>
parents:
diff changeset
6097 @item W v
Dave Love <fx@gnu.org>
parents:
diff changeset
6098 @kindex W v (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6099 @findex gnus-summary-verbose-header
Dave Love <fx@gnu.org>
parents:
diff changeset
6100 Toggle whether to display all headers in the article buffer permanently
Dave Love <fx@gnu.org>
parents:
diff changeset
6101 (@code{gnus-summary-verbose-header}).
Dave Love <fx@gnu.org>
parents:
diff changeset
6102
Dave Love <fx@gnu.org>
parents:
diff changeset
6103 @item W m
Dave Love <fx@gnu.org>
parents:
diff changeset
6104 @kindex W m (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6105 @findex gnus-summary-toggle-mime
Dave Love <fx@gnu.org>
parents:
diff changeset
6106 Toggle whether to run the article through @sc{mime} before displaying
Dave Love <fx@gnu.org>
parents:
diff changeset
6107 (@code{gnus-summary-toggle-mime}).
Dave Love <fx@gnu.org>
parents:
diff changeset
6108
Dave Love <fx@gnu.org>
parents:
diff changeset
6109 @item W o
Dave Love <fx@gnu.org>
parents:
diff changeset
6110 @kindex W o (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6111 @findex gnus-article-treat-overstrike
Dave Love <fx@gnu.org>
parents:
diff changeset
6112 Treat overstrike (@code{gnus-article-treat-overstrike}).
Dave Love <fx@gnu.org>
parents:
diff changeset
6113
Dave Love <fx@gnu.org>
parents:
diff changeset
6114 @item W d
Dave Love <fx@gnu.org>
parents:
diff changeset
6115 @kindex W d (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6116 @findex gnus-article-treat-dumbquotes
Dave Love <fx@gnu.org>
parents:
diff changeset
6117 Treat M******** sm*rtq**t*s (@code{gnus-article-treat-dumbquotes}).
Dave Love <fx@gnu.org>
parents:
diff changeset
6118
Dave Love <fx@gnu.org>
parents:
diff changeset
6119 @item W w
Dave Love <fx@gnu.org>
parents:
diff changeset
6120 @kindex W w (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6121 @findex gnus-article-fill-cited-article
Dave Love <fx@gnu.org>
parents:
diff changeset
6122 Do word wrap (@code{gnus-article-fill-cited-article}). If you use this
Dave Love <fx@gnu.org>
parents:
diff changeset
6123 function in @code{gnus-article-display-hook}, it should be run fairly
Dave Love <fx@gnu.org>
parents:
diff changeset
6124 late and certainly after any highlighting.
Dave Love <fx@gnu.org>
parents:
diff changeset
6125
Dave Love <fx@gnu.org>
parents:
diff changeset
6126 You can give the command a numerical prefix to specify the width to use
Dave Love <fx@gnu.org>
parents:
diff changeset
6127 when filling.
Dave Love <fx@gnu.org>
parents:
diff changeset
6128
Dave Love <fx@gnu.org>
parents:
diff changeset
6129 @item W c
Dave Love <fx@gnu.org>
parents:
diff changeset
6130 @kindex W c (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6131 @findex gnus-article-remove-cr
Dave Love <fx@gnu.org>
parents:
diff changeset
6132 Remove CR (i. e., @samp{^M}s on the end of the lines)
Dave Love <fx@gnu.org>
parents:
diff changeset
6133 (@code{gnus-article-remove-cr}).
Dave Love <fx@gnu.org>
parents:
diff changeset
6134
Dave Love <fx@gnu.org>
parents:
diff changeset
6135 @item W q
Dave Love <fx@gnu.org>
parents:
diff changeset
6136 @kindex W q (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6137 @findex gnus-article-de-quoted-unreadable
Dave Love <fx@gnu.org>
parents:
diff changeset
6138 Treat quoted-printable (@code{gnus-article-de-quoted-unreadable}).
Dave Love <fx@gnu.org>
parents:
diff changeset
6139 Quoted-Printable is one common @sc{mime} encoding employed when sending
Dave Love <fx@gnu.org>
parents:
diff changeset
6140 non-ASCII (i. e., 8-bit) articles. It typically makes strings like
Dave Love <fx@gnu.org>
parents:
diff changeset
6141 @samp{déjà vu} look like @samp{d=E9j=E0 vu}, which doesn't look very
Dave Love <fx@gnu.org>
parents:
diff changeset
6142 readable to me.
Dave Love <fx@gnu.org>
parents:
diff changeset
6143
Dave Love <fx@gnu.org>
parents:
diff changeset
6144 @item W f
Dave Love <fx@gnu.org>
parents:
diff changeset
6145 @kindex W f (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6146 @cindex x-face
Dave Love <fx@gnu.org>
parents:
diff changeset
6147 @findex gnus-article-display-x-face
Dave Love <fx@gnu.org>
parents:
diff changeset
6148 @findex gnus-article-x-face-command
Dave Love <fx@gnu.org>
parents:
diff changeset
6149 @vindex gnus-article-x-face-command
Dave Love <fx@gnu.org>
parents:
diff changeset
6150 @vindex gnus-article-x-face-too-ugly
Dave Love <fx@gnu.org>
parents:
diff changeset
6151 Look for and display any X-Face headers
Dave Love <fx@gnu.org>
parents:
diff changeset
6152 (@code{gnus-article-display-x-face}). The command executed by this
Dave Love <fx@gnu.org>
parents:
diff changeset
6153 function is given by the @code{gnus-article-x-face-command} variable.
Dave Love <fx@gnu.org>
parents:
diff changeset
6154 If this variable is a string, this string will be executed in a
Dave Love <fx@gnu.org>
parents:
diff changeset
6155 sub-shell. If it is a function, this function will be called with the
Dave Love <fx@gnu.org>
parents:
diff changeset
6156 face as the argument. If the @code{gnus-article-x-face-too-ugly} (which
Dave Love <fx@gnu.org>
parents:
diff changeset
6157 is a regexp) matches the @code{From} header, the face will not be shown.
Dave Love <fx@gnu.org>
parents:
diff changeset
6158 The default action under Emacs is to fork off an @code{xv} to view the
Dave Love <fx@gnu.org>
parents:
diff changeset
6159 face; under XEmacs the default action is to display the face before the
Dave Love <fx@gnu.org>
parents:
diff changeset
6160 @code{From} header. (It's nicer if XEmacs has been compiled with X-Face
Dave Love <fx@gnu.org>
parents:
diff changeset
6161 support---that will make display somewhat faster. If there's no native
Dave Love <fx@gnu.org>
parents:
diff changeset
6162 X-Face support, Gnus will try to convert the @code{X-Face} header using
Dave Love <fx@gnu.org>
parents:
diff changeset
6163 external programs from the @code{pbmplus} package and friends.) If you
Dave Love <fx@gnu.org>
parents:
diff changeset
6164 want to have this function in the display hook, it should probably come
Dave Love <fx@gnu.org>
parents:
diff changeset
6165 last.
Dave Love <fx@gnu.org>
parents:
diff changeset
6166
Dave Love <fx@gnu.org>
parents:
diff changeset
6167 @item W b
Dave Love <fx@gnu.org>
parents:
diff changeset
6168 @kindex W b (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6169 @findex gnus-article-add-buttons
Dave Love <fx@gnu.org>
parents:
diff changeset
6170 Add clickable buttons to the article (@code{gnus-article-add-buttons}).
Dave Love <fx@gnu.org>
parents:
diff changeset
6171 @xref{Article Buttons}.
Dave Love <fx@gnu.org>
parents:
diff changeset
6172
Dave Love <fx@gnu.org>
parents:
diff changeset
6173 @item W B
Dave Love <fx@gnu.org>
parents:
diff changeset
6174 @kindex W B (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6175 @findex gnus-article-add-buttons-to-head
Dave Love <fx@gnu.org>
parents:
diff changeset
6176 Add clickable buttons to the article headers
Dave Love <fx@gnu.org>
parents:
diff changeset
6177 (@code{gnus-article-add-buttons-to-head}).
Dave Love <fx@gnu.org>
parents:
diff changeset
6178
Dave Love <fx@gnu.org>
parents:
diff changeset
6179 @item W E l
Dave Love <fx@gnu.org>
parents:
diff changeset
6180 @kindex W E l (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6181 @findex gnus-article-strip-leading-blank-lines
Dave Love <fx@gnu.org>
parents:
diff changeset
6182 Remove all blank lines from the beginning of the article
Dave Love <fx@gnu.org>
parents:
diff changeset
6183 (@code{gnus-article-strip-leading-blank-lines}).
Dave Love <fx@gnu.org>
parents:
diff changeset
6184
Dave Love <fx@gnu.org>
parents:
diff changeset
6185 @item W E m
Dave Love <fx@gnu.org>
parents:
diff changeset
6186 @kindex W E m (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6187 @findex gnus-article-strip-multiple-blank-lines
Dave Love <fx@gnu.org>
parents:
diff changeset
6188 Replace all blank lines with empty lines and then all multiple empty
Dave Love <fx@gnu.org>
parents:
diff changeset
6189 lines with a single empty line.
Dave Love <fx@gnu.org>
parents:
diff changeset
6190 (@code{gnus-article-strip-multiple-blank-lines}).
Dave Love <fx@gnu.org>
parents:
diff changeset
6191
Dave Love <fx@gnu.org>
parents:
diff changeset
6192 @item W E t
Dave Love <fx@gnu.org>
parents:
diff changeset
6193 @kindex W E t (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6194 @findex gnus-article-remove-trailing-blank-lines
Dave Love <fx@gnu.org>
parents:
diff changeset
6195 Remove all blank lines at the end of the article
Dave Love <fx@gnu.org>
parents:
diff changeset
6196 (@code{gnus-article-remove-trailing-blank-lines}).
Dave Love <fx@gnu.org>
parents:
diff changeset
6197
Dave Love <fx@gnu.org>
parents:
diff changeset
6198 @item W E a
Dave Love <fx@gnu.org>
parents:
diff changeset
6199 @kindex W E a (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6200 @findex gnus-article-strip-blank-lines
Dave Love <fx@gnu.org>
parents:
diff changeset
6201 Do all the three commands above
Dave Love <fx@gnu.org>
parents:
diff changeset
6202 (@code{gnus-article-strip-blank-lines}).
Dave Love <fx@gnu.org>
parents:
diff changeset
6203
Dave Love <fx@gnu.org>
parents:
diff changeset
6204 @item W E A
Dave Love <fx@gnu.org>
parents:
diff changeset
6205 @kindex W E A (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6206 @findex gnus-article-strip-all-blank-lines
Dave Love <fx@gnu.org>
parents:
diff changeset
6207 Remove all blank lines
Dave Love <fx@gnu.org>
parents:
diff changeset
6208 (@code{gnus-article-strip-all-blank-lines}).
Dave Love <fx@gnu.org>
parents:
diff changeset
6209
Dave Love <fx@gnu.org>
parents:
diff changeset
6210 @item W E s
Dave Love <fx@gnu.org>
parents:
diff changeset
6211 @kindex W E s (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6212 @findex gnus-article-strip-leading-space
Dave Love <fx@gnu.org>
parents:
diff changeset
6213 Remove all white space from the beginning of all lines of the article
Dave Love <fx@gnu.org>
parents:
diff changeset
6214 body (@code{gnus-article-strip-leading-space}).
Dave Love <fx@gnu.org>
parents:
diff changeset
6215
Dave Love <fx@gnu.org>
parents:
diff changeset
6216 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
6217
Dave Love <fx@gnu.org>
parents:
diff changeset
6218 @xref{Customizing Articles}, for how to wash articles automatically.
Dave Love <fx@gnu.org>
parents:
diff changeset
6219
Dave Love <fx@gnu.org>
parents:
diff changeset
6220
Dave Love <fx@gnu.org>
parents:
diff changeset
6221 @node Article Buttons
Dave Love <fx@gnu.org>
parents:
diff changeset
6222 @subsection Article Buttons
Dave Love <fx@gnu.org>
parents:
diff changeset
6223 @cindex buttons
Dave Love <fx@gnu.org>
parents:
diff changeset
6224
Dave Love <fx@gnu.org>
parents:
diff changeset
6225 People often include references to other stuff in articles, and it would
Dave Love <fx@gnu.org>
parents:
diff changeset
6226 be nice if Gnus could just fetch whatever it is that people talk about
Dave Love <fx@gnu.org>
parents:
diff changeset
6227 with the minimum of fuzz when you hit @kbd{RET} or use the middle mouse
Dave Love <fx@gnu.org>
parents:
diff changeset
6228 button on these references.
Dave Love <fx@gnu.org>
parents:
diff changeset
6229
Dave Love <fx@gnu.org>
parents:
diff changeset
6230 Gnus adds @dfn{buttons} to certain standard references by default:
Dave Love <fx@gnu.org>
parents:
diff changeset
6231 Well-formed URLs, mail addresses and Message-IDs. This is controlled by
Dave Love <fx@gnu.org>
parents:
diff changeset
6232 two variables, one that handles article bodies and one that handles
Dave Love <fx@gnu.org>
parents:
diff changeset
6233 article heads:
Dave Love <fx@gnu.org>
parents:
diff changeset
6234
Dave Love <fx@gnu.org>
parents:
diff changeset
6235 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
6236
Dave Love <fx@gnu.org>
parents:
diff changeset
6237 @item gnus-button-alist
Dave Love <fx@gnu.org>
parents:
diff changeset
6238 @vindex gnus-button-alist
Dave Love <fx@gnu.org>
parents:
diff changeset
6239 This is an alist where each entry has this form:
Dave Love <fx@gnu.org>
parents:
diff changeset
6240
Dave Love <fx@gnu.org>
parents:
diff changeset
6241 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
6242 (REGEXP BUTTON-PAR USE-P FUNCTION DATA-PAR)
Dave Love <fx@gnu.org>
parents:
diff changeset
6243 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
6244
Dave Love <fx@gnu.org>
parents:
diff changeset
6245 @table @var
Dave Love <fx@gnu.org>
parents:
diff changeset
6246
Dave Love <fx@gnu.org>
parents:
diff changeset
6247 @item regexp
Dave Love <fx@gnu.org>
parents:
diff changeset
6248 All text that match this regular expression will be considered an
Dave Love <fx@gnu.org>
parents:
diff changeset
6249 external reference. Here's a typical regexp that matches embedded URLs:
Dave Love <fx@gnu.org>
parents:
diff changeset
6250 @samp{<URL:\\([^\n\r>]*\\)>}.
Dave Love <fx@gnu.org>
parents:
diff changeset
6251
Dave Love <fx@gnu.org>
parents:
diff changeset
6252 @item button-par
Dave Love <fx@gnu.org>
parents:
diff changeset
6253 Gnus has to know which parts of the matches is to be highlighted. This
Dave Love <fx@gnu.org>
parents:
diff changeset
6254 is a number that says what sub-expression of the regexp is to be
Dave Love <fx@gnu.org>
parents:
diff changeset
6255 highlighted. If you want it all highlighted, you use 0 here.
Dave Love <fx@gnu.org>
parents:
diff changeset
6256
Dave Love <fx@gnu.org>
parents:
diff changeset
6257 @item use-p
Dave Love <fx@gnu.org>
parents:
diff changeset
6258 This form will be @code{eval}ed, and if the result is non-@code{nil},
Dave Love <fx@gnu.org>
parents:
diff changeset
6259 this is considered a match. This is useful if you want extra sifting to
Dave Love <fx@gnu.org>
parents:
diff changeset
6260 avoid false matches.
Dave Love <fx@gnu.org>
parents:
diff changeset
6261
Dave Love <fx@gnu.org>
parents:
diff changeset
6262 @item function
Dave Love <fx@gnu.org>
parents:
diff changeset
6263 This function will be called when you click on this button.
Dave Love <fx@gnu.org>
parents:
diff changeset
6264
Dave Love <fx@gnu.org>
parents:
diff changeset
6265 @item data-par
Dave Love <fx@gnu.org>
parents:
diff changeset
6266 As with @var{button-par}, this is a sub-expression number, but this one
Dave Love <fx@gnu.org>
parents:
diff changeset
6267 says which part of the match is to be sent as data to @var{function}.
Dave Love <fx@gnu.org>
parents:
diff changeset
6268
Dave Love <fx@gnu.org>
parents:
diff changeset
6269 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
6270
Dave Love <fx@gnu.org>
parents:
diff changeset
6271 So the full entry for buttonizing URLs is then
Dave Love <fx@gnu.org>
parents:
diff changeset
6272
Dave Love <fx@gnu.org>
parents:
diff changeset
6273 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
6274 ("<URL:\\([^\n\r>]*\\)>" 0 t gnus-button-url 1)
Dave Love <fx@gnu.org>
parents:
diff changeset
6275 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
6276
Dave Love <fx@gnu.org>
parents:
diff changeset
6277 @item gnus-header-button-alist
Dave Love <fx@gnu.org>
parents:
diff changeset
6278 @vindex gnus-header-button-alist
Dave Love <fx@gnu.org>
parents:
diff changeset
6279 This is just like the other alist, except that it is applied to the
Dave Love <fx@gnu.org>
parents:
diff changeset
6280 article head only, and that each entry has an additional element that is
Dave Love <fx@gnu.org>
parents:
diff changeset
6281 used to say what headers to apply the buttonize coding to:
Dave Love <fx@gnu.org>
parents:
diff changeset
6282
Dave Love <fx@gnu.org>
parents:
diff changeset
6283 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
6284 (HEADER REGEXP BUTTON-PAR USE-P FUNCTION DATA-PAR)
Dave Love <fx@gnu.org>
parents:
diff changeset
6285 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
6286
Dave Love <fx@gnu.org>
parents:
diff changeset
6287 @var{HEADER} is a regular expression.
Dave Love <fx@gnu.org>
parents:
diff changeset
6288
Dave Love <fx@gnu.org>
parents:
diff changeset
6289 @item gnus-button-url-regexp
Dave Love <fx@gnu.org>
parents:
diff changeset
6290 @vindex gnus-button-url-regexp
Dave Love <fx@gnu.org>
parents:
diff changeset
6291 A regular expression that matches embedded URLs. It is used in the
Dave Love <fx@gnu.org>
parents:
diff changeset
6292 default values of the variables above.
Dave Love <fx@gnu.org>
parents:
diff changeset
6293
Dave Love <fx@gnu.org>
parents:
diff changeset
6294 @item gnus-article-button-face
Dave Love <fx@gnu.org>
parents:
diff changeset
6295 @vindex gnus-article-button-face
Dave Love <fx@gnu.org>
parents:
diff changeset
6296 Face used on buttons.
Dave Love <fx@gnu.org>
parents:
diff changeset
6297
Dave Love <fx@gnu.org>
parents:
diff changeset
6298 @item gnus-article-mouse-face
Dave Love <fx@gnu.org>
parents:
diff changeset
6299 @vindex gnus-article-mouse-face
Dave Love <fx@gnu.org>
parents:
diff changeset
6300 Face used when the mouse cursor is over a button.
Dave Love <fx@gnu.org>
parents:
diff changeset
6301
Dave Love <fx@gnu.org>
parents:
diff changeset
6302 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
6303
Dave Love <fx@gnu.org>
parents:
diff changeset
6304 @xref{Customizing Articles}, for how to buttonize articles automatically.
Dave Love <fx@gnu.org>
parents:
diff changeset
6305
Dave Love <fx@gnu.org>
parents:
diff changeset
6306
Dave Love <fx@gnu.org>
parents:
diff changeset
6307 @node Article Date
Dave Love <fx@gnu.org>
parents:
diff changeset
6308 @subsection Article Date
Dave Love <fx@gnu.org>
parents:
diff changeset
6309
Dave Love <fx@gnu.org>
parents:
diff changeset
6310 The date is most likely generated in some obscure timezone you've never
Dave Love <fx@gnu.org>
parents:
diff changeset
6311 heard of, so it's quite nice to be able to find out what the time was
Dave Love <fx@gnu.org>
parents:
diff changeset
6312 when the article was sent.
Dave Love <fx@gnu.org>
parents:
diff changeset
6313
Dave Love <fx@gnu.org>
parents:
diff changeset
6314 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
6315
Dave Love <fx@gnu.org>
parents:
diff changeset
6316 @item W T u
Dave Love <fx@gnu.org>
parents:
diff changeset
6317 @kindex W T u (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6318 @findex gnus-article-date-ut
Dave Love <fx@gnu.org>
parents:
diff changeset
6319 Display the date in UT (aka. GMT, aka ZULU)
Dave Love <fx@gnu.org>
parents:
diff changeset
6320 (@code{gnus-article-date-ut}).
Dave Love <fx@gnu.org>
parents:
diff changeset
6321
Dave Love <fx@gnu.org>
parents:
diff changeset
6322 @item W T i
Dave Love <fx@gnu.org>
parents:
diff changeset
6323 @kindex W T i (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6324 @findex gnus-article-date-iso8601
Dave Love <fx@gnu.org>
parents:
diff changeset
6325 @cindex ISO 8601
Dave Love <fx@gnu.org>
parents:
diff changeset
6326 Display the date in international format, aka. ISO 8601
Dave Love <fx@gnu.org>
parents:
diff changeset
6327 (@code{gnus-article-date-iso8601}).
Dave Love <fx@gnu.org>
parents:
diff changeset
6328
Dave Love <fx@gnu.org>
parents:
diff changeset
6329 @item W T l
Dave Love <fx@gnu.org>
parents:
diff changeset
6330 @kindex W T l (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6331 @findex gnus-article-date-local
Dave Love <fx@gnu.org>
parents:
diff changeset
6332 Display the date in the local timezone (@code{gnus-article-date-local}).
Dave Love <fx@gnu.org>
parents:
diff changeset
6333
Dave Love <fx@gnu.org>
parents:
diff changeset
6334 @item W T s
Dave Love <fx@gnu.org>
parents:
diff changeset
6335 @kindex W T s (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6336 @vindex gnus-article-time-format
Dave Love <fx@gnu.org>
parents:
diff changeset
6337 @findex gnus-article-date-user
Dave Love <fx@gnu.org>
parents:
diff changeset
6338 @findex format-time-string
Dave Love <fx@gnu.org>
parents:
diff changeset
6339 Display the date using a user-defined format
Dave Love <fx@gnu.org>
parents:
diff changeset
6340 (@code{gnus-article-date-user}). The format is specified by the
Dave Love <fx@gnu.org>
parents:
diff changeset
6341 @code{gnus-article-time-format} variable, and is a string that's passed
Dave Love <fx@gnu.org>
parents:
diff changeset
6342 to @code{format-time-string}. See the documentation of that variable
Dave Love <fx@gnu.org>
parents:
diff changeset
6343 for a list of possible format specs.
Dave Love <fx@gnu.org>
parents:
diff changeset
6344
Dave Love <fx@gnu.org>
parents:
diff changeset
6345 @item W T e
Dave Love <fx@gnu.org>
parents:
diff changeset
6346 @kindex W T e (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6347 @findex gnus-article-date-lapsed
Dave Love <fx@gnu.org>
parents:
diff changeset
6348 @findex gnus-start-date-timer
Dave Love <fx@gnu.org>
parents:
diff changeset
6349 @findex gnus-stop-date-timer
Dave Love <fx@gnu.org>
parents:
diff changeset
6350 Say how much time has elapsed between the article was posted and now
Dave Love <fx@gnu.org>
parents:
diff changeset
6351 (@code{gnus-article-date-lapsed}). If you want to have this line
Dave Love <fx@gnu.org>
parents:
diff changeset
6352 updated continually, you can put
Dave Love <fx@gnu.org>
parents:
diff changeset
6353
Dave Love <fx@gnu.org>
parents:
diff changeset
6354 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
6355 (gnus-start-date-timer)
Dave Love <fx@gnu.org>
parents:
diff changeset
6356 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
6357
Dave Love <fx@gnu.org>
parents:
diff changeset
6358 in your @file{.gnus.el} file, or you can run it off of some hook. If
Dave Love <fx@gnu.org>
parents:
diff changeset
6359 you want to stop the timer, you can use the @code{gnus-stop-date-timer}
Dave Love <fx@gnu.org>
parents:
diff changeset
6360 command.
Dave Love <fx@gnu.org>
parents:
diff changeset
6361
Dave Love <fx@gnu.org>
parents:
diff changeset
6362 @item W T o
Dave Love <fx@gnu.org>
parents:
diff changeset
6363 @kindex W T o (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6364 @findex gnus-article-date-original
Dave Love <fx@gnu.org>
parents:
diff changeset
6365 Display the original date (@code{gnus-article-date-original}). This can
Dave Love <fx@gnu.org>
parents:
diff changeset
6366 be useful if you normally use some other conversion function and are
Dave Love <fx@gnu.org>
parents:
diff changeset
6367 worried that it might be doing something totally wrong. Say, claiming
Dave Love <fx@gnu.org>
parents:
diff changeset
6368 that the article was posted in 1854. Although something like that is
Dave Love <fx@gnu.org>
parents:
diff changeset
6369 @emph{totally} impossible. Don't you trust me? *titter*
Dave Love <fx@gnu.org>
parents:
diff changeset
6370
Dave Love <fx@gnu.org>
parents:
diff changeset
6371 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
6372
Dave Love <fx@gnu.org>
parents:
diff changeset
6373 @xref{Customizing Articles}, for how to display the date in your
Dave Love <fx@gnu.org>
parents:
diff changeset
6374 preferred format automatically.
Dave Love <fx@gnu.org>
parents:
diff changeset
6375
Dave Love <fx@gnu.org>
parents:
diff changeset
6376
Dave Love <fx@gnu.org>
parents:
diff changeset
6377 @node Article Signature
Dave Love <fx@gnu.org>
parents:
diff changeset
6378 @subsection Article Signature
Dave Love <fx@gnu.org>
parents:
diff changeset
6379 @cindex signatures
Dave Love <fx@gnu.org>
parents:
diff changeset
6380 @cindex article signature
Dave Love <fx@gnu.org>
parents:
diff changeset
6381
Dave Love <fx@gnu.org>
parents:
diff changeset
6382 @vindex gnus-signature-separator
Dave Love <fx@gnu.org>
parents:
diff changeset
6383 Each article is divided into two parts---the head and the body. The
Dave Love <fx@gnu.org>
parents:
diff changeset
6384 body can be divided into a signature part and a text part. The variable
Dave Love <fx@gnu.org>
parents:
diff changeset
6385 that says what is to be considered a signature is
Dave Love <fx@gnu.org>
parents:
diff changeset
6386 @code{gnus-signature-separator}. This is normally the standard
Dave Love <fx@gnu.org>
parents:
diff changeset
6387 @samp{^-- $} as mandated by son-of-RFC 1036. However, many people use
Dave Love <fx@gnu.org>
parents:
diff changeset
6388 non-standard signature separators, so this variable can also be a list
Dave Love <fx@gnu.org>
parents:
diff changeset
6389 of regular expressions to be tested, one by one. (Searches are done
Dave Love <fx@gnu.org>
parents:
diff changeset
6390 from the end of the body towards the beginning.) One likely value is:
Dave Love <fx@gnu.org>
parents:
diff changeset
6391
Dave Love <fx@gnu.org>
parents:
diff changeset
6392 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
6393 (setq gnus-signature-separator
Dave Love <fx@gnu.org>
parents:
diff changeset
6394 '("^-- $" ; The standard
Dave Love <fx@gnu.org>
parents:
diff changeset
6395 "^-- *$" ; A common mangling
Dave Love <fx@gnu.org>
parents:
diff changeset
6396 "^-------*$" ; Many people just use a looong
Dave Love <fx@gnu.org>
parents:
diff changeset
6397 ; line of dashes. Shame!
Dave Love <fx@gnu.org>
parents:
diff changeset
6398 "^ *--------*$" ; Double-shame!
Dave Love <fx@gnu.org>
parents:
diff changeset
6399 "^________*$" ; Underscores are also popular
Dave Love <fx@gnu.org>
parents:
diff changeset
6400 "^========*$")) ; Pervert!
Dave Love <fx@gnu.org>
parents:
diff changeset
6401 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
6402
Dave Love <fx@gnu.org>
parents:
diff changeset
6403 The more permissive you are, the more likely it is that you'll get false
Dave Love <fx@gnu.org>
parents:
diff changeset
6404 positives.
Dave Love <fx@gnu.org>
parents:
diff changeset
6405
Dave Love <fx@gnu.org>
parents:
diff changeset
6406 @vindex gnus-signature-limit
Dave Love <fx@gnu.org>
parents:
diff changeset
6407 @code{gnus-signature-limit} provides a limit to what is considered a
Dave Love <fx@gnu.org>
parents:
diff changeset
6408 signature.
Dave Love <fx@gnu.org>
parents:
diff changeset
6409
Dave Love <fx@gnu.org>
parents:
diff changeset
6410 @enumerate
Dave Love <fx@gnu.org>
parents:
diff changeset
6411 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
6412 If it is an integer, no signature may be longer (in characters) than
Dave Love <fx@gnu.org>
parents:
diff changeset
6413 that integer.
Dave Love <fx@gnu.org>
parents:
diff changeset
6414 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
6415 If it is a floating point number, no signature may be longer (in lines)
Dave Love <fx@gnu.org>
parents:
diff changeset
6416 than that number.
Dave Love <fx@gnu.org>
parents:
diff changeset
6417 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
6418 If it is a function, the function will be called without any parameters,
Dave Love <fx@gnu.org>
parents:
diff changeset
6419 and if it returns @code{nil}, there is no signature in the buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
6420 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
6421 If it is a string, it will be used as a regexp. If it matches, the text
Dave Love <fx@gnu.org>
parents:
diff changeset
6422 in question is not a signature.
Dave Love <fx@gnu.org>
parents:
diff changeset
6423 @end enumerate
Dave Love <fx@gnu.org>
parents:
diff changeset
6424
Dave Love <fx@gnu.org>
parents:
diff changeset
6425 This variable can also be a list where the elements may be of the types
Dave Love <fx@gnu.org>
parents:
diff changeset
6426 listed above. Here's an example:
Dave Love <fx@gnu.org>
parents:
diff changeset
6427
Dave Love <fx@gnu.org>
parents:
diff changeset
6428 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
6429 (setq gnus-signature-limit
Dave Love <fx@gnu.org>
parents:
diff changeset
6430 '(200.0 "^---*Forwarded article"))
Dave Love <fx@gnu.org>
parents:
diff changeset
6431 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
6432
Dave Love <fx@gnu.org>
parents:
diff changeset
6433 This means that if there are more than 200 lines after the signature
Dave Love <fx@gnu.org>
parents:
diff changeset
6434 separator, or the text after the signature separator is matched by
Dave Love <fx@gnu.org>
parents:
diff changeset
6435 the regular expression @samp{^---*Forwarded article}, then it isn't a
Dave Love <fx@gnu.org>
parents:
diff changeset
6436 signature after all.
Dave Love <fx@gnu.org>
parents:
diff changeset
6437
Dave Love <fx@gnu.org>
parents:
diff changeset
6438
Dave Love <fx@gnu.org>
parents:
diff changeset
6439 @node Article Commands
Dave Love <fx@gnu.org>
parents:
diff changeset
6440 @section Article Commands
Dave Love <fx@gnu.org>
parents:
diff changeset
6441
Dave Love <fx@gnu.org>
parents:
diff changeset
6442 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
6443
Dave Love <fx@gnu.org>
parents:
diff changeset
6444 @item A P
Dave Love <fx@gnu.org>
parents:
diff changeset
6445 @cindex PostScript
Dave Love <fx@gnu.org>
parents:
diff changeset
6446 @cindex printing
Dave Love <fx@gnu.org>
parents:
diff changeset
6447 @kindex A P (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6448 @vindex gnus-ps-print-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
6449 @findex gnus-summary-print-article
Dave Love <fx@gnu.org>
parents:
diff changeset
6450 Generate and print a PostScript image of the article buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
6451 (@code{gnus-summary-print-article}). @code{gnus-ps-print-hook} will be
Dave Love <fx@gnu.org>
parents:
diff changeset
6452 run just before printing the buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
6453
Dave Love <fx@gnu.org>
parents:
diff changeset
6454 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
6455
Dave Love <fx@gnu.org>
parents:
diff changeset
6456
Dave Love <fx@gnu.org>
parents:
diff changeset
6457 @node Summary Sorting
Dave Love <fx@gnu.org>
parents:
diff changeset
6458 @section Summary Sorting
Dave Love <fx@gnu.org>
parents:
diff changeset
6459 @cindex summary sorting
Dave Love <fx@gnu.org>
parents:
diff changeset
6460
Dave Love <fx@gnu.org>
parents:
diff changeset
6461 You can have the summary buffer sorted in various ways, even though I
Dave Love <fx@gnu.org>
parents:
diff changeset
6462 can't really see why you'd want that.
Dave Love <fx@gnu.org>
parents:
diff changeset
6463
Dave Love <fx@gnu.org>
parents:
diff changeset
6464 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
6465
Dave Love <fx@gnu.org>
parents:
diff changeset
6466 @item C-c C-s C-n
Dave Love <fx@gnu.org>
parents:
diff changeset
6467 @kindex C-c C-s C-n (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6468 @findex gnus-summary-sort-by-number
Dave Love <fx@gnu.org>
parents:
diff changeset
6469 Sort by article number (@code{gnus-summary-sort-by-number}).
Dave Love <fx@gnu.org>
parents:
diff changeset
6470
Dave Love <fx@gnu.org>
parents:
diff changeset
6471 @item C-c C-s C-a
Dave Love <fx@gnu.org>
parents:
diff changeset
6472 @kindex C-c C-s C-a (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6473 @findex gnus-summary-sort-by-author
Dave Love <fx@gnu.org>
parents:
diff changeset
6474 Sort by author (@code{gnus-summary-sort-by-author}).
Dave Love <fx@gnu.org>
parents:
diff changeset
6475
Dave Love <fx@gnu.org>
parents:
diff changeset
6476 @item C-c C-s C-s
Dave Love <fx@gnu.org>
parents:
diff changeset
6477 @kindex C-c C-s C-s (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6478 @findex gnus-summary-sort-by-subject
Dave Love <fx@gnu.org>
parents:
diff changeset
6479 Sort by subject (@code{gnus-summary-sort-by-subject}).
Dave Love <fx@gnu.org>
parents:
diff changeset
6480
Dave Love <fx@gnu.org>
parents:
diff changeset
6481 @item C-c C-s C-d
Dave Love <fx@gnu.org>
parents:
diff changeset
6482 @kindex C-c C-s C-d (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6483 @findex gnus-summary-sort-by-date
Dave Love <fx@gnu.org>
parents:
diff changeset
6484 Sort by date (@code{gnus-summary-sort-by-date}).
Dave Love <fx@gnu.org>
parents:
diff changeset
6485
Dave Love <fx@gnu.org>
parents:
diff changeset
6486 @item C-c C-s C-l
Dave Love <fx@gnu.org>
parents:
diff changeset
6487 @kindex C-c C-s C-l (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6488 @findex gnus-summary-sort-by-lines
Dave Love <fx@gnu.org>
parents:
diff changeset
6489 Sort by lines (@code{gnus-summary-sort-by-lines}).
Dave Love <fx@gnu.org>
parents:
diff changeset
6490
Dave Love <fx@gnu.org>
parents:
diff changeset
6491 @item C-c C-s C-i
Dave Love <fx@gnu.org>
parents:
diff changeset
6492 @kindex C-c C-s C-i (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6493 @findex gnus-summary-sort-by-score
Dave Love <fx@gnu.org>
parents:
diff changeset
6494 Sort by score (@code{gnus-summary-sort-by-score}).
Dave Love <fx@gnu.org>
parents:
diff changeset
6495 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
6496
Dave Love <fx@gnu.org>
parents:
diff changeset
6497 These functions will work both when you use threading and when you don't
Dave Love <fx@gnu.org>
parents:
diff changeset
6498 use threading. In the latter case, all summary lines will be sorted,
Dave Love <fx@gnu.org>
parents:
diff changeset
6499 line by line. In the former case, sorting will be done on a
Dave Love <fx@gnu.org>
parents:
diff changeset
6500 root-by-root basis, which might not be what you were looking for. To
Dave Love <fx@gnu.org>
parents:
diff changeset
6501 toggle whether to use threading, type @kbd{T T} (@pxref{Thread
Dave Love <fx@gnu.org>
parents:
diff changeset
6502 Commands}).
Dave Love <fx@gnu.org>
parents:
diff changeset
6503
Dave Love <fx@gnu.org>
parents:
diff changeset
6504
Dave Love <fx@gnu.org>
parents:
diff changeset
6505 @node Finding the Parent
Dave Love <fx@gnu.org>
parents:
diff changeset
6506 @section Finding the Parent
Dave Love <fx@gnu.org>
parents:
diff changeset
6507 @cindex parent articles
Dave Love <fx@gnu.org>
parents:
diff changeset
6508 @cindex referring articles
Dave Love <fx@gnu.org>
parents:
diff changeset
6509
Dave Love <fx@gnu.org>
parents:
diff changeset
6510 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
6511 @item ^
Dave Love <fx@gnu.org>
parents:
diff changeset
6512 @kindex ^ (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6513 @findex gnus-summary-refer-parent-article
Dave Love <fx@gnu.org>
parents:
diff changeset
6514 If you'd like to read the parent of the current article, and it is not
Dave Love <fx@gnu.org>
parents:
diff changeset
6515 displayed in the summary buffer, you might still be able to. That is,
Dave Love <fx@gnu.org>
parents:
diff changeset
6516 if the current group is fetched by @sc{nntp}, the parent hasn't expired
Dave Love <fx@gnu.org>
parents:
diff changeset
6517 and the @code{References} in the current article are not mangled, you
Dave Love <fx@gnu.org>
parents:
diff changeset
6518 can just press @kbd{^} or @kbd{A r}
Dave Love <fx@gnu.org>
parents:
diff changeset
6519 (@code{gnus-summary-refer-parent-article}). If everything goes well,
Dave Love <fx@gnu.org>
parents:
diff changeset
6520 you'll get the parent. If the parent is already displayed in the
Dave Love <fx@gnu.org>
parents:
diff changeset
6521 summary buffer, point will just move to this article.
Dave Love <fx@gnu.org>
parents:
diff changeset
6522
Dave Love <fx@gnu.org>
parents:
diff changeset
6523 If given a positive numerical prefix, fetch that many articles back into
Dave Love <fx@gnu.org>
parents:
diff changeset
6524 the ancestry. If given a negative numerical prefix, fetch just that
Dave Love <fx@gnu.org>
parents:
diff changeset
6525 ancestor. So if you say @kbd{3 ^}, Gnus will fetch the parent, the
Dave Love <fx@gnu.org>
parents:
diff changeset
6526 grandparent and the grandgrandparent of the current article. If you say
Dave Love <fx@gnu.org>
parents:
diff changeset
6527 @kbd{-3 ^}, Gnus will only fetch the grandgrandparent of the current
Dave Love <fx@gnu.org>
parents:
diff changeset
6528 article.
Dave Love <fx@gnu.org>
parents:
diff changeset
6529
Dave Love <fx@gnu.org>
parents:
diff changeset
6530 @item A R (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6531 @findex gnus-summary-refer-references
Dave Love <fx@gnu.org>
parents:
diff changeset
6532 @kindex A R (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6533 Fetch all articles mentioned in the @code{References} header of the
Dave Love <fx@gnu.org>
parents:
diff changeset
6534 article (@code{gnus-summary-refer-references}).
Dave Love <fx@gnu.org>
parents:
diff changeset
6535
Dave Love <fx@gnu.org>
parents:
diff changeset
6536 @item A T (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6537 @findex gnus-summary-refer-thread
Dave Love <fx@gnu.org>
parents:
diff changeset
6538 @kindex A T (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6539 Display the full thread where the current article appears
Dave Love <fx@gnu.org>
parents:
diff changeset
6540 (@code{gnus-summary-refer-thread}). This command has to fetch all the
Dave Love <fx@gnu.org>
parents:
diff changeset
6541 headers in the current group to work, so it usually takes a while. If
Dave Love <fx@gnu.org>
parents:
diff changeset
6542 you do it often, you may consider setting @code{gnus-fetch-old-headers}
Dave Love <fx@gnu.org>
parents:
diff changeset
6543 to @code{invisible} (@pxref{Filling In Threads}). This won't have any
Dave Love <fx@gnu.org>
parents:
diff changeset
6544 visible effects normally, but it'll make this command work a whole lot
Dave Love <fx@gnu.org>
parents:
diff changeset
6545 faster. Of course, it'll make group entry somewhat slow.
Dave Love <fx@gnu.org>
parents:
diff changeset
6546
Dave Love <fx@gnu.org>
parents:
diff changeset
6547 @vindex gnus-refer-thread-limit
Dave Love <fx@gnu.org>
parents:
diff changeset
6548 The @code{gnus-refer-thread-limit} variable says how many old (i. e.,
Dave Love <fx@gnu.org>
parents:
diff changeset
6549 articles before the first displayed in the current group) headers to
Dave Love <fx@gnu.org>
parents:
diff changeset
6550 fetch when doing this command. The default is 200. If @code{t}, all
Dave Love <fx@gnu.org>
parents:
diff changeset
6551 the available headers will be fetched. This variable can be overridden
Dave Love <fx@gnu.org>
parents:
diff changeset
6552 by giving the @kbd{A T} command a numerical prefix.
Dave Love <fx@gnu.org>
parents:
diff changeset
6553
Dave Love <fx@gnu.org>
parents:
diff changeset
6554 @item M-^ (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6555 @findex gnus-summary-refer-article
Dave Love <fx@gnu.org>
parents:
diff changeset
6556 @kindex M-^ (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6557 @cindex Message-ID
Dave Love <fx@gnu.org>
parents:
diff changeset
6558 @cindex fetching by Message-ID
Dave Love <fx@gnu.org>
parents:
diff changeset
6559 You can also ask the @sc{nntp} server for an arbitrary article, no
Dave Love <fx@gnu.org>
parents:
diff changeset
6560 matter what group it belongs to. @kbd{M-^}
Dave Love <fx@gnu.org>
parents:
diff changeset
6561 (@code{gnus-summary-refer-article}) will ask you for a
Dave Love <fx@gnu.org>
parents:
diff changeset
6562 @code{Message-ID}, which is one of those long, hard-to-read thingies
Dave Love <fx@gnu.org>
parents:
diff changeset
6563 that look something like @samp{<38o6up$6f2@@hymir.ifi.uio.no>}. You
Dave Love <fx@gnu.org>
parents:
diff changeset
6564 have to get it all exactly right. No fuzzy searches, I'm afraid.
Dave Love <fx@gnu.org>
parents:
diff changeset
6565 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
6566
Dave Love <fx@gnu.org>
parents:
diff changeset
6567 The current select method will be used when fetching by
Dave Love <fx@gnu.org>
parents:
diff changeset
6568 @code{Message-ID} from non-news select method, but you can override this
Dave Love <fx@gnu.org>
parents:
diff changeset
6569 by giving this command a prefix.
Dave Love <fx@gnu.org>
parents:
diff changeset
6570
Dave Love <fx@gnu.org>
parents:
diff changeset
6571 @vindex gnus-refer-article-method
Dave Love <fx@gnu.org>
parents:
diff changeset
6572 If the group you are reading is located on a backend that does not
Dave Love <fx@gnu.org>
parents:
diff changeset
6573 support fetching by @code{Message-ID} very well (like @code{nnspool}),
Dave Love <fx@gnu.org>
parents:
diff changeset
6574 you can set @code{gnus-refer-article-method} to an @sc{nntp} method. It
Dave Love <fx@gnu.org>
parents:
diff changeset
6575 would, perhaps, be best if the @sc{nntp} server you consult is the one
Dave Love <fx@gnu.org>
parents:
diff changeset
6576 updating the spool you are reading from, but that's not really
Dave Love <fx@gnu.org>
parents:
diff changeset
6577 necessary.
Dave Love <fx@gnu.org>
parents:
diff changeset
6578
Dave Love <fx@gnu.org>
parents:
diff changeset
6579 Most of the mail backends support fetching by @code{Message-ID}, but do
Dave Love <fx@gnu.org>
parents:
diff changeset
6580 not do a particularly excellent job at it. That is, @code{nnmbox} and
Dave Love <fx@gnu.org>
parents:
diff changeset
6581 @code{nnbabyl} are able to locate articles from any groups, while
Dave Love <fx@gnu.org>
parents:
diff changeset
6582 @code{nnml} and @code{nnfolder} are only able to locate articles that
Dave Love <fx@gnu.org>
parents:
diff changeset
6583 have been posted to the current group. (Anything else would be too time
Dave Love <fx@gnu.org>
parents:
diff changeset
6584 consuming.) @code{nnmh} does not support this at all.
Dave Love <fx@gnu.org>
parents:
diff changeset
6585
Dave Love <fx@gnu.org>
parents:
diff changeset
6586
Dave Love <fx@gnu.org>
parents:
diff changeset
6587 @node Alternative Approaches
Dave Love <fx@gnu.org>
parents:
diff changeset
6588 @section Alternative Approaches
Dave Love <fx@gnu.org>
parents:
diff changeset
6589
Dave Love <fx@gnu.org>
parents:
diff changeset
6590 Different people like to read news using different methods. This being
Dave Love <fx@gnu.org>
parents:
diff changeset
6591 Gnus, we offer a small selection of minor modes for the summary buffers.
Dave Love <fx@gnu.org>
parents:
diff changeset
6592
Dave Love <fx@gnu.org>
parents:
diff changeset
6593 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
6594 * Pick and Read:: First mark articles and then read them.
Dave Love <fx@gnu.org>
parents:
diff changeset
6595 * Binary Groups:: Auto-decode all articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
6596 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
6597
Dave Love <fx@gnu.org>
parents:
diff changeset
6598
Dave Love <fx@gnu.org>
parents:
diff changeset
6599 @node Pick and Read
Dave Love <fx@gnu.org>
parents:
diff changeset
6600 @subsection Pick and Read
Dave Love <fx@gnu.org>
parents:
diff changeset
6601 @cindex pick and read
Dave Love <fx@gnu.org>
parents:
diff changeset
6602
Dave Love <fx@gnu.org>
parents:
diff changeset
6603 Some newsreaders (like @code{nn} and, uhm, @code{Netnews} on VM/CMS) use
Dave Love <fx@gnu.org>
parents:
diff changeset
6604 a two-phased reading interface. The user first marks in a summary
Dave Love <fx@gnu.org>
parents:
diff changeset
6605 buffer the articles she wants to read. Then she starts reading the
Dave Love <fx@gnu.org>
parents:
diff changeset
6606 articles with just an article buffer displayed.
Dave Love <fx@gnu.org>
parents:
diff changeset
6607
Dave Love <fx@gnu.org>
parents:
diff changeset
6608 @findex gnus-pick-mode
Dave Love <fx@gnu.org>
parents:
diff changeset
6609 @kindex M-x gnus-pick-mode
Dave Love <fx@gnu.org>
parents:
diff changeset
6610 Gnus provides a summary buffer minor mode that allows
Dave Love <fx@gnu.org>
parents:
diff changeset
6611 this---@code{gnus-pick-mode}. This basically means that a few process
Dave Love <fx@gnu.org>
parents:
diff changeset
6612 mark commands become one-keystroke commands to allow easy marking, and
Dave Love <fx@gnu.org>
parents:
diff changeset
6613 it provides one additional command for switching to the summary buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
6614
Dave Love <fx@gnu.org>
parents:
diff changeset
6615 Here are the available keystrokes when using pick mode:
Dave Love <fx@gnu.org>
parents:
diff changeset
6616
Dave Love <fx@gnu.org>
parents:
diff changeset
6617 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
6618 @item .
Dave Love <fx@gnu.org>
parents:
diff changeset
6619 @kindex . (Pick)
Dave Love <fx@gnu.org>
parents:
diff changeset
6620 @findex gnus-pick-article-or-thread
Dave Love <fx@gnu.org>
parents:
diff changeset
6621 Pick the article or thread on the current line
Dave Love <fx@gnu.org>
parents:
diff changeset
6622 (@code{gnus-pick-article-or-thread}). If the variable
Dave Love <fx@gnu.org>
parents:
diff changeset
6623 @code{gnus-thread-hide-subtree} is true, then this key selects the
Dave Love <fx@gnu.org>
parents:
diff changeset
6624 entire thread when used at the first article of the thread. Otherwise,
Dave Love <fx@gnu.org>
parents:
diff changeset
6625 it selects just the article. If given a numerical prefix, go to that
Dave Love <fx@gnu.org>
parents:
diff changeset
6626 thread or article and pick it. (The line number is normally displayed
Dave Love <fx@gnu.org>
parents:
diff changeset
6627 at the beginning of the summary pick lines.)
Dave Love <fx@gnu.org>
parents:
diff changeset
6628
Dave Love <fx@gnu.org>
parents:
diff changeset
6629 @item SPACE
Dave Love <fx@gnu.org>
parents:
diff changeset
6630 @kindex SPACE (Pick)
Dave Love <fx@gnu.org>
parents:
diff changeset
6631 @findex gnus-pick-next-page
Dave Love <fx@gnu.org>
parents:
diff changeset
6632 Scroll the summary buffer up one page (@code{gnus-pick-next-page}). If
Dave Love <fx@gnu.org>
parents:
diff changeset
6633 at the end of the buffer, start reading the picked articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
6634
Dave Love <fx@gnu.org>
parents:
diff changeset
6635 @item u
Dave Love <fx@gnu.org>
parents:
diff changeset
6636 @kindex u (Pick)
Dave Love <fx@gnu.org>
parents:
diff changeset
6637 @findex gnus-pick-unmark-article-or-thread.
Dave Love <fx@gnu.org>
parents:
diff changeset
6638 Unpick the thread or article
Dave Love <fx@gnu.org>
parents:
diff changeset
6639 (@code{gnus-pick-unmark-article-or-thread}). If the variable
Dave Love <fx@gnu.org>
parents:
diff changeset
6640 @code{gnus-thread-hide-subtree} is true, then this key unpicks the
Dave Love <fx@gnu.org>
parents:
diff changeset
6641 thread if used at the first article of the thread. Otherwise it unpicks
Dave Love <fx@gnu.org>
parents:
diff changeset
6642 just the article. You can give this key a numerical prefix to unpick
Dave Love <fx@gnu.org>
parents:
diff changeset
6643 the thread or article at that line.
Dave Love <fx@gnu.org>
parents:
diff changeset
6644
Dave Love <fx@gnu.org>
parents:
diff changeset
6645 @item RET
Dave Love <fx@gnu.org>
parents:
diff changeset
6646 @kindex RET (Pick)
Dave Love <fx@gnu.org>
parents:
diff changeset
6647 @findex gnus-pick-start-reading
Dave Love <fx@gnu.org>
parents:
diff changeset
6648 @vindex gnus-pick-display-summary
Dave Love <fx@gnu.org>
parents:
diff changeset
6649 Start reading the picked articles (@code{gnus-pick-start-reading}). If
Dave Love <fx@gnu.org>
parents:
diff changeset
6650 given a prefix, mark all unpicked articles as read first. If
Dave Love <fx@gnu.org>
parents:
diff changeset
6651 @code{gnus-pick-display-summary} is non-@code{nil}, the summary buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
6652 will still be visible when you are reading.
Dave Love <fx@gnu.org>
parents:
diff changeset
6653
Dave Love <fx@gnu.org>
parents:
diff changeset
6654 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
6655
Dave Love <fx@gnu.org>
parents:
diff changeset
6656 All the normal summary mode commands are still available in the
Dave Love <fx@gnu.org>
parents:
diff changeset
6657 pick-mode, with the exception of @kbd{u}. However @kbd{!} is available
Dave Love <fx@gnu.org>
parents:
diff changeset
6658 which is mapped to the same function
Dave Love <fx@gnu.org>
parents:
diff changeset
6659 @code{gnus-summary-tick-article-forward}.
Dave Love <fx@gnu.org>
parents:
diff changeset
6660
Dave Love <fx@gnu.org>
parents:
diff changeset
6661 If this sounds like a good idea to you, you could say:
Dave Love <fx@gnu.org>
parents:
diff changeset
6662
Dave Love <fx@gnu.org>
parents:
diff changeset
6663 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
6664 (add-hook 'gnus-summary-mode-hook 'gnus-pick-mode)
Dave Love <fx@gnu.org>
parents:
diff changeset
6665 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
6666
Dave Love <fx@gnu.org>
parents:
diff changeset
6667 @vindex gnus-pick-mode-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
6668 @code{gnus-pick-mode-hook} is run in pick minor mode buffers.
Dave Love <fx@gnu.org>
parents:
diff changeset
6669
Dave Love <fx@gnu.org>
parents:
diff changeset
6670 @vindex gnus-mark-unpicked-articles-as-read
Dave Love <fx@gnu.org>
parents:
diff changeset
6671 If @code{gnus-mark-unpicked-articles-as-read} is non-@code{nil}, mark
Dave Love <fx@gnu.org>
parents:
diff changeset
6672 all unpicked articles as read. The default is @code{nil}.
Dave Love <fx@gnu.org>
parents:
diff changeset
6673
Dave Love <fx@gnu.org>
parents:
diff changeset
6674 @vindex gnus-summary-pick-line-format
Dave Love <fx@gnu.org>
parents:
diff changeset
6675 The summary line format in pick mode is slightly different from the
Dave Love <fx@gnu.org>
parents:
diff changeset
6676 standard format. At the beginning of each line the line number is
Dave Love <fx@gnu.org>
parents:
diff changeset
6677 displayed. The pick mode line format is controlled by the
Dave Love <fx@gnu.org>
parents:
diff changeset
6678 @code{gnus-summary-pick-line-format} variable (@pxref{Formatting
Dave Love <fx@gnu.org>
parents:
diff changeset
6679 Variables}). It accepts the same format specs that
Dave Love <fx@gnu.org>
parents:
diff changeset
6680 @code{gnus-summary-line-format} does (@pxref{Summary Buffer Lines}).
Dave Love <fx@gnu.org>
parents:
diff changeset
6681
Dave Love <fx@gnu.org>
parents:
diff changeset
6682
Dave Love <fx@gnu.org>
parents:
diff changeset
6683 @node Binary Groups
Dave Love <fx@gnu.org>
parents:
diff changeset
6684 @subsection Binary Groups
Dave Love <fx@gnu.org>
parents:
diff changeset
6685 @cindex binary groups
Dave Love <fx@gnu.org>
parents:
diff changeset
6686
Dave Love <fx@gnu.org>
parents:
diff changeset
6687 @findex gnus-binary-mode
Dave Love <fx@gnu.org>
parents:
diff changeset
6688 @kindex M-x gnus-binary-mode
Dave Love <fx@gnu.org>
parents:
diff changeset
6689 If you spend much time in binary groups, you may grow tired of hitting
Dave Love <fx@gnu.org>
parents:
diff changeset
6690 @kbd{X u}, @kbd{n}, @kbd{RET} all the time. @kbd{M-x gnus-binary-mode}
Dave Love <fx@gnu.org>
parents:
diff changeset
6691 is a minor mode for summary buffers that makes all ordinary Gnus article
Dave Love <fx@gnu.org>
parents:
diff changeset
6692 selection functions uudecode series of articles and display the result
Dave Love <fx@gnu.org>
parents:
diff changeset
6693 instead of just displaying the articles the normal way.
Dave Love <fx@gnu.org>
parents:
diff changeset
6694
Dave Love <fx@gnu.org>
parents:
diff changeset
6695 @kindex g (Binary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6696 @findex gnus-binary-show-article
Dave Love <fx@gnu.org>
parents:
diff changeset
6697 The only way, in fact, to see the actual articles is the @kbd{g}
Dave Love <fx@gnu.org>
parents:
diff changeset
6698 command, when you have turned on this mode
Dave Love <fx@gnu.org>
parents:
diff changeset
6699 (@code{gnus-binary-show-article}).
Dave Love <fx@gnu.org>
parents:
diff changeset
6700
Dave Love <fx@gnu.org>
parents:
diff changeset
6701 @vindex gnus-binary-mode-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
6702 @code{gnus-binary-mode-hook} is called in binary minor mode buffers.
Dave Love <fx@gnu.org>
parents:
diff changeset
6703
Dave Love <fx@gnu.org>
parents:
diff changeset
6704
Dave Love <fx@gnu.org>
parents:
diff changeset
6705 @node Tree Display
Dave Love <fx@gnu.org>
parents:
diff changeset
6706 @section Tree Display
Dave Love <fx@gnu.org>
parents:
diff changeset
6707 @cindex trees
Dave Love <fx@gnu.org>
parents:
diff changeset
6708
Dave Love <fx@gnu.org>
parents:
diff changeset
6709 @vindex gnus-use-trees
Dave Love <fx@gnu.org>
parents:
diff changeset
6710 If you don't like the normal Gnus summary display, you might try setting
Dave Love <fx@gnu.org>
parents:
diff changeset
6711 @code{gnus-use-trees} to @code{t}. This will create (by default) an
Dave Love <fx@gnu.org>
parents:
diff changeset
6712 additional @dfn{tree buffer}. You can execute all summary mode commands
Dave Love <fx@gnu.org>
parents:
diff changeset
6713 in the tree buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
6714
Dave Love <fx@gnu.org>
parents:
diff changeset
6715 There are a few variables to customize the tree display, of course:
Dave Love <fx@gnu.org>
parents:
diff changeset
6716
Dave Love <fx@gnu.org>
parents:
diff changeset
6717 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
6718 @item gnus-tree-mode-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
6719 @vindex gnus-tree-mode-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
6720 A hook called in all tree mode buffers.
Dave Love <fx@gnu.org>
parents:
diff changeset
6721
Dave Love <fx@gnu.org>
parents:
diff changeset
6722 @item gnus-tree-mode-line-format
Dave Love <fx@gnu.org>
parents:
diff changeset
6723 @vindex gnus-tree-mode-line-format
Dave Love <fx@gnu.org>
parents:
diff changeset
6724 A format string for the mode bar in the tree mode buffers (@pxref{Mode
Dave Love <fx@gnu.org>
parents:
diff changeset
6725 Line Formatting}). The default is @samp{Gnus: %%b %S %Z}. For a list
Dave Love <fx@gnu.org>
parents:
diff changeset
6726 of valid specs, @pxref{Summary Buffer Mode Line}.
Dave Love <fx@gnu.org>
parents:
diff changeset
6727
Dave Love <fx@gnu.org>
parents:
diff changeset
6728 @item gnus-selected-tree-face
Dave Love <fx@gnu.org>
parents:
diff changeset
6729 @vindex gnus-selected-tree-face
Dave Love <fx@gnu.org>
parents:
diff changeset
6730 Face used for highlighting the selected article in the tree buffer. The
Dave Love <fx@gnu.org>
parents:
diff changeset
6731 default is @code{modeline}.
Dave Love <fx@gnu.org>
parents:
diff changeset
6732
Dave Love <fx@gnu.org>
parents:
diff changeset
6733 @item gnus-tree-line-format
Dave Love <fx@gnu.org>
parents:
diff changeset
6734 @vindex gnus-tree-line-format
Dave Love <fx@gnu.org>
parents:
diff changeset
6735 A format string for the tree nodes. The name is a bit of a misnomer,
Dave Love <fx@gnu.org>
parents:
diff changeset
6736 though---it doesn't define a line, but just the node. The default value
Dave Love <fx@gnu.org>
parents:
diff changeset
6737 is @samp{%(%[%3,3n%]%)}, which displays the first three characters of
Dave Love <fx@gnu.org>
parents:
diff changeset
6738 the name of the poster. It is vital that all nodes are of the same
Dave Love <fx@gnu.org>
parents:
diff changeset
6739 length, so you @emph{must} use @samp{%4,4n}-like specifiers.
Dave Love <fx@gnu.org>
parents:
diff changeset
6740
Dave Love <fx@gnu.org>
parents:
diff changeset
6741 Valid specs are:
Dave Love <fx@gnu.org>
parents:
diff changeset
6742
Dave Love <fx@gnu.org>
parents:
diff changeset
6743 @table @samp
Dave Love <fx@gnu.org>
parents:
diff changeset
6744 @item n
Dave Love <fx@gnu.org>
parents:
diff changeset
6745 The name of the poster.
Dave Love <fx@gnu.org>
parents:
diff changeset
6746 @item f
Dave Love <fx@gnu.org>
parents:
diff changeset
6747 The @code{From} header.
Dave Love <fx@gnu.org>
parents:
diff changeset
6748 @item N
Dave Love <fx@gnu.org>
parents:
diff changeset
6749 The number of the article.
Dave Love <fx@gnu.org>
parents:
diff changeset
6750 @item [
Dave Love <fx@gnu.org>
parents:
diff changeset
6751 The opening bracket.
Dave Love <fx@gnu.org>
parents:
diff changeset
6752 @item ]
Dave Love <fx@gnu.org>
parents:
diff changeset
6753 The closing bracket.
Dave Love <fx@gnu.org>
parents:
diff changeset
6754 @item s
Dave Love <fx@gnu.org>
parents:
diff changeset
6755 The subject.
Dave Love <fx@gnu.org>
parents:
diff changeset
6756 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
6757
Dave Love <fx@gnu.org>
parents:
diff changeset
6758 @xref{Formatting Variables}.
Dave Love <fx@gnu.org>
parents:
diff changeset
6759
Dave Love <fx@gnu.org>
parents:
diff changeset
6760 Variables related to the display are:
Dave Love <fx@gnu.org>
parents:
diff changeset
6761
Dave Love <fx@gnu.org>
parents:
diff changeset
6762 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
6763 @item gnus-tree-brackets
Dave Love <fx@gnu.org>
parents:
diff changeset
6764 @vindex gnus-tree-brackets
Dave Love <fx@gnu.org>
parents:
diff changeset
6765 This is used for differentiating between ``real'' articles and
26290
df10644e22b5 Fix complaints from makeinfo 4.0.
Dave Love <fx@gnu.org>
parents: 25829
diff changeset
6766 ``sparse'' articles. The format is @code{((@var{real-open} . @var{real-close})
df10644e22b5 Fix complaints from makeinfo 4.0.
Dave Love <fx@gnu.org>
parents: 25829
diff changeset
6767 (@var{sparse-open} . @var{sparse-close}) (@var{dummy-open} . @var{dummy-close}))}, and the
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
6768 default is @code{((?[ . ?]) (?( . ?)) (?@{ . ?@}) (?< . ?>))}.
Dave Love <fx@gnu.org>
parents:
diff changeset
6769
Dave Love <fx@gnu.org>
parents:
diff changeset
6770 @item gnus-tree-parent-child-edges
Dave Love <fx@gnu.org>
parents:
diff changeset
6771 @vindex gnus-tree-parent-child-edges
Dave Love <fx@gnu.org>
parents:
diff changeset
6772 This is a list that contains the characters used for connecting parent
Dave Love <fx@gnu.org>
parents:
diff changeset
6773 nodes to their children. The default is @code{(?- ?\\ ?|)}.
Dave Love <fx@gnu.org>
parents:
diff changeset
6774
Dave Love <fx@gnu.org>
parents:
diff changeset
6775 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
6776
Dave Love <fx@gnu.org>
parents:
diff changeset
6777 @item gnus-tree-minimize-window
Dave Love <fx@gnu.org>
parents:
diff changeset
6778 @vindex gnus-tree-minimize-window
Dave Love <fx@gnu.org>
parents:
diff changeset
6779 If this variable is non-@code{nil}, Gnus will try to keep the tree
Dave Love <fx@gnu.org>
parents:
diff changeset
6780 buffer as small as possible to allow more room for the other Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
6781 windows. If this variable is a number, the tree buffer will never be
Dave Love <fx@gnu.org>
parents:
diff changeset
6782 higher than that number. The default is @code{t}. Note that if you
Dave Love <fx@gnu.org>
parents:
diff changeset
6783 have several windows displayed side-by-side in a frame and the tree
Dave Love <fx@gnu.org>
parents:
diff changeset
6784 buffer is one of these, minimizing the tree window will also resize all
Dave Love <fx@gnu.org>
parents:
diff changeset
6785 other windows displayed next to it.
Dave Love <fx@gnu.org>
parents:
diff changeset
6786
Dave Love <fx@gnu.org>
parents:
diff changeset
6787 @item gnus-generate-tree-function
Dave Love <fx@gnu.org>
parents:
diff changeset
6788 @vindex gnus-generate-tree-function
Dave Love <fx@gnu.org>
parents:
diff changeset
6789 @findex gnus-generate-horizontal-tree
Dave Love <fx@gnu.org>
parents:
diff changeset
6790 @findex gnus-generate-vertical-tree
Dave Love <fx@gnu.org>
parents:
diff changeset
6791 The function that actually generates the thread tree. Two predefined
Dave Love <fx@gnu.org>
parents:
diff changeset
6792 functions are available: @code{gnus-generate-horizontal-tree} and
Dave Love <fx@gnu.org>
parents:
diff changeset
6793 @code{gnus-generate-vertical-tree} (which is the default).
Dave Love <fx@gnu.org>
parents:
diff changeset
6794
Dave Love <fx@gnu.org>
parents:
diff changeset
6795 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
6796
Dave Love <fx@gnu.org>
parents:
diff changeset
6797 Here's an example from a horizontal tree buffer:
Dave Love <fx@gnu.org>
parents:
diff changeset
6798
Dave Love <fx@gnu.org>
parents:
diff changeset
6799 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
6800 @{***@}-(***)-[odd]-[Gun]
Dave Love <fx@gnu.org>
parents:
diff changeset
6801 | \[Jan]
Dave Love <fx@gnu.org>
parents:
diff changeset
6802 | \[odd]-[Eri]
Dave Love <fx@gnu.org>
parents:
diff changeset
6803 | \(***)-[Eri]
Dave Love <fx@gnu.org>
parents:
diff changeset
6804 | \[odd]-[Paa]
Dave Love <fx@gnu.org>
parents:
diff changeset
6805 \[Bjo]
Dave Love <fx@gnu.org>
parents:
diff changeset
6806 \[Gun]
Dave Love <fx@gnu.org>
parents:
diff changeset
6807 \[Gun]-[Jor]
Dave Love <fx@gnu.org>
parents:
diff changeset
6808 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
6809
Dave Love <fx@gnu.org>
parents:
diff changeset
6810 Here's the same thread displayed in a vertical tree buffer:
Dave Love <fx@gnu.org>
parents:
diff changeset
6811
Dave Love <fx@gnu.org>
parents:
diff changeset
6812 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
6813 @{***@}
Dave Love <fx@gnu.org>
parents:
diff changeset
6814 |--------------------------\-----\-----\
Dave Love <fx@gnu.org>
parents:
diff changeset
6815 (***) [Bjo] [Gun] [Gun]
Dave Love <fx@gnu.org>
parents:
diff changeset
6816 |--\-----\-----\ |
Dave Love <fx@gnu.org>
parents:
diff changeset
6817 [odd] [Jan] [odd] (***) [Jor]
Dave Love <fx@gnu.org>
parents:
diff changeset
6818 | | |--\
Dave Love <fx@gnu.org>
parents:
diff changeset
6819 [Gun] [Eri] [Eri] [odd]
Dave Love <fx@gnu.org>
parents:
diff changeset
6820 |
Dave Love <fx@gnu.org>
parents:
diff changeset
6821 [Paa]
Dave Love <fx@gnu.org>
parents:
diff changeset
6822 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
6823
Dave Love <fx@gnu.org>
parents:
diff changeset
6824 If you're using horizontal trees, it might be nice to display the trees
Dave Love <fx@gnu.org>
parents:
diff changeset
6825 side-by-side with the summary buffer. You could add something like the
Dave Love <fx@gnu.org>
parents:
diff changeset
6826 following to your @file{.gnus.el} file:
Dave Love <fx@gnu.org>
parents:
diff changeset
6827
Dave Love <fx@gnu.org>
parents:
diff changeset
6828 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
6829 (setq gnus-use-trees t
Dave Love <fx@gnu.org>
parents:
diff changeset
6830 gnus-generate-tree-function 'gnus-generate-horizontal-tree
Dave Love <fx@gnu.org>
parents:
diff changeset
6831 gnus-tree-minimize-window nil)
Dave Love <fx@gnu.org>
parents:
diff changeset
6832 (gnus-add-configuration
Dave Love <fx@gnu.org>
parents:
diff changeset
6833 '(article
Dave Love <fx@gnu.org>
parents:
diff changeset
6834 (vertical 1.0
Dave Love <fx@gnu.org>
parents:
diff changeset
6835 (horizontal 0.25
Dave Love <fx@gnu.org>
parents:
diff changeset
6836 (summary 0.75 point)
Dave Love <fx@gnu.org>
parents:
diff changeset
6837 (tree 1.0))
Dave Love <fx@gnu.org>
parents:
diff changeset
6838 (article 1.0))))
Dave Love <fx@gnu.org>
parents:
diff changeset
6839 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
6840
Dave Love <fx@gnu.org>
parents:
diff changeset
6841 @xref{Windows Configuration}.
Dave Love <fx@gnu.org>
parents:
diff changeset
6842
Dave Love <fx@gnu.org>
parents:
diff changeset
6843
Dave Love <fx@gnu.org>
parents:
diff changeset
6844 @node Mail Group Commands
Dave Love <fx@gnu.org>
parents:
diff changeset
6845 @section Mail Group Commands
Dave Love <fx@gnu.org>
parents:
diff changeset
6846 @cindex mail group commands
Dave Love <fx@gnu.org>
parents:
diff changeset
6847
Dave Love <fx@gnu.org>
parents:
diff changeset
6848 Some commands only make sense in mail groups. If these commands are
Dave Love <fx@gnu.org>
parents:
diff changeset
6849 invalid in the current group, they will raise a hell and let you know.
Dave Love <fx@gnu.org>
parents:
diff changeset
6850
Dave Love <fx@gnu.org>
parents:
diff changeset
6851 All these commands (except the expiry and edit commands) use the
Dave Love <fx@gnu.org>
parents:
diff changeset
6852 process/prefix convention (@pxref{Process/Prefix}).
Dave Love <fx@gnu.org>
parents:
diff changeset
6853
Dave Love <fx@gnu.org>
parents:
diff changeset
6854 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
6855
Dave Love <fx@gnu.org>
parents:
diff changeset
6856 @item B e
Dave Love <fx@gnu.org>
parents:
diff changeset
6857 @kindex B e (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6858 @findex gnus-summary-expire-articles
Dave Love <fx@gnu.org>
parents:
diff changeset
6859 Expire all expirable articles in the group
Dave Love <fx@gnu.org>
parents:
diff changeset
6860 (@code{gnus-summary-expire-articles}).
Dave Love <fx@gnu.org>
parents:
diff changeset
6861
Dave Love <fx@gnu.org>
parents:
diff changeset
6862 @item B M-C-e
Dave Love <fx@gnu.org>
parents:
diff changeset
6863 @kindex B M-C-e (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6864 @findex gnus-summary-expire-articles-now
Dave Love <fx@gnu.org>
parents:
diff changeset
6865 Delete all the expirable articles in the group
Dave Love <fx@gnu.org>
parents:
diff changeset
6866 (@code{gnus-summary-expire-articles-now}). This means that @strong{all}
Dave Love <fx@gnu.org>
parents:
diff changeset
6867 articles eligible for expiry in the current group will
Dave Love <fx@gnu.org>
parents:
diff changeset
6868 disappear forever into that big @file{/dev/null} in the sky.
Dave Love <fx@gnu.org>
parents:
diff changeset
6869
Dave Love <fx@gnu.org>
parents:
diff changeset
6870 @item B DEL
Dave Love <fx@gnu.org>
parents:
diff changeset
6871 @kindex B DEL (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6872 @findex gnus-summary-delete-article
Dave Love <fx@gnu.org>
parents:
diff changeset
6873 @c @icon{gnus-summary-mail-delete}
Dave Love <fx@gnu.org>
parents:
diff changeset
6874 Delete the mail article. This is ``delete'' as in ``delete it from your
Dave Love <fx@gnu.org>
parents:
diff changeset
6875 disk forever and ever, never to return again.'' Use with caution.
Dave Love <fx@gnu.org>
parents:
diff changeset
6876 (@code{gnus-summary-delete-article}).
Dave Love <fx@gnu.org>
parents:
diff changeset
6877
Dave Love <fx@gnu.org>
parents:
diff changeset
6878 @item B m
Dave Love <fx@gnu.org>
parents:
diff changeset
6879 @kindex B m (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6880 @cindex move mail
Dave Love <fx@gnu.org>
parents:
diff changeset
6881 @findex gnus-summary-move-article
Dave Love <fx@gnu.org>
parents:
diff changeset
6882 Move the article from one mail group to another
Dave Love <fx@gnu.org>
parents:
diff changeset
6883 (@code{gnus-summary-move-article}).
Dave Love <fx@gnu.org>
parents:
diff changeset
6884
Dave Love <fx@gnu.org>
parents:
diff changeset
6885 @item B c
Dave Love <fx@gnu.org>
parents:
diff changeset
6886 @kindex B c (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6887 @cindex copy mail
Dave Love <fx@gnu.org>
parents:
diff changeset
6888 @findex gnus-summary-copy-article
Dave Love <fx@gnu.org>
parents:
diff changeset
6889 @c @icon{gnus-summary-mail-copy}
Dave Love <fx@gnu.org>
parents:
diff changeset
6890 Copy the article from one group (mail group or not) to a mail group
Dave Love <fx@gnu.org>
parents:
diff changeset
6891 (@code{gnus-summary-copy-article}).
Dave Love <fx@gnu.org>
parents:
diff changeset
6892
Dave Love <fx@gnu.org>
parents:
diff changeset
6893 @item B B
Dave Love <fx@gnu.org>
parents:
diff changeset
6894 @kindex B B (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6895 @cindex crosspost mail
Dave Love <fx@gnu.org>
parents:
diff changeset
6896 @findex gnus-summary-crosspost-article
Dave Love <fx@gnu.org>
parents:
diff changeset
6897 Crosspost the current article to some other group
Dave Love <fx@gnu.org>
parents:
diff changeset
6898 (@code{gnus-summary-crosspost-article}). This will create a new copy of
Dave Love <fx@gnu.org>
parents:
diff changeset
6899 the article in the other group, and the Xref headers of the article will
Dave Love <fx@gnu.org>
parents:
diff changeset
6900 be properly updated.
Dave Love <fx@gnu.org>
parents:
diff changeset
6901
Dave Love <fx@gnu.org>
parents:
diff changeset
6902 @item B i
Dave Love <fx@gnu.org>
parents:
diff changeset
6903 @kindex B i (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6904 @findex gnus-summary-import-article
Dave Love <fx@gnu.org>
parents:
diff changeset
6905 Import an arbitrary file into the current mail newsgroup
Dave Love <fx@gnu.org>
parents:
diff changeset
6906 (@code{gnus-summary-import-article}). You will be prompted for a file
Dave Love <fx@gnu.org>
parents:
diff changeset
6907 name, a @code{From} header and a @code{Subject} header.
Dave Love <fx@gnu.org>
parents:
diff changeset
6908
Dave Love <fx@gnu.org>
parents:
diff changeset
6909 @item B r
Dave Love <fx@gnu.org>
parents:
diff changeset
6910 @kindex B r (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6911 @findex gnus-summary-respool-article
Dave Love <fx@gnu.org>
parents:
diff changeset
6912 Respool the mail article (@code{gnus-summary-respool-article}).
Dave Love <fx@gnu.org>
parents:
diff changeset
6913 @code{gnus-summary-respool-default-method} will be used as the default
Dave Love <fx@gnu.org>
parents:
diff changeset
6914 select method when respooling. This variable is @code{nil} by default,
Dave Love <fx@gnu.org>
parents:
diff changeset
6915 which means that the current group select method will be used instead.
Dave Love <fx@gnu.org>
parents:
diff changeset
6916
Dave Love <fx@gnu.org>
parents:
diff changeset
6917 @item B w
Dave Love <fx@gnu.org>
parents:
diff changeset
6918 @itemx e
Dave Love <fx@gnu.org>
parents:
diff changeset
6919 @kindex B w (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6920 @kindex e (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6921 @findex gnus-summary-edit-article
Dave Love <fx@gnu.org>
parents:
diff changeset
6922 @kindex C-c C-c (Article)
Dave Love <fx@gnu.org>
parents:
diff changeset
6923 Edit the current article (@code{gnus-summary-edit-article}). To finish
Dave Love <fx@gnu.org>
parents:
diff changeset
6924 editing and make the changes permanent, type @kbd{C-c C-c}
Dave Love <fx@gnu.org>
parents:
diff changeset
6925 (@kbd{gnus-summary-edit-article-done}). If you give a prefix to the
Dave Love <fx@gnu.org>
parents:
diff changeset
6926 @kbd{C-c C-c} command, Gnus won't re-highlight the article.
Dave Love <fx@gnu.org>
parents:
diff changeset
6927
Dave Love <fx@gnu.org>
parents:
diff changeset
6928 @item B q
Dave Love <fx@gnu.org>
parents:
diff changeset
6929 @kindex B q (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6930 @findex gnus-summary-respool-query
Dave Love <fx@gnu.org>
parents:
diff changeset
6931 If you want to re-spool an article, you might be curious as to what group
Dave Love <fx@gnu.org>
parents:
diff changeset
6932 the article will end up in before you do the re-spooling. This command
Dave Love <fx@gnu.org>
parents:
diff changeset
6933 will tell you (@code{gnus-summary-respool-query}).
Dave Love <fx@gnu.org>
parents:
diff changeset
6934
Dave Love <fx@gnu.org>
parents:
diff changeset
6935 @item B t
Dave Love <fx@gnu.org>
parents:
diff changeset
6936 @kindex B t (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6937 @findex gnus-summary-respool-trace
Dave Love <fx@gnu.org>
parents:
diff changeset
6938 Similarly, this command will display all fancy splitting patterns used
Dave Love <fx@gnu.org>
parents:
diff changeset
6939 when repooling, if any (@code{gnus-summary-respool-trace}).
Dave Love <fx@gnu.org>
parents:
diff changeset
6940
Dave Love <fx@gnu.org>
parents:
diff changeset
6941 @item B p
Dave Love <fx@gnu.org>
parents:
diff changeset
6942 @kindex B p (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
6943 @findex gnus-summary-article-posted-p
Dave Love <fx@gnu.org>
parents:
diff changeset
6944 Some people have a tendency to send you "courtesy" copies when they
Dave Love <fx@gnu.org>
parents:
diff changeset
6945 follow up to articles you have posted. These usually have a
Dave Love <fx@gnu.org>
parents:
diff changeset
6946 @code{Newsgroups} header in them, but not always. This command
Dave Love <fx@gnu.org>
parents:
diff changeset
6947 (@code{gnus-summary-article-posted-p}) will try to fetch the current
Dave Love <fx@gnu.org>
parents:
diff changeset
6948 article from your news server (or rather, from
Dave Love <fx@gnu.org>
parents:
diff changeset
6949 @code{gnus-refer-article-method} or @code{gnus-select-method}) and will
Dave Love <fx@gnu.org>
parents:
diff changeset
6950 report back whether it found the article or not. Even if it says that
Dave Love <fx@gnu.org>
parents:
diff changeset
6951 it didn't find the article, it may have been posted anyway---mail
Dave Love <fx@gnu.org>
parents:
diff changeset
6952 propagation is much faster than news propagation, and the news copy may
Dave Love <fx@gnu.org>
parents:
diff changeset
6953 just not have arrived yet.
Dave Love <fx@gnu.org>
parents:
diff changeset
6954
Dave Love <fx@gnu.org>
parents:
diff changeset
6955 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
6956
Dave Love <fx@gnu.org>
parents:
diff changeset
6957 @vindex gnus-move-split-methods
Dave Love <fx@gnu.org>
parents:
diff changeset
6958 @cindex moving articles
Dave Love <fx@gnu.org>
parents:
diff changeset
6959 If you move (or copy) articles regularly, you might wish to have Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
6960 suggest where to put the articles. @code{gnus-move-split-methods} is a
Dave Love <fx@gnu.org>
parents:
diff changeset
6961 variable that uses the same syntax as @code{gnus-split-methods}
Dave Love <fx@gnu.org>
parents:
diff changeset
6962 (@pxref{Saving Articles}). You may customize that variable to create
Dave Love <fx@gnu.org>
parents:
diff changeset
6963 suggestions you find reasonable.
Dave Love <fx@gnu.org>
parents:
diff changeset
6964
Dave Love <fx@gnu.org>
parents:
diff changeset
6965 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
6966 (setq gnus-move-split-methods
Dave Love <fx@gnu.org>
parents:
diff changeset
6967 '(("^From:.*Lars Magne" "nnml:junk")
Dave Love <fx@gnu.org>
parents:
diff changeset
6968 ("^Subject:.*gnus" "nnfolder:important")
Dave Love <fx@gnu.org>
parents:
diff changeset
6969 (".*" "nnml:misc")))
Dave Love <fx@gnu.org>
parents:
diff changeset
6970 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
6971
Dave Love <fx@gnu.org>
parents:
diff changeset
6972
Dave Love <fx@gnu.org>
parents:
diff changeset
6973 @node Various Summary Stuff
Dave Love <fx@gnu.org>
parents:
diff changeset
6974 @section Various Summary Stuff
Dave Love <fx@gnu.org>
parents:
diff changeset
6975
Dave Love <fx@gnu.org>
parents:
diff changeset
6976 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
6977 * Summary Group Information:: Information oriented commands.
Dave Love <fx@gnu.org>
parents:
diff changeset
6978 * Searching for Articles:: Multiple article commands.
Dave Love <fx@gnu.org>
parents:
diff changeset
6979 * Summary Generation Commands:: (Re)generating the summary buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
6980 * Really Various Summary Commands:: Those pesky non-conformant commands.
Dave Love <fx@gnu.org>
parents:
diff changeset
6981 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
6982
Dave Love <fx@gnu.org>
parents:
diff changeset
6983 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
6984 @vindex gnus-summary-mode-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
6985 @item gnus-summary-mode-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
6986 This hook is called when creating a summary mode buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
6987
Dave Love <fx@gnu.org>
parents:
diff changeset
6988 @vindex gnus-summary-generate-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
6989 @item gnus-summary-generate-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
6990 This is called as the last thing before doing the threading and the
Dave Love <fx@gnu.org>
parents:
diff changeset
6991 generation of the summary buffer. It's quite convenient for customizing
Dave Love <fx@gnu.org>
parents:
diff changeset
6992 the threading variables based on what data the newsgroup has. This hook
Dave Love <fx@gnu.org>
parents:
diff changeset
6993 is called from the summary buffer after most summary buffer variables
Dave Love <fx@gnu.org>
parents:
diff changeset
6994 have been set.
Dave Love <fx@gnu.org>
parents:
diff changeset
6995
Dave Love <fx@gnu.org>
parents:
diff changeset
6996 @vindex gnus-summary-prepare-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
6997 @item gnus-summary-prepare-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
6998 It is called after the summary buffer has been generated. You might use
Dave Love <fx@gnu.org>
parents:
diff changeset
6999 it to, for instance, highlight lines or modify the look of the buffer in
Dave Love <fx@gnu.org>
parents:
diff changeset
7000 some other ungodly manner. I don't care.
Dave Love <fx@gnu.org>
parents:
diff changeset
7001
Dave Love <fx@gnu.org>
parents:
diff changeset
7002 @vindex gnus-summary-ignore-duplicates
Dave Love <fx@gnu.org>
parents:
diff changeset
7003 @item gnus-summary-ignore-duplicates
Dave Love <fx@gnu.org>
parents:
diff changeset
7004 When Gnus discovers two articles that have the same @code{Message-ID},
Dave Love <fx@gnu.org>
parents:
diff changeset
7005 it has to do something drastic. No articles are allowed to have the
Dave Love <fx@gnu.org>
parents:
diff changeset
7006 same @code{Message-ID}, but this may happen when reading mail from some
Dave Love <fx@gnu.org>
parents:
diff changeset
7007 sources. Gnus allows you to customize what happens with this variable.
Dave Love <fx@gnu.org>
parents:
diff changeset
7008 If it is @code{nil} (which is the default), Gnus will rename the
Dave Love <fx@gnu.org>
parents:
diff changeset
7009 @code{Message-ID} (for display purposes only) and display the article as
Dave Love <fx@gnu.org>
parents:
diff changeset
7010 any other article. If this variable is @code{t}, it won't display the
Dave Love <fx@gnu.org>
parents:
diff changeset
7011 article---it'll be as if it never existed.
Dave Love <fx@gnu.org>
parents:
diff changeset
7012
Dave Love <fx@gnu.org>
parents:
diff changeset
7013 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
7014
Dave Love <fx@gnu.org>
parents:
diff changeset
7015
Dave Love <fx@gnu.org>
parents:
diff changeset
7016 @node Summary Group Information
Dave Love <fx@gnu.org>
parents:
diff changeset
7017 @subsection Summary Group Information
Dave Love <fx@gnu.org>
parents:
diff changeset
7018
Dave Love <fx@gnu.org>
parents:
diff changeset
7019 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
7020
Dave Love <fx@gnu.org>
parents:
diff changeset
7021 @item H f
Dave Love <fx@gnu.org>
parents:
diff changeset
7022 @kindex H f (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
7023 @findex gnus-summary-fetch-faq
Dave Love <fx@gnu.org>
parents:
diff changeset
7024 @vindex gnus-group-faq-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
7025 Try to fetch the FAQ (list of frequently asked questions) for the
Dave Love <fx@gnu.org>
parents:
diff changeset
7026 current group (@code{gnus-summary-fetch-faq}). Gnus will try to get the
Dave Love <fx@gnu.org>
parents:
diff changeset
7027 FAQ from @code{gnus-group-faq-directory}, which is usually a directory
Dave Love <fx@gnu.org>
parents:
diff changeset
7028 on a remote machine. This variable can also be a list of directories.
Dave Love <fx@gnu.org>
parents:
diff changeset
7029 In that case, giving a prefix to this command will allow you to choose
Dave Love <fx@gnu.org>
parents:
diff changeset
7030 between the various sites. @code{ange-ftp} or @code{efs} will probably
Dave Love <fx@gnu.org>
parents:
diff changeset
7031 be used for fetching the file.
Dave Love <fx@gnu.org>
parents:
diff changeset
7032
Dave Love <fx@gnu.org>
parents:
diff changeset
7033 @item H d
Dave Love <fx@gnu.org>
parents:
diff changeset
7034 @kindex H d (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
7035 @findex gnus-summary-describe-group
Dave Love <fx@gnu.org>
parents:
diff changeset
7036 Give a brief description of the current group
Dave Love <fx@gnu.org>
parents:
diff changeset
7037 (@code{gnus-summary-describe-group}). If given a prefix, force
Dave Love <fx@gnu.org>
parents:
diff changeset
7038 rereading the description from the server.
Dave Love <fx@gnu.org>
parents:
diff changeset
7039
Dave Love <fx@gnu.org>
parents:
diff changeset
7040 @item H h
Dave Love <fx@gnu.org>
parents:
diff changeset
7041 @kindex H h (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
7042 @findex gnus-summary-describe-briefly
Dave Love <fx@gnu.org>
parents:
diff changeset
7043 Give an extremely brief description of the most important summary
Dave Love <fx@gnu.org>
parents:
diff changeset
7044 keystrokes (@code{gnus-summary-describe-briefly}).
Dave Love <fx@gnu.org>
parents:
diff changeset
7045
Dave Love <fx@gnu.org>
parents:
diff changeset
7046 @item H i
Dave Love <fx@gnu.org>
parents:
diff changeset
7047 @kindex H i (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
7048 @findex gnus-info-find-node
Dave Love <fx@gnu.org>
parents:
diff changeset
7049 Go to the Gnus info node (@code{gnus-info-find-node}).
Dave Love <fx@gnu.org>
parents:
diff changeset
7050 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
7051
Dave Love <fx@gnu.org>
parents:
diff changeset
7052
Dave Love <fx@gnu.org>
parents:
diff changeset
7053 @node Searching for Articles
Dave Love <fx@gnu.org>
parents:
diff changeset
7054 @subsection Searching for Articles
Dave Love <fx@gnu.org>
parents:
diff changeset
7055
Dave Love <fx@gnu.org>
parents:
diff changeset
7056 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
7057
Dave Love <fx@gnu.org>
parents:
diff changeset
7058 @item M-s
Dave Love <fx@gnu.org>
parents:
diff changeset
7059 @kindex M-s (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
7060 @findex gnus-summary-search-article-forward
Dave Love <fx@gnu.org>
parents:
diff changeset
7061 Search through all subsequent articles for a regexp
Dave Love <fx@gnu.org>
parents:
diff changeset
7062 (@code{gnus-summary-search-article-forward}).
Dave Love <fx@gnu.org>
parents:
diff changeset
7063
Dave Love <fx@gnu.org>
parents:
diff changeset
7064 @item M-r
Dave Love <fx@gnu.org>
parents:
diff changeset
7065 @kindex M-r (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
7066 @findex gnus-summary-search-article-backward
Dave Love <fx@gnu.org>
parents:
diff changeset
7067 Search through all previous articles for a regexp
Dave Love <fx@gnu.org>
parents:
diff changeset
7068 (@code{gnus-summary-search-article-backward}).
Dave Love <fx@gnu.org>
parents:
diff changeset
7069
Dave Love <fx@gnu.org>
parents:
diff changeset
7070 @item &
Dave Love <fx@gnu.org>
parents:
diff changeset
7071 @kindex & (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
7072 @findex gnus-summary-execute-command
Dave Love <fx@gnu.org>
parents:
diff changeset
7073 This command will prompt you for a header field, a regular expression to
Dave Love <fx@gnu.org>
parents:
diff changeset
7074 match on this field, and a command to be executed if the match is made
Dave Love <fx@gnu.org>
parents:
diff changeset
7075 (@code{gnus-summary-execute-command}). If given a prefix, search
Dave Love <fx@gnu.org>
parents:
diff changeset
7076 backward instead.
Dave Love <fx@gnu.org>
parents:
diff changeset
7077
Dave Love <fx@gnu.org>
parents:
diff changeset
7078 @item M-&
Dave Love <fx@gnu.org>
parents:
diff changeset
7079 @kindex M-& (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
7080 @findex gnus-summary-universal-argument
Dave Love <fx@gnu.org>
parents:
diff changeset
7081 Perform any operation on all articles that have been marked with
Dave Love <fx@gnu.org>
parents:
diff changeset
7082 the process mark (@code{gnus-summary-universal-argument}).
Dave Love <fx@gnu.org>
parents:
diff changeset
7083 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
7084
Dave Love <fx@gnu.org>
parents:
diff changeset
7085 @node Summary Generation Commands
Dave Love <fx@gnu.org>
parents:
diff changeset
7086 @subsection Summary Generation Commands
Dave Love <fx@gnu.org>
parents:
diff changeset
7087
Dave Love <fx@gnu.org>
parents:
diff changeset
7088 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
7089
Dave Love <fx@gnu.org>
parents:
diff changeset
7090 @item Y g
Dave Love <fx@gnu.org>
parents:
diff changeset
7091 @kindex Y g (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
7092 @findex gnus-summary-prepare
Dave Love <fx@gnu.org>
parents:
diff changeset
7093 Regenerate the current summary buffer (@code{gnus-summary-prepare}).
Dave Love <fx@gnu.org>
parents:
diff changeset
7094
Dave Love <fx@gnu.org>
parents:
diff changeset
7095 @item Y c
Dave Love <fx@gnu.org>
parents:
diff changeset
7096 @kindex Y c (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
7097 @findex gnus-summary-insert-cached-articles
Dave Love <fx@gnu.org>
parents:
diff changeset
7098 Pull all cached articles (for the current group) into the summary buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
7099 (@code{gnus-summary-insert-cached-articles}).
Dave Love <fx@gnu.org>
parents:
diff changeset
7100
Dave Love <fx@gnu.org>
parents:
diff changeset
7101 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
7102
Dave Love <fx@gnu.org>
parents:
diff changeset
7103
Dave Love <fx@gnu.org>
parents:
diff changeset
7104 @node Really Various Summary Commands
Dave Love <fx@gnu.org>
parents:
diff changeset
7105 @subsection Really Various Summary Commands
Dave Love <fx@gnu.org>
parents:
diff changeset
7106
Dave Love <fx@gnu.org>
parents:
diff changeset
7107 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
7108
Dave Love <fx@gnu.org>
parents:
diff changeset
7109 @item C-d
Dave Love <fx@gnu.org>
parents:
diff changeset
7110 @kindex C-d (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
7111 @findex gnus-summary-enter-digest-group
Dave Love <fx@gnu.org>
parents:
diff changeset
7112 If the current article is a collection of other articles (for instance,
Dave Love <fx@gnu.org>
parents:
diff changeset
7113 a digest), you might use this command to enter a group based on the that
Dave Love <fx@gnu.org>
parents:
diff changeset
7114 article (@code{gnus-summary-enter-digest-group}). Gnus will try to
Dave Love <fx@gnu.org>
parents:
diff changeset
7115 guess what article type is currently displayed unless you give a prefix
Dave Love <fx@gnu.org>
parents:
diff changeset
7116 to this command, which forces a ``digest'' interpretation. Basically,
Dave Love <fx@gnu.org>
parents:
diff changeset
7117 whenever you see a message that is a collection of other messages of
Dave Love <fx@gnu.org>
parents:
diff changeset
7118 some format, you @kbd{C-d} and read these messages in a more convenient
Dave Love <fx@gnu.org>
parents:
diff changeset
7119 fashion.
Dave Love <fx@gnu.org>
parents:
diff changeset
7120
Dave Love <fx@gnu.org>
parents:
diff changeset
7121 @item M-C-d
Dave Love <fx@gnu.org>
parents:
diff changeset
7122 @kindex M-C-d (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
7123 @findex gnus-summary-read-document
Dave Love <fx@gnu.org>
parents:
diff changeset
7124 This command is very similar to the one above, but lets you gather
Dave Love <fx@gnu.org>
parents:
diff changeset
7125 several documents into one biiig group
Dave Love <fx@gnu.org>
parents:
diff changeset
7126 (@code{gnus-summary-read-document}). It does this by opening several
Dave Love <fx@gnu.org>
parents:
diff changeset
7127 @code{nndoc} groups for each document, and then opening an
Dave Love <fx@gnu.org>
parents:
diff changeset
7128 @code{nnvirtual} group on top of these @code{nndoc} groups. This
Dave Love <fx@gnu.org>
parents:
diff changeset
7129 command understands the process/prefix convention
Dave Love <fx@gnu.org>
parents:
diff changeset
7130 (@pxref{Process/Prefix}).
Dave Love <fx@gnu.org>
parents:
diff changeset
7131
Dave Love <fx@gnu.org>
parents:
diff changeset
7132 @item C-t
Dave Love <fx@gnu.org>
parents:
diff changeset
7133 @kindex C-t (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
7134 @findex gnus-summary-toggle-truncation
Dave Love <fx@gnu.org>
parents:
diff changeset
7135 Toggle truncation of summary lines
Dave Love <fx@gnu.org>
parents:
diff changeset
7136 (@code{gnus-summary-toggle-truncation}). This will probably confuse the
Dave Love <fx@gnu.org>
parents:
diff changeset
7137 line centering function in the summary buffer, so it's not a good idea
Dave Love <fx@gnu.org>
parents:
diff changeset
7138 to have truncation switched off while reading articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
7139
Dave Love <fx@gnu.org>
parents:
diff changeset
7140 @item =
Dave Love <fx@gnu.org>
parents:
diff changeset
7141 @kindex = (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
7142 @findex gnus-summary-expand-window
Dave Love <fx@gnu.org>
parents:
diff changeset
7143 Expand the summary buffer window (@code{gnus-summary-expand-window}).
Dave Love <fx@gnu.org>
parents:
diff changeset
7144 If given a prefix, force an @code{article} window configuration.
Dave Love <fx@gnu.org>
parents:
diff changeset
7145
Dave Love <fx@gnu.org>
parents:
diff changeset
7146 @item M-C-e
Dave Love <fx@gnu.org>
parents:
diff changeset
7147 @kindex M-C-e (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
7148 @findex gnus-summary-edit-parameters
Dave Love <fx@gnu.org>
parents:
diff changeset
7149 Edit the group parameters (@pxref{Group Parameters}) of the current
Dave Love <fx@gnu.org>
parents:
diff changeset
7150 group (@code{gnus-summary-edit-parameters}).
Dave Love <fx@gnu.org>
parents:
diff changeset
7151
Dave Love <fx@gnu.org>
parents:
diff changeset
7152 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
7153
Dave Love <fx@gnu.org>
parents:
diff changeset
7154
Dave Love <fx@gnu.org>
parents:
diff changeset
7155 @node Exiting the Summary Buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
7156 @section Exiting the Summary Buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
7157 @cindex summary exit
Dave Love <fx@gnu.org>
parents:
diff changeset
7158 @cindex exiting groups
Dave Love <fx@gnu.org>
parents:
diff changeset
7159
Dave Love <fx@gnu.org>
parents:
diff changeset
7160 Exiting from the summary buffer will normally update all info on the
Dave Love <fx@gnu.org>
parents:
diff changeset
7161 group and return you to the group buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
7162
Dave Love <fx@gnu.org>
parents:
diff changeset
7163 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
7164
Dave Love <fx@gnu.org>
parents:
diff changeset
7165 @item Z Z
Dave Love <fx@gnu.org>
parents:
diff changeset
7166 @itemx q
Dave Love <fx@gnu.org>
parents:
diff changeset
7167 @kindex Z Z (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
7168 @kindex q (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
7169 @findex gnus-summary-exit
Dave Love <fx@gnu.org>
parents:
diff changeset
7170 @vindex gnus-summary-exit-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
7171 @vindex gnus-summary-prepare-exit-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
7172 @c @icon{gnus-summary-exit}
Dave Love <fx@gnu.org>
parents:
diff changeset
7173 Exit the current group and update all information on the group
Dave Love <fx@gnu.org>
parents:
diff changeset
7174 (@code{gnus-summary-exit}). @code{gnus-summary-prepare-exit-hook} is
Dave Love <fx@gnu.org>
parents:
diff changeset
7175 called before doing much of the exiting, which calls
Dave Love <fx@gnu.org>
parents:
diff changeset
7176 @code{gnus-summary-expire-articles} by default.
Dave Love <fx@gnu.org>
parents:
diff changeset
7177 @code{gnus-summary-exit-hook} is called after finishing the exit
Dave Love <fx@gnu.org>
parents:
diff changeset
7178 process. @code{gnus-group-no-more-groups-hook} is run when returning to
Dave Love <fx@gnu.org>
parents:
diff changeset
7179 group mode having no more (unread) groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
7180
Dave Love <fx@gnu.org>
parents:
diff changeset
7181 @item Z E
Dave Love <fx@gnu.org>
parents:
diff changeset
7182 @itemx Q
Dave Love <fx@gnu.org>
parents:
diff changeset
7183 @kindex Z E (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
7184 @kindex Q (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
7185 @findex gnus-summary-exit-no-update
Dave Love <fx@gnu.org>
parents:
diff changeset
7186 Exit the current group without updating any information on the group
Dave Love <fx@gnu.org>
parents:
diff changeset
7187 (@code{gnus-summary-exit-no-update}).
Dave Love <fx@gnu.org>
parents:
diff changeset
7188
Dave Love <fx@gnu.org>
parents:
diff changeset
7189 @item Z c
Dave Love <fx@gnu.org>
parents:
diff changeset
7190 @itemx c
Dave Love <fx@gnu.org>
parents:
diff changeset
7191 @kindex Z c (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
7192 @kindex c (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
7193 @findex gnus-summary-catchup-and-exit
Dave Love <fx@gnu.org>
parents:
diff changeset
7194 @c @icon{gnus-summary-catchup-and-exit}
Dave Love <fx@gnu.org>
parents:
diff changeset
7195 Mark all unticked articles in the group as read and then exit
Dave Love <fx@gnu.org>
parents:
diff changeset
7196 (@code{gnus-summary-catchup-and-exit}).
Dave Love <fx@gnu.org>
parents:
diff changeset
7197
Dave Love <fx@gnu.org>
parents:
diff changeset
7198 @item Z C
Dave Love <fx@gnu.org>
parents:
diff changeset
7199 @kindex Z C (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
7200 @findex gnus-summary-catchup-all-and-exit
Dave Love <fx@gnu.org>
parents:
diff changeset
7201 Mark all articles, even the ticked ones, as read and then exit
Dave Love <fx@gnu.org>
parents:
diff changeset
7202 (@code{gnus-summary-catchup-all-and-exit}).
Dave Love <fx@gnu.org>
parents:
diff changeset
7203
Dave Love <fx@gnu.org>
parents:
diff changeset
7204 @item Z n
Dave Love <fx@gnu.org>
parents:
diff changeset
7205 @kindex Z n (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
7206 @findex gnus-summary-catchup-and-goto-next-group
Dave Love <fx@gnu.org>
parents:
diff changeset
7207 Mark all articles as read and go to the next group
Dave Love <fx@gnu.org>
parents:
diff changeset
7208 (@code{gnus-summary-catchup-and-goto-next-group}).
Dave Love <fx@gnu.org>
parents:
diff changeset
7209
Dave Love <fx@gnu.org>
parents:
diff changeset
7210 @item Z R
Dave Love <fx@gnu.org>
parents:
diff changeset
7211 @kindex Z R (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
7212 @findex gnus-summary-reselect-current-group
Dave Love <fx@gnu.org>
parents:
diff changeset
7213 Exit this group, and then enter it again
Dave Love <fx@gnu.org>
parents:
diff changeset
7214 (@code{gnus-summary-reselect-current-group}). If given a prefix, select
Dave Love <fx@gnu.org>
parents:
diff changeset
7215 all articles, both read and unread.
Dave Love <fx@gnu.org>
parents:
diff changeset
7216
Dave Love <fx@gnu.org>
parents:
diff changeset
7217 @item Z G
Dave Love <fx@gnu.org>
parents:
diff changeset
7218 @itemx M-g
Dave Love <fx@gnu.org>
parents:
diff changeset
7219 @kindex Z G (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
7220 @kindex M-g (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
7221 @findex gnus-summary-rescan-group
Dave Love <fx@gnu.org>
parents:
diff changeset
7222 @c @icon{gnus-summary-mail-get}
Dave Love <fx@gnu.org>
parents:
diff changeset
7223 Exit the group, check for new articles in the group, and select the
Dave Love <fx@gnu.org>
parents:
diff changeset
7224 group (@code{gnus-summary-rescan-group}). If given a prefix, select all
Dave Love <fx@gnu.org>
parents:
diff changeset
7225 articles, both read and unread.
Dave Love <fx@gnu.org>
parents:
diff changeset
7226
Dave Love <fx@gnu.org>
parents:
diff changeset
7227 @item Z N
Dave Love <fx@gnu.org>
parents:
diff changeset
7228 @kindex Z N (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
7229 @findex gnus-summary-next-group
Dave Love <fx@gnu.org>
parents:
diff changeset
7230 Exit the group and go to the next group
Dave Love <fx@gnu.org>
parents:
diff changeset
7231 (@code{gnus-summary-next-group}).
Dave Love <fx@gnu.org>
parents:
diff changeset
7232
Dave Love <fx@gnu.org>
parents:
diff changeset
7233 @item Z P
Dave Love <fx@gnu.org>
parents:
diff changeset
7234 @kindex Z P (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
7235 @findex gnus-summary-prev-group
Dave Love <fx@gnu.org>
parents:
diff changeset
7236 Exit the group and go to the previous group
Dave Love <fx@gnu.org>
parents:
diff changeset
7237 (@code{gnus-summary-prev-group}).
Dave Love <fx@gnu.org>
parents:
diff changeset
7238
Dave Love <fx@gnu.org>
parents:
diff changeset
7239 @item Z s
Dave Love <fx@gnu.org>
parents:
diff changeset
7240 @kindex Z s (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
7241 @findex gnus-summary-save-newsrc
Dave Love <fx@gnu.org>
parents:
diff changeset
7242 Save the current number of read/marked articles in the dribble buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
7243 and then save the dribble buffer (@code{gnus-summary-save-newsrc}). If
Dave Love <fx@gnu.org>
parents:
diff changeset
7244 given a prefix, also save the @file{.newsrc} file(s). Using this
Dave Love <fx@gnu.org>
parents:
diff changeset
7245 command will make exit without updating (the @kbd{Q} command) worthless.
Dave Love <fx@gnu.org>
parents:
diff changeset
7246 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
7247
Dave Love <fx@gnu.org>
parents:
diff changeset
7248 @vindex gnus-exit-group-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
7249 @code{gnus-exit-group-hook} is called when you exit the current
Dave Love <fx@gnu.org>
parents:
diff changeset
7250 group.
Dave Love <fx@gnu.org>
parents:
diff changeset
7251
Dave Love <fx@gnu.org>
parents:
diff changeset
7252 @findex gnus-summary-wake-up-the-dead
Dave Love <fx@gnu.org>
parents:
diff changeset
7253 @findex gnus-dead-summary-mode
Dave Love <fx@gnu.org>
parents:
diff changeset
7254 @vindex gnus-kill-summary-on-exit
Dave Love <fx@gnu.org>
parents:
diff changeset
7255 If you're in the habit of exiting groups, and then changing your mind
Dave Love <fx@gnu.org>
parents:
diff changeset
7256 about it, you might set @code{gnus-kill-summary-on-exit} to @code{nil}.
Dave Love <fx@gnu.org>
parents:
diff changeset
7257 If you do that, Gnus won't kill the summary buffer when you exit it.
Dave Love <fx@gnu.org>
parents:
diff changeset
7258 (Quelle surprise!) Instead it will change the name of the buffer to
Dave Love <fx@gnu.org>
parents:
diff changeset
7259 something like @samp{*Dead Summary ... *} and install a minor mode
Dave Love <fx@gnu.org>
parents:
diff changeset
7260 called @code{gnus-dead-summary-mode}. Now, if you switch back to this
Dave Love <fx@gnu.org>
parents:
diff changeset
7261 buffer, you'll find that all keys are mapped to a function called
Dave Love <fx@gnu.org>
parents:
diff changeset
7262 @code{gnus-summary-wake-up-the-dead}. So tapping any keys in a dead
Dave Love <fx@gnu.org>
parents:
diff changeset
7263 summary buffer will result in a live, normal summary buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
7264
Dave Love <fx@gnu.org>
parents:
diff changeset
7265 There will never be more than one dead summary buffer at any one time.
Dave Love <fx@gnu.org>
parents:
diff changeset
7266
Dave Love <fx@gnu.org>
parents:
diff changeset
7267 @vindex gnus-use-cross-reference
Dave Love <fx@gnu.org>
parents:
diff changeset
7268 The data on the current group will be updated (which articles you have
Dave Love <fx@gnu.org>
parents:
diff changeset
7269 read, which articles you have replied to, etc.) when you exit the
Dave Love <fx@gnu.org>
parents:
diff changeset
7270 summary buffer. If the @code{gnus-use-cross-reference} variable is
Dave Love <fx@gnu.org>
parents:
diff changeset
7271 @code{t} (which is the default), articles that are cross-referenced to
Dave Love <fx@gnu.org>
parents:
diff changeset
7272 this group and are marked as read, will also be marked as read in the
Dave Love <fx@gnu.org>
parents:
diff changeset
7273 other subscribed groups they were cross-posted to. If this variable is
Dave Love <fx@gnu.org>
parents:
diff changeset
7274 neither @code{nil} nor @code{t}, the article will be marked as read in
Dave Love <fx@gnu.org>
parents:
diff changeset
7275 both subscribed and unsubscribed groups (@pxref{Crosspost Handling}).
Dave Love <fx@gnu.org>
parents:
diff changeset
7276
Dave Love <fx@gnu.org>
parents:
diff changeset
7277
Dave Love <fx@gnu.org>
parents:
diff changeset
7278 @node Crosspost Handling
Dave Love <fx@gnu.org>
parents:
diff changeset
7279 @section Crosspost Handling
Dave Love <fx@gnu.org>
parents:
diff changeset
7280
Dave Love <fx@gnu.org>
parents:
diff changeset
7281 @cindex velveeta
Dave Love <fx@gnu.org>
parents:
diff changeset
7282 @cindex spamming
Dave Love <fx@gnu.org>
parents:
diff changeset
7283 Marking cross-posted articles as read ensures that you'll never have to
Dave Love <fx@gnu.org>
parents:
diff changeset
7284 read the same article more than once. Unless, of course, somebody has
Dave Love <fx@gnu.org>
parents:
diff changeset
7285 posted it to several groups separately. Posting the same article to
Dave Love <fx@gnu.org>
parents:
diff changeset
7286 several groups (not cross-posting) is called @dfn{spamming}, and you are
Dave Love <fx@gnu.org>
parents:
diff changeset
7287 by law required to send nasty-grams to anyone who perpetrates such a
Dave Love <fx@gnu.org>
parents:
diff changeset
7288 heinous crime. You may want to try NoCeM handling to filter out spam
Dave Love <fx@gnu.org>
parents:
diff changeset
7289 (@pxref{NoCeM}).
Dave Love <fx@gnu.org>
parents:
diff changeset
7290
Dave Love <fx@gnu.org>
parents:
diff changeset
7291 Remember: Cross-posting is kinda ok, but posting the same article
Dave Love <fx@gnu.org>
parents:
diff changeset
7292 separately to several groups is not. Massive cross-posting (aka.
Dave Love <fx@gnu.org>
parents:
diff changeset
7293 @dfn{velveeta}) is to be avoided at all costs, and you can even use the
Dave Love <fx@gnu.org>
parents:
diff changeset
7294 @code{gnus-summary-mail-crosspost-complaint} command to complain about
Dave Love <fx@gnu.org>
parents:
diff changeset
7295 excessive crossposting (@pxref{Summary Mail Commands}).
Dave Love <fx@gnu.org>
parents:
diff changeset
7296
Dave Love <fx@gnu.org>
parents:
diff changeset
7297 @cindex cross-posting
Dave Love <fx@gnu.org>
parents:
diff changeset
7298 @cindex Xref
Dave Love <fx@gnu.org>
parents:
diff changeset
7299 @cindex @sc{nov}
Dave Love <fx@gnu.org>
parents:
diff changeset
7300 One thing that may cause Gnus to not do the cross-posting thing
Dave Love <fx@gnu.org>
parents:
diff changeset
7301 correctly is if you use an @sc{nntp} server that supports @sc{xover}
Dave Love <fx@gnu.org>
parents:
diff changeset
7302 (which is very nice, because it speeds things up considerably) which
Dave Love <fx@gnu.org>
parents:
diff changeset
7303 does not include the @code{Xref} header in its @sc{nov} lines. This is
Dave Love <fx@gnu.org>
parents:
diff changeset
7304 Evil, but all too common, alas, alack. Gnus tries to Do The Right Thing
Dave Love <fx@gnu.org>
parents:
diff changeset
7305 even with @sc{xover} by registering the @code{Xref} lines of all
Dave Love <fx@gnu.org>
parents:
diff changeset
7306 articles you actually read, but if you kill the articles, or just mark
Dave Love <fx@gnu.org>
parents:
diff changeset
7307 them as read without reading them, Gnus will not get a chance to snoop
Dave Love <fx@gnu.org>
parents:
diff changeset
7308 the @code{Xref} lines out of these articles, and will be unable to use
Dave Love <fx@gnu.org>
parents:
diff changeset
7309 the cross reference mechanism.
Dave Love <fx@gnu.org>
parents:
diff changeset
7310
Dave Love <fx@gnu.org>
parents:
diff changeset
7311 @cindex LIST overview.fmt
Dave Love <fx@gnu.org>
parents:
diff changeset
7312 @cindex overview.fmt
Dave Love <fx@gnu.org>
parents:
diff changeset
7313 To check whether your @sc{nntp} server includes the @code{Xref} header
Dave Love <fx@gnu.org>
parents:
diff changeset
7314 in its overview files, try @samp{telnet your.nntp.server nntp},
Dave Love <fx@gnu.org>
parents:
diff changeset
7315 @samp{MODE READER} on @code{inn} servers, and then say @samp{LIST
Dave Love <fx@gnu.org>
parents:
diff changeset
7316 overview.fmt}. This may not work, but if it does, and the last line you
Dave Love <fx@gnu.org>
parents:
diff changeset
7317 get does not read @samp{Xref:full}, then you should shout and whine at
Dave Love <fx@gnu.org>
parents:
diff changeset
7318 your news admin until she includes the @code{Xref} header in the
Dave Love <fx@gnu.org>
parents:
diff changeset
7319 overview files.
Dave Love <fx@gnu.org>
parents:
diff changeset
7320
Dave Love <fx@gnu.org>
parents:
diff changeset
7321 @vindex gnus-nov-is-evil
Dave Love <fx@gnu.org>
parents:
diff changeset
7322 If you want Gnus to get the @code{Xref}s right all the time, you have to
Dave Love <fx@gnu.org>
parents:
diff changeset
7323 set @code{gnus-nov-is-evil} to @code{t}, which slows things down
Dave Love <fx@gnu.org>
parents:
diff changeset
7324 considerably.
Dave Love <fx@gnu.org>
parents:
diff changeset
7325
Dave Love <fx@gnu.org>
parents:
diff changeset
7326 C'est la vie.
Dave Love <fx@gnu.org>
parents:
diff changeset
7327
Dave Love <fx@gnu.org>
parents:
diff changeset
7328 For an alternative approach, @pxref{Duplicate Suppression}.
Dave Love <fx@gnu.org>
parents:
diff changeset
7329
Dave Love <fx@gnu.org>
parents:
diff changeset
7330
Dave Love <fx@gnu.org>
parents:
diff changeset
7331 @node Duplicate Suppression
Dave Love <fx@gnu.org>
parents:
diff changeset
7332 @section Duplicate Suppression
Dave Love <fx@gnu.org>
parents:
diff changeset
7333
Dave Love <fx@gnu.org>
parents:
diff changeset
7334 By default, Gnus tries to make sure that you don't have to read the same
Dave Love <fx@gnu.org>
parents:
diff changeset
7335 article more than once by utilizing the crossposting mechanism
Dave Love <fx@gnu.org>
parents:
diff changeset
7336 (@pxref{Crosspost Handling}). However, that simple and efficient
Dave Love <fx@gnu.org>
parents:
diff changeset
7337 approach may not work satisfactory for some users for various
Dave Love <fx@gnu.org>
parents:
diff changeset
7338 reasons.
Dave Love <fx@gnu.org>
parents:
diff changeset
7339
Dave Love <fx@gnu.org>
parents:
diff changeset
7340 @enumerate
Dave Love <fx@gnu.org>
parents:
diff changeset
7341 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
7342 The @sc{nntp} server may fail to generate the @code{Xref} header. This
Dave Love <fx@gnu.org>
parents:
diff changeset
7343 is evil and not very common.
Dave Love <fx@gnu.org>
parents:
diff changeset
7344
Dave Love <fx@gnu.org>
parents:
diff changeset
7345 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
7346 The @sc{nntp} server may fail to include the @code{Xref} header in the
Dave Love <fx@gnu.org>
parents:
diff changeset
7347 @file{.overview} data bases. This is evil and all too common, alas.
Dave Love <fx@gnu.org>
parents:
diff changeset
7348
Dave Love <fx@gnu.org>
parents:
diff changeset
7349 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
7350 You may be reading the same group (or several related groups) from
Dave Love <fx@gnu.org>
parents:
diff changeset
7351 different @sc{nntp} servers.
Dave Love <fx@gnu.org>
parents:
diff changeset
7352
Dave Love <fx@gnu.org>
parents:
diff changeset
7353 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
7354 You may be getting mail that duplicates articles posted to groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
7355 @end enumerate
Dave Love <fx@gnu.org>
parents:
diff changeset
7356
Dave Love <fx@gnu.org>
parents:
diff changeset
7357 I'm sure there are other situations where @code{Xref} handling fails as
Dave Love <fx@gnu.org>
parents:
diff changeset
7358 well, but these four are the most common situations.
Dave Love <fx@gnu.org>
parents:
diff changeset
7359
Dave Love <fx@gnu.org>
parents:
diff changeset
7360 If, and only if, @code{Xref} handling fails for you, then you may
Dave Love <fx@gnu.org>
parents:
diff changeset
7361 consider switching on @dfn{duplicate suppression}. If you do so, Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
7362 will remember the @code{Message-ID}s of all articles you have read or
Dave Love <fx@gnu.org>
parents:
diff changeset
7363 otherwise marked as read, and then, as if by magic, mark them as read
Dave Love <fx@gnu.org>
parents:
diff changeset
7364 all subsequent times you see them---in @emph{all} groups. Using this
Dave Love <fx@gnu.org>
parents:
diff changeset
7365 mechanism is quite likely to be somewhat inefficient, but not overly
Dave Love <fx@gnu.org>
parents:
diff changeset
7366 so. It's certainly preferable to reading the same articles more than
Dave Love <fx@gnu.org>
parents:
diff changeset
7367 once.
Dave Love <fx@gnu.org>
parents:
diff changeset
7368
Dave Love <fx@gnu.org>
parents:
diff changeset
7369 Duplicate suppression is not a very subtle instrument. It's more like a
Dave Love <fx@gnu.org>
parents:
diff changeset
7370 sledge hammer than anything else. It works in a very simple
Dave Love <fx@gnu.org>
parents:
diff changeset
7371 fashion---if you have marked an article as read, it adds this Message-ID
Dave Love <fx@gnu.org>
parents:
diff changeset
7372 to a cache. The next time it sees this Message-ID, it will mark the
Dave Love <fx@gnu.org>
parents:
diff changeset
7373 article as read with the @samp{M} mark. It doesn't care what group it
Dave Love <fx@gnu.org>
parents:
diff changeset
7374 saw the article in.
Dave Love <fx@gnu.org>
parents:
diff changeset
7375
Dave Love <fx@gnu.org>
parents:
diff changeset
7376 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
7377 @item gnus-suppress-duplicates
Dave Love <fx@gnu.org>
parents:
diff changeset
7378 @vindex gnus-suppress-duplicates
Dave Love <fx@gnu.org>
parents:
diff changeset
7379 If non-@code{nil}, suppress duplicates.
Dave Love <fx@gnu.org>
parents:
diff changeset
7380
Dave Love <fx@gnu.org>
parents:
diff changeset
7381 @item gnus-save-duplicate-list
Dave Love <fx@gnu.org>
parents:
diff changeset
7382 @vindex gnus-save-duplicate-list
Dave Love <fx@gnu.org>
parents:
diff changeset
7383 If non-@code{nil}, save the list of duplicates to a file. This will
Dave Love <fx@gnu.org>
parents:
diff changeset
7384 make startup and shutdown take longer, so the default is @code{nil}.
Dave Love <fx@gnu.org>
parents:
diff changeset
7385 However, this means that only duplicate articles read in a single Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
7386 session are suppressed.
Dave Love <fx@gnu.org>
parents:
diff changeset
7387
Dave Love <fx@gnu.org>
parents:
diff changeset
7388 @item gnus-duplicate-list-length
Dave Love <fx@gnu.org>
parents:
diff changeset
7389 @vindex gnus-duplicate-list-length
Dave Love <fx@gnu.org>
parents:
diff changeset
7390 This variable says how many @code{Message-ID}s to keep in the duplicate
Dave Love <fx@gnu.org>
parents:
diff changeset
7391 suppression list. The default is 10000.
Dave Love <fx@gnu.org>
parents:
diff changeset
7392
Dave Love <fx@gnu.org>
parents:
diff changeset
7393 @item gnus-duplicate-file
Dave Love <fx@gnu.org>
parents:
diff changeset
7394 @vindex gnus-duplicate-file
Dave Love <fx@gnu.org>
parents:
diff changeset
7395 The name of the file to store the duplicate suppression list in. The
Dave Love <fx@gnu.org>
parents:
diff changeset
7396 default is @file{~/News/suppression}.
Dave Love <fx@gnu.org>
parents:
diff changeset
7397 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
7398
Dave Love <fx@gnu.org>
parents:
diff changeset
7399 If you have a tendency to stop and start Gnus often, setting
Dave Love <fx@gnu.org>
parents:
diff changeset
7400 @code{gnus-save-duplicate-list} to @code{t} is probably a good idea. If
Dave Love <fx@gnu.org>
parents:
diff changeset
7401 you leave Gnus running for weeks on end, you may have it @code{nil}. On
Dave Love <fx@gnu.org>
parents:
diff changeset
7402 the other hand, saving the list makes startup and shutdown much slower,
Dave Love <fx@gnu.org>
parents:
diff changeset
7403 so that means that if you stop and start Gnus often, you should set
Dave Love <fx@gnu.org>
parents:
diff changeset
7404 @code{gnus-save-duplicate-list} to @code{nil}. Uhm. I'll leave this up
Dave Love <fx@gnu.org>
parents:
diff changeset
7405 to you to figure out, I think.
Dave Love <fx@gnu.org>
parents:
diff changeset
7406
Dave Love <fx@gnu.org>
parents:
diff changeset
7407
Dave Love <fx@gnu.org>
parents:
diff changeset
7408 @node The Article Buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
7409 @chapter The Article Buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
7410 @cindex article buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
7411
Dave Love <fx@gnu.org>
parents:
diff changeset
7412 The articles are displayed in the article buffer, of which there is only
Dave Love <fx@gnu.org>
parents:
diff changeset
7413 one. All the summary buffers share the same article buffer unless you
Dave Love <fx@gnu.org>
parents:
diff changeset
7414 tell Gnus otherwise.
Dave Love <fx@gnu.org>
parents:
diff changeset
7415
Dave Love <fx@gnu.org>
parents:
diff changeset
7416 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
7417 * Hiding Headers:: Deciding what headers should be displayed.
Dave Love <fx@gnu.org>
parents:
diff changeset
7418 * Using MIME:: Pushing articles through @sc{mime} before reading them.
Dave Love <fx@gnu.org>
parents:
diff changeset
7419 * Customizing Articles:: Tailoring the look of the articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
7420 * Article Keymap:: Keystrokes available in the article buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
7421 * Misc Article:: Other stuff.
Dave Love <fx@gnu.org>
parents:
diff changeset
7422 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
7423
Dave Love <fx@gnu.org>
parents:
diff changeset
7424
Dave Love <fx@gnu.org>
parents:
diff changeset
7425 @node Hiding Headers
Dave Love <fx@gnu.org>
parents:
diff changeset
7426 @section Hiding Headers
Dave Love <fx@gnu.org>
parents:
diff changeset
7427 @cindex hiding headers
Dave Love <fx@gnu.org>
parents:
diff changeset
7428 @cindex deleting headers
Dave Love <fx@gnu.org>
parents:
diff changeset
7429
Dave Love <fx@gnu.org>
parents:
diff changeset
7430 The top section of each article is the @dfn{head}. (The rest is the
Dave Love <fx@gnu.org>
parents:
diff changeset
7431 @dfn{body}, but you may have guessed that already.)
Dave Love <fx@gnu.org>
parents:
diff changeset
7432
Dave Love <fx@gnu.org>
parents:
diff changeset
7433 @vindex gnus-show-all-headers
Dave Love <fx@gnu.org>
parents:
diff changeset
7434 There is a lot of useful information in the head: the name of the person
Dave Love <fx@gnu.org>
parents:
diff changeset
7435 who wrote the article, the date it was written and the subject of the
Dave Love <fx@gnu.org>
parents:
diff changeset
7436 article. That's well and nice, but there's also lots of information
Dave Love <fx@gnu.org>
parents:
diff changeset
7437 most people do not want to see---what systems the article has passed
Dave Love <fx@gnu.org>
parents:
diff changeset
7438 through before reaching you, the @code{Message-ID}, the
Dave Love <fx@gnu.org>
parents:
diff changeset
7439 @code{References}, etc. ad nauseum---and you'll probably want to get rid
Dave Love <fx@gnu.org>
parents:
diff changeset
7440 of some of those lines. If you want to keep all those lines in the
Dave Love <fx@gnu.org>
parents:
diff changeset
7441 article buffer, you can set @code{gnus-show-all-headers} to @code{t}.
Dave Love <fx@gnu.org>
parents:
diff changeset
7442
Dave Love <fx@gnu.org>
parents:
diff changeset
7443 Gnus provides you with two variables for sifting headers:
Dave Love <fx@gnu.org>
parents:
diff changeset
7444
Dave Love <fx@gnu.org>
parents:
diff changeset
7445 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
7446
Dave Love <fx@gnu.org>
parents:
diff changeset
7447 @item gnus-visible-headers
Dave Love <fx@gnu.org>
parents:
diff changeset
7448 @vindex gnus-visible-headers
Dave Love <fx@gnu.org>
parents:
diff changeset
7449 If this variable is non-@code{nil}, it should be a regular expression
Dave Love <fx@gnu.org>
parents:
diff changeset
7450 that says what headers you wish to keep in the article buffer. All
Dave Love <fx@gnu.org>
parents:
diff changeset
7451 headers that do not match this variable will be hidden.
Dave Love <fx@gnu.org>
parents:
diff changeset
7452
Dave Love <fx@gnu.org>
parents:
diff changeset
7453 For instance, if you only want to see the name of the person who wrote
Dave Love <fx@gnu.org>
parents:
diff changeset
7454 the article and the subject, you'd say:
Dave Love <fx@gnu.org>
parents:
diff changeset
7455
Dave Love <fx@gnu.org>
parents:
diff changeset
7456 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
7457 (setq gnus-visible-headers "^From:\\|^Subject:")
Dave Love <fx@gnu.org>
parents:
diff changeset
7458 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
7459
Dave Love <fx@gnu.org>
parents:
diff changeset
7460 This variable can also be a list of regexps to match headers to
Dave Love <fx@gnu.org>
parents:
diff changeset
7461 remain visible.
Dave Love <fx@gnu.org>
parents:
diff changeset
7462
Dave Love <fx@gnu.org>
parents:
diff changeset
7463 @item gnus-ignored-headers
Dave Love <fx@gnu.org>
parents:
diff changeset
7464 @vindex gnus-ignored-headers
Dave Love <fx@gnu.org>
parents:
diff changeset
7465 This variable is the reverse of @code{gnus-visible-headers}. If this
Dave Love <fx@gnu.org>
parents:
diff changeset
7466 variable is set (and @code{gnus-visible-headers} is @code{nil}), it
Dave Love <fx@gnu.org>
parents:
diff changeset
7467 should be a regular expression that matches all lines that you want to
Dave Love <fx@gnu.org>
parents:
diff changeset
7468 hide. All lines that do not match this variable will remain visible.
Dave Love <fx@gnu.org>
parents:
diff changeset
7469
Dave Love <fx@gnu.org>
parents:
diff changeset
7470 For instance, if you just want to get rid of the @code{References} line
Dave Love <fx@gnu.org>
parents:
diff changeset
7471 and the @code{Xref} line, you might say:
Dave Love <fx@gnu.org>
parents:
diff changeset
7472
Dave Love <fx@gnu.org>
parents:
diff changeset
7473 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
7474 (setq gnus-ignored-headers "^References:\\|^Xref:")
Dave Love <fx@gnu.org>
parents:
diff changeset
7475 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
7476
Dave Love <fx@gnu.org>
parents:
diff changeset
7477 This variable can also be a list of regexps to match headers to
Dave Love <fx@gnu.org>
parents:
diff changeset
7478 be removed.
Dave Love <fx@gnu.org>
parents:
diff changeset
7479
Dave Love <fx@gnu.org>
parents:
diff changeset
7480 Note that if @code{gnus-visible-headers} is non-@code{nil}, this
Dave Love <fx@gnu.org>
parents:
diff changeset
7481 variable will have no effect.
Dave Love <fx@gnu.org>
parents:
diff changeset
7482
Dave Love <fx@gnu.org>
parents:
diff changeset
7483 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
7484
Dave Love <fx@gnu.org>
parents:
diff changeset
7485 @vindex gnus-sorted-header-list
Dave Love <fx@gnu.org>
parents:
diff changeset
7486 Gnus can also sort the headers for you. (It does this by default.) You
Dave Love <fx@gnu.org>
parents:
diff changeset
7487 can control the sorting by setting the @code{gnus-sorted-header-list}
Dave Love <fx@gnu.org>
parents:
diff changeset
7488 variable. It is a list of regular expressions that says in what order
Dave Love <fx@gnu.org>
parents:
diff changeset
7489 the headers are to be displayed.
Dave Love <fx@gnu.org>
parents:
diff changeset
7490
Dave Love <fx@gnu.org>
parents:
diff changeset
7491 For instance, if you want the name of the author of the article first,
Dave Love <fx@gnu.org>
parents:
diff changeset
7492 and then the subject, you might say something like:
Dave Love <fx@gnu.org>
parents:
diff changeset
7493
Dave Love <fx@gnu.org>
parents:
diff changeset
7494 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
7495 (setq gnus-sorted-header-list '("^From:" "^Subject:"))
Dave Love <fx@gnu.org>
parents:
diff changeset
7496 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
7497
Dave Love <fx@gnu.org>
parents:
diff changeset
7498 Any headers that are to remain visible, but are not listed in this
Dave Love <fx@gnu.org>
parents:
diff changeset
7499 variable, will be displayed in random order after all the headers listed in this variable.
Dave Love <fx@gnu.org>
parents:
diff changeset
7500
Dave Love <fx@gnu.org>
parents:
diff changeset
7501 @findex gnus-article-hide-boring-headers
Dave Love <fx@gnu.org>
parents:
diff changeset
7502 @vindex gnus-article-display-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
7503 @vindex gnus-boring-article-headers
Dave Love <fx@gnu.org>
parents:
diff changeset
7504 You can hide further boring headers by entering
Dave Love <fx@gnu.org>
parents:
diff changeset
7505 @code{gnus-article-hide-boring-headers} into
Dave Love <fx@gnu.org>
parents:
diff changeset
7506 @code{gnus-article-display-hook}. What this function does depends on
Dave Love <fx@gnu.org>
parents:
diff changeset
7507 the @code{gnus-boring-article-headers} variable. It's a list, but this
Dave Love <fx@gnu.org>
parents:
diff changeset
7508 list doesn't actually contain header names. Instead is lists various
Dave Love <fx@gnu.org>
parents:
diff changeset
7509 @dfn{boring conditions} that Gnus can check and remove from sight.
Dave Love <fx@gnu.org>
parents:
diff changeset
7510
Dave Love <fx@gnu.org>
parents:
diff changeset
7511 These conditions are:
Dave Love <fx@gnu.org>
parents:
diff changeset
7512 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
7513 @item empty
Dave Love <fx@gnu.org>
parents:
diff changeset
7514 Remove all empty headers.
Dave Love <fx@gnu.org>
parents:
diff changeset
7515 @item followup-to
Dave Love <fx@gnu.org>
parents:
diff changeset
7516 Remove the @code{Followup-To} header if it is identical to the
Dave Love <fx@gnu.org>
parents:
diff changeset
7517 @code{Newsgroups} header.
Dave Love <fx@gnu.org>
parents:
diff changeset
7518 @item reply-to
Dave Love <fx@gnu.org>
parents:
diff changeset
7519 Remove the @code{Reply-To} header if it lists the same address as the
Dave Love <fx@gnu.org>
parents:
diff changeset
7520 @code{From} header.
Dave Love <fx@gnu.org>
parents:
diff changeset
7521 @item newsgroups
Dave Love <fx@gnu.org>
parents:
diff changeset
7522 Remove the @code{Newsgroups} header if it only contains the current group
Dave Love <fx@gnu.org>
parents:
diff changeset
7523 name.
Dave Love <fx@gnu.org>
parents:
diff changeset
7524 @item date
Dave Love <fx@gnu.org>
parents:
diff changeset
7525 Remove the @code{Date} header if the article is less than three days
Dave Love <fx@gnu.org>
parents:
diff changeset
7526 old.
Dave Love <fx@gnu.org>
parents:
diff changeset
7527 @item long-to
Dave Love <fx@gnu.org>
parents:
diff changeset
7528 Remove the @code{To} header if it is very long.
Dave Love <fx@gnu.org>
parents:
diff changeset
7529 @item many-to
Dave Love <fx@gnu.org>
parents:
diff changeset
7530 Remove all @code{To} headers if there are more than one.
Dave Love <fx@gnu.org>
parents:
diff changeset
7531 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
7532
Dave Love <fx@gnu.org>
parents:
diff changeset
7533 To include the four three elements, you could say something like;
Dave Love <fx@gnu.org>
parents:
diff changeset
7534
Dave Love <fx@gnu.org>
parents:
diff changeset
7535 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
7536 (setq gnus-boring-article-headers
Dave Love <fx@gnu.org>
parents:
diff changeset
7537 '(empty followup-to reply-to))
Dave Love <fx@gnu.org>
parents:
diff changeset
7538 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
7539
Dave Love <fx@gnu.org>
parents:
diff changeset
7540 This is also the default value for this variable.
Dave Love <fx@gnu.org>
parents:
diff changeset
7541
Dave Love <fx@gnu.org>
parents:
diff changeset
7542
Dave Love <fx@gnu.org>
parents:
diff changeset
7543 @node Using MIME
Dave Love <fx@gnu.org>
parents:
diff changeset
7544 @section Using @sc{mime}
Dave Love <fx@gnu.org>
parents:
diff changeset
7545 @cindex @sc{mime}
Dave Love <fx@gnu.org>
parents:
diff changeset
7546
Dave Love <fx@gnu.org>
parents:
diff changeset
7547 Mime is a standard for waving your hands through the air, aimlessly,
Dave Love <fx@gnu.org>
parents:
diff changeset
7548 while people stand around yawning.
Dave Love <fx@gnu.org>
parents:
diff changeset
7549
Dave Love <fx@gnu.org>
parents:
diff changeset
7550 @sc{mime}, however, is a standard for encoding your articles, aimlessly,
Dave Love <fx@gnu.org>
parents:
diff changeset
7551 while all newsreaders die of fear.
Dave Love <fx@gnu.org>
parents:
diff changeset
7552
Dave Love <fx@gnu.org>
parents:
diff changeset
7553 @sc{mime} may specify what character set the article uses, the encoding
Dave Love <fx@gnu.org>
parents:
diff changeset
7554 of the characters, and it also makes it possible to embed pictures and
Dave Love <fx@gnu.org>
parents:
diff changeset
7555 other naughty stuff in innocent-looking articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
7556
Dave Love <fx@gnu.org>
parents:
diff changeset
7557 @vindex gnus-show-mime
Dave Love <fx@gnu.org>
parents:
diff changeset
7558 @vindex gnus-show-mime-method
Dave Love <fx@gnu.org>
parents:
diff changeset
7559 @vindex gnus-strict-mime
Dave Love <fx@gnu.org>
parents:
diff changeset
7560 @findex metamail-buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
7561 Gnus handles @sc{mime} by pushing the articles through
Dave Love <fx@gnu.org>
parents:
diff changeset
7562 @code{gnus-show-mime-method}, which is @code{metamail-buffer} by
Dave Love <fx@gnu.org>
parents:
diff changeset
7563 default. This function calls the external @code{metamail} program to
Dave Love <fx@gnu.org>
parents:
diff changeset
7564 actually do the work. One common problem with this program is that is
Dave Love <fx@gnu.org>
parents:
diff changeset
7565 thinks that it can't display 8-bit things in the Emacs buffer. To tell
Dave Love <fx@gnu.org>
parents:
diff changeset
7566 it the truth, put something like the following in your
Dave Love <fx@gnu.org>
parents:
diff changeset
7567 @file{.bash_profile} file. (You do use @code{bash}, don't you?)
Dave Love <fx@gnu.org>
parents:
diff changeset
7568
Dave Love <fx@gnu.org>
parents:
diff changeset
7569 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
7570 export MM_CHARSET="iso-8859-1"
Dave Love <fx@gnu.org>
parents:
diff changeset
7571 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
7572
Dave Love <fx@gnu.org>
parents:
diff changeset
7573 For more information on @code{metamail}, see its manual page.
Dave Love <fx@gnu.org>
parents:
diff changeset
7574
Dave Love <fx@gnu.org>
parents:
diff changeset
7575 Set @code{gnus-show-mime} to @code{t} if you want to use
Dave Love <fx@gnu.org>
parents:
diff changeset
7576 @sc{mime} all the time. However, if @code{gnus-strict-mime} is
Dave Love <fx@gnu.org>
parents:
diff changeset
7577 non-@code{nil}, the @sc{mime} method will only be used if there are
Dave Love <fx@gnu.org>
parents:
diff changeset
7578 @sc{mime} headers in the article. If you have @code{gnus-show-mime}
Dave Love <fx@gnu.org>
parents:
diff changeset
7579 set, then you'll see some unfortunate display glitches in the article
Dave Love <fx@gnu.org>
parents:
diff changeset
7580 buffer. These can't be avoided.
Dave Love <fx@gnu.org>
parents:
diff changeset
7581
Dave Love <fx@gnu.org>
parents:
diff changeset
7582 It might be best to just use the toggling functions from the summary
Dave Love <fx@gnu.org>
parents:
diff changeset
7583 buffer to avoid getting nasty surprises. (For instance, you enter the
Dave Love <fx@gnu.org>
parents:
diff changeset
7584 group @samp{alt.sing-a-long} and, before you know it, @sc{mime} has
Dave Love <fx@gnu.org>
parents:
diff changeset
7585 decoded the sound file in the article and some horrible sing-a-long song
Dave Love <fx@gnu.org>
parents:
diff changeset
7586 comes screaming out your speakers, and you can't find the volume
Dave Love <fx@gnu.org>
parents:
diff changeset
7587 button, because there isn't one, and people are starting to look at you,
Dave Love <fx@gnu.org>
parents:
diff changeset
7588 and you try to stop the program, but you can't, and you can't find the
Dave Love <fx@gnu.org>
parents:
diff changeset
7589 program to control the volume, and everybody else in the room suddenly
Dave Love <fx@gnu.org>
parents:
diff changeset
7590 decides to look at you disdainfully, and you'll feel rather stupid.)
Dave Love <fx@gnu.org>
parents:
diff changeset
7591
Dave Love <fx@gnu.org>
parents:
diff changeset
7592 Any similarity to real events and people is purely coincidental. Ahem.
Dave Love <fx@gnu.org>
parents:
diff changeset
7593
Dave Love <fx@gnu.org>
parents:
diff changeset
7594
Dave Love <fx@gnu.org>
parents:
diff changeset
7595 @node Customizing Articles
Dave Love <fx@gnu.org>
parents:
diff changeset
7596 @section Customizing Articles
Dave Love <fx@gnu.org>
parents:
diff changeset
7597 @cindex article customization
Dave Love <fx@gnu.org>
parents:
diff changeset
7598
Dave Love <fx@gnu.org>
parents:
diff changeset
7599 @vindex gnus-article-display-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
7600 The @code{gnus-article-display-hook} is called after the article has
Dave Love <fx@gnu.org>
parents:
diff changeset
7601 been inserted into the article buffer. It is meant to handle all
Dave Love <fx@gnu.org>
parents:
diff changeset
7602 treatment of the article before it is displayed.
Dave Love <fx@gnu.org>
parents:
diff changeset
7603
Dave Love <fx@gnu.org>
parents:
diff changeset
7604 @findex gnus-article-maybe-highlight
Dave Love <fx@gnu.org>
parents:
diff changeset
7605 @findex gnus-article-maybe-hide-headers
Dave Love <fx@gnu.org>
parents:
diff changeset
7606 By default this hook just contains
Dave Love <fx@gnu.org>
parents:
diff changeset
7607 @code{gnus-article-maybe-hide-headers},
Dave Love <fx@gnu.org>
parents:
diff changeset
7608 @code{gnus-hide-boring-headers}, @code{gnus-article-treat-overstrike},
Dave Love <fx@gnu.org>
parents:
diff changeset
7609 and @code{gnus-article-maybe-highlight} (and under XEmacs,
Dave Love <fx@gnu.org>
parents:
diff changeset
7610 @code{gnus-article-display-x-face}), but there are thousands, nay
Dave Love <fx@gnu.org>
parents:
diff changeset
7611 millions, of functions you can put in this hook. For an overview of
Dave Love <fx@gnu.org>
parents:
diff changeset
7612 functions @pxref{Article Highlighting}, @pxref{Article Hiding},
Dave Love <fx@gnu.org>
parents:
diff changeset
7613 @pxref{Article Washing}, @pxref{Article Buttons} and @pxref{Article
Dave Love <fx@gnu.org>
parents:
diff changeset
7614 Date}. Note that the order of functions in this hook might affect
Dave Love <fx@gnu.org>
parents:
diff changeset
7615 things, so you may have to fiddle a bit to get the desired results.
Dave Love <fx@gnu.org>
parents:
diff changeset
7616
Dave Love <fx@gnu.org>
parents:
diff changeset
7617 You can, of course, write your own functions. The functions are called
Dave Love <fx@gnu.org>
parents:
diff changeset
7618 from the article buffer, and you can do anything you like, pretty much.
Dave Love <fx@gnu.org>
parents:
diff changeset
7619 There is no information that you have to keep in the buffer---you can
Dave Love <fx@gnu.org>
parents:
diff changeset
7620 change everything. However, you shouldn't delete any headers. Instead
Dave Love <fx@gnu.org>
parents:
diff changeset
7621 make them invisible if you want to make them go away.
Dave Love <fx@gnu.org>
parents:
diff changeset
7622
Dave Love <fx@gnu.org>
parents:
diff changeset
7623
Dave Love <fx@gnu.org>
parents:
diff changeset
7624 @node Article Keymap
Dave Love <fx@gnu.org>
parents:
diff changeset
7625 @section Article Keymap
Dave Love <fx@gnu.org>
parents:
diff changeset
7626
Dave Love <fx@gnu.org>
parents:
diff changeset
7627 Most of the keystrokes in the summary buffer can also be used in the
Dave Love <fx@gnu.org>
parents:
diff changeset
7628 article buffer. They should behave as if you typed them in the summary
Dave Love <fx@gnu.org>
parents:
diff changeset
7629 buffer, which means that you don't actually have to have a summary
Dave Love <fx@gnu.org>
parents:
diff changeset
7630 buffer displayed while reading. You can do it all from the article
Dave Love <fx@gnu.org>
parents:
diff changeset
7631 buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
7632
Dave Love <fx@gnu.org>
parents:
diff changeset
7633 A few additional keystrokes are available:
Dave Love <fx@gnu.org>
parents:
diff changeset
7634
Dave Love <fx@gnu.org>
parents:
diff changeset
7635 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
7636
Dave Love <fx@gnu.org>
parents:
diff changeset
7637 @item SPACE
Dave Love <fx@gnu.org>
parents:
diff changeset
7638 @kindex SPACE (Article)
Dave Love <fx@gnu.org>
parents:
diff changeset
7639 @findex gnus-article-next-page
Dave Love <fx@gnu.org>
parents:
diff changeset
7640 Scroll forwards one page (@code{gnus-article-next-page}).
Dave Love <fx@gnu.org>
parents:
diff changeset
7641
Dave Love <fx@gnu.org>
parents:
diff changeset
7642 @item DEL
Dave Love <fx@gnu.org>
parents:
diff changeset
7643 @kindex DEL (Article)
Dave Love <fx@gnu.org>
parents:
diff changeset
7644 @findex gnus-article-prev-page
Dave Love <fx@gnu.org>
parents:
diff changeset
7645 Scroll backwards one page (@code{gnus-article-prev-page}).
Dave Love <fx@gnu.org>
parents:
diff changeset
7646
Dave Love <fx@gnu.org>
parents:
diff changeset
7647 @item C-c ^
Dave Love <fx@gnu.org>
parents:
diff changeset
7648 @kindex C-c ^ (Article)
Dave Love <fx@gnu.org>
parents:
diff changeset
7649 @findex gnus-article-refer-article
Dave Love <fx@gnu.org>
parents:
diff changeset
7650 If point is in the neighborhood of a @code{Message-ID} and you press
Dave Love <fx@gnu.org>
parents:
diff changeset
7651 @kbd{C-c ^}, Gnus will try to get that article from the server
Dave Love <fx@gnu.org>
parents:
diff changeset
7652 (@code{gnus-article-refer-article}).
Dave Love <fx@gnu.org>
parents:
diff changeset
7653
Dave Love <fx@gnu.org>
parents:
diff changeset
7654 @item C-c C-m
Dave Love <fx@gnu.org>
parents:
diff changeset
7655 @kindex C-c C-m (Article)
Dave Love <fx@gnu.org>
parents:
diff changeset
7656 @findex gnus-article-mail
Dave Love <fx@gnu.org>
parents:
diff changeset
7657 Send a reply to the address near point (@code{gnus-article-mail}). If
Dave Love <fx@gnu.org>
parents:
diff changeset
7658 given a prefix, include the mail.
Dave Love <fx@gnu.org>
parents:
diff changeset
7659
Dave Love <fx@gnu.org>
parents:
diff changeset
7660 @item s
Dave Love <fx@gnu.org>
parents:
diff changeset
7661 @kindex s (Article)
Dave Love <fx@gnu.org>
parents:
diff changeset
7662 @findex gnus-article-show-summary
Dave Love <fx@gnu.org>
parents:
diff changeset
7663 Reconfigure the buffers so that the summary buffer becomes visible
Dave Love <fx@gnu.org>
parents:
diff changeset
7664 (@code{gnus-article-show-summary}).
Dave Love <fx@gnu.org>
parents:
diff changeset
7665
Dave Love <fx@gnu.org>
parents:
diff changeset
7666 @item ?
Dave Love <fx@gnu.org>
parents:
diff changeset
7667 @kindex ? (Article)
Dave Love <fx@gnu.org>
parents:
diff changeset
7668 @findex gnus-article-describe-briefly
Dave Love <fx@gnu.org>
parents:
diff changeset
7669 Give a very brief description of the available keystrokes
Dave Love <fx@gnu.org>
parents:
diff changeset
7670 (@code{gnus-article-describe-briefly}).
Dave Love <fx@gnu.org>
parents:
diff changeset
7671
Dave Love <fx@gnu.org>
parents:
diff changeset
7672 @item TAB
Dave Love <fx@gnu.org>
parents:
diff changeset
7673 @kindex TAB (Article)
Dave Love <fx@gnu.org>
parents:
diff changeset
7674 @findex gnus-article-next-button
Dave Love <fx@gnu.org>
parents:
diff changeset
7675 Go to the next button, if any (@code{gnus-article-next-button}). This
Dave Love <fx@gnu.org>
parents:
diff changeset
7676 only makes sense if you have buttonizing turned on.
Dave Love <fx@gnu.org>
parents:
diff changeset
7677
Dave Love <fx@gnu.org>
parents:
diff changeset
7678 @item M-TAB
Dave Love <fx@gnu.org>
parents:
diff changeset
7679 @kindex M-TAB (Article)
Dave Love <fx@gnu.org>
parents:
diff changeset
7680 @findex gnus-article-prev-button
Dave Love <fx@gnu.org>
parents:
diff changeset
7681 Go to the previous button, if any (@code{gnus-article-prev-button}).
Dave Love <fx@gnu.org>
parents:
diff changeset
7682
Dave Love <fx@gnu.org>
parents:
diff changeset
7683 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
7684
Dave Love <fx@gnu.org>
parents:
diff changeset
7685
Dave Love <fx@gnu.org>
parents:
diff changeset
7686 @node Misc Article
Dave Love <fx@gnu.org>
parents:
diff changeset
7687 @section Misc Article
Dave Love <fx@gnu.org>
parents:
diff changeset
7688
Dave Love <fx@gnu.org>
parents:
diff changeset
7689 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
7690
Dave Love <fx@gnu.org>
parents:
diff changeset
7691 @item gnus-single-article-buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
7692 @vindex gnus-single-article-buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
7693 If non-@code{nil}, use the same article buffer for all the groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
7694 (This is the default.) If @code{nil}, each group will have its own
Dave Love <fx@gnu.org>
parents:
diff changeset
7695 article buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
7696
Dave Love <fx@gnu.org>
parents:
diff changeset
7697 @vindex gnus-article-prepare-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
7698 @item gnus-article-prepare-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
7699 This hook is called right after the article has been inserted into the
Dave Love <fx@gnu.org>
parents:
diff changeset
7700 article buffer. It is mainly intended for functions that do something
Dave Love <fx@gnu.org>
parents:
diff changeset
7701 depending on the contents; it should probably not be used for changing
Dave Love <fx@gnu.org>
parents:
diff changeset
7702 the contents of the article buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
7703
Dave Love <fx@gnu.org>
parents:
diff changeset
7704 @vindex gnus-article-display-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
7705 @item gnus-article-display-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
7706 This hook is called as the last thing when displaying an article, and is
Dave Love <fx@gnu.org>
parents:
diff changeset
7707 intended for modifying the contents of the buffer, doing highlights,
Dave Love <fx@gnu.org>
parents:
diff changeset
7708 hiding headers, and the like.
Dave Love <fx@gnu.org>
parents:
diff changeset
7709
Dave Love <fx@gnu.org>
parents:
diff changeset
7710 @item gnus-article-mode-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
7711 @vindex gnus-article-mode-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
7712 Hook called in article mode buffers.
Dave Love <fx@gnu.org>
parents:
diff changeset
7713
Dave Love <fx@gnu.org>
parents:
diff changeset
7714 @item gnus-article-mode-syntax-table
Dave Love <fx@gnu.org>
parents:
diff changeset
7715 @vindex gnus-article-mode-syntax-table
Dave Love <fx@gnu.org>
parents:
diff changeset
7716 Syntax table used in article buffers. It is initialized from
Dave Love <fx@gnu.org>
parents:
diff changeset
7717 @code{text-mode-syntax-table}.
Dave Love <fx@gnu.org>
parents:
diff changeset
7718
Dave Love <fx@gnu.org>
parents:
diff changeset
7719 @vindex gnus-article-mode-line-format
Dave Love <fx@gnu.org>
parents:
diff changeset
7720 @item gnus-article-mode-line-format
Dave Love <fx@gnu.org>
parents:
diff changeset
7721 This variable is a format string along the same lines as
Dave Love <fx@gnu.org>
parents:
diff changeset
7722 @code{gnus-summary-mode-line-format} (@pxref{Mode Line Formatting}). It
Dave Love <fx@gnu.org>
parents:
diff changeset
7723 accepts the same format specifications as that variable, with one
Dave Love <fx@gnu.org>
parents:
diff changeset
7724 extension:
Dave Love <fx@gnu.org>
parents:
diff changeset
7725
Dave Love <fx@gnu.org>
parents:
diff changeset
7726 @table @samp
Dave Love <fx@gnu.org>
parents:
diff changeset
7727 @item w
Dave Love <fx@gnu.org>
parents:
diff changeset
7728 The @dfn{wash status} of the article. This is a short string with one
Dave Love <fx@gnu.org>
parents:
diff changeset
7729 character for each possible article wash operation that may have been
Dave Love <fx@gnu.org>
parents:
diff changeset
7730 performed.
Dave Love <fx@gnu.org>
parents:
diff changeset
7731 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
7732
Dave Love <fx@gnu.org>
parents:
diff changeset
7733 @vindex gnus-break-pages
Dave Love <fx@gnu.org>
parents:
diff changeset
7734
Dave Love <fx@gnu.org>
parents:
diff changeset
7735 @item gnus-break-pages
Dave Love <fx@gnu.org>
parents:
diff changeset
7736 Controls whether @dfn{page breaking} is to take place. If this variable
Dave Love <fx@gnu.org>
parents:
diff changeset
7737 is non-@code{nil}, the articles will be divided into pages whenever a
Dave Love <fx@gnu.org>
parents:
diff changeset
7738 page delimiter appears in the article. If this variable is @code{nil},
Dave Love <fx@gnu.org>
parents:
diff changeset
7739 paging will not be done.
Dave Love <fx@gnu.org>
parents:
diff changeset
7740
Dave Love <fx@gnu.org>
parents:
diff changeset
7741 @item gnus-page-delimiter
Dave Love <fx@gnu.org>
parents:
diff changeset
7742 @vindex gnus-page-delimiter
Dave Love <fx@gnu.org>
parents:
diff changeset
7743 This is the delimiter mentioned above. By default, it is @samp{^L}
Dave Love <fx@gnu.org>
parents:
diff changeset
7744 (formfeed).
Dave Love <fx@gnu.org>
parents:
diff changeset
7745 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
7746
Dave Love <fx@gnu.org>
parents:
diff changeset
7747
Dave Love <fx@gnu.org>
parents:
diff changeset
7748 @node Composing Messages
Dave Love <fx@gnu.org>
parents:
diff changeset
7749 @chapter Composing Messages
Dave Love <fx@gnu.org>
parents:
diff changeset
7750 @cindex composing messages
Dave Love <fx@gnu.org>
parents:
diff changeset
7751 @cindex messages
Dave Love <fx@gnu.org>
parents:
diff changeset
7752 @cindex mail
Dave Love <fx@gnu.org>
parents:
diff changeset
7753 @cindex sending mail
Dave Love <fx@gnu.org>
parents:
diff changeset
7754 @cindex reply
Dave Love <fx@gnu.org>
parents:
diff changeset
7755 @cindex followup
Dave Love <fx@gnu.org>
parents:
diff changeset
7756 @cindex post
Dave Love <fx@gnu.org>
parents:
diff changeset
7757
Dave Love <fx@gnu.org>
parents:
diff changeset
7758 @kindex C-c C-c (Post)
Dave Love <fx@gnu.org>
parents:
diff changeset
7759 All commands for posting and mailing will put you in a message buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
7760 where you can edit the article all you like, before you send the article
Dave Love <fx@gnu.org>
parents:
diff changeset
7761 by pressing @kbd{C-c C-c}. @xref{Top, , Top, message, The Message
Dave Love <fx@gnu.org>
parents:
diff changeset
7762 Manual}. If you are in a foreign news group, and you wish to post the
Dave Love <fx@gnu.org>
parents:
diff changeset
7763 article using the foreign server, you can give a prefix to @kbd{C-c C-c}
Dave Love <fx@gnu.org>
parents:
diff changeset
7764 to make Gnus try to post using the foreign server.
Dave Love <fx@gnu.org>
parents:
diff changeset
7765
Dave Love <fx@gnu.org>
parents:
diff changeset
7766 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
7767 * Mail:: Mailing and replying.
Dave Love <fx@gnu.org>
parents:
diff changeset
7768 * Post:: Posting and following up.
Dave Love <fx@gnu.org>
parents:
diff changeset
7769 * Posting Server:: What server should you post via?
Dave Love <fx@gnu.org>
parents:
diff changeset
7770 * Mail and Post:: Mailing and posting at the same time.
Dave Love <fx@gnu.org>
parents:
diff changeset
7771 * Archived Messages:: Where Gnus stores the messages you've sent.
Dave Love <fx@gnu.org>
parents:
diff changeset
7772 * Posting Styles:: An easier way to specify who you are.
Dave Love <fx@gnu.org>
parents:
diff changeset
7773 * Drafts:: Postponing messages and rejected messages.
Dave Love <fx@gnu.org>
parents:
diff changeset
7774 * Rejected Articles:: What happens if the server doesn't like your article?
Dave Love <fx@gnu.org>
parents:
diff changeset
7775 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
7776
Dave Love <fx@gnu.org>
parents:
diff changeset
7777 Also see @pxref{Canceling and Superseding} for information on how to
Dave Love <fx@gnu.org>
parents:
diff changeset
7778 remove articles you shouldn't have posted.
Dave Love <fx@gnu.org>
parents:
diff changeset
7779
Dave Love <fx@gnu.org>
parents:
diff changeset
7780
Dave Love <fx@gnu.org>
parents:
diff changeset
7781 @node Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
7782 @section Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
7783
Dave Love <fx@gnu.org>
parents:
diff changeset
7784 Variables for customizing outgoing mail:
Dave Love <fx@gnu.org>
parents:
diff changeset
7785
Dave Love <fx@gnu.org>
parents:
diff changeset
7786 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
7787 @item gnus-uu-digest-headers
Dave Love <fx@gnu.org>
parents:
diff changeset
7788 @vindex gnus-uu-digest-headers
Dave Love <fx@gnu.org>
parents:
diff changeset
7789 List of regexps to match headers included in digested messages. The
Dave Love <fx@gnu.org>
parents:
diff changeset
7790 headers will be included in the sequence they are matched.
Dave Love <fx@gnu.org>
parents:
diff changeset
7791
Dave Love <fx@gnu.org>
parents:
diff changeset
7792 @item gnus-add-to-list
Dave Love <fx@gnu.org>
parents:
diff changeset
7793 @vindex gnus-add-to-list
Dave Love <fx@gnu.org>
parents:
diff changeset
7794 If non-@code{nil}, add a @code{to-list} group parameter to mail groups
Dave Love <fx@gnu.org>
parents:
diff changeset
7795 that have none when you do a @kbd{a}.
Dave Love <fx@gnu.org>
parents:
diff changeset
7796
Dave Love <fx@gnu.org>
parents:
diff changeset
7797 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
7798
Dave Love <fx@gnu.org>
parents:
diff changeset
7799
Dave Love <fx@gnu.org>
parents:
diff changeset
7800 @node Post
Dave Love <fx@gnu.org>
parents:
diff changeset
7801 @section Post
Dave Love <fx@gnu.org>
parents:
diff changeset
7802
Dave Love <fx@gnu.org>
parents:
diff changeset
7803 Variables for composing news articles:
Dave Love <fx@gnu.org>
parents:
diff changeset
7804
Dave Love <fx@gnu.org>
parents:
diff changeset
7805 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
7806 @item gnus-sent-message-ids-file
Dave Love <fx@gnu.org>
parents:
diff changeset
7807 @vindex gnus-sent-message-ids-file
Dave Love <fx@gnu.org>
parents:
diff changeset
7808 Gnus will keep a @code{Message-ID} history file of all the mails it has
Dave Love <fx@gnu.org>
parents:
diff changeset
7809 sent. If it discovers that it has already sent a mail, it will ask the
Dave Love <fx@gnu.org>
parents:
diff changeset
7810 user whether to re-send the mail. (This is primarily useful when
Dave Love <fx@gnu.org>
parents:
diff changeset
7811 dealing with @sc{soup} packets and the like where one is apt to send the
Dave Love <fx@gnu.org>
parents:
diff changeset
7812 same packet multiple times.) This variable says what the name of this
Dave Love <fx@gnu.org>
parents:
diff changeset
7813 history file is. It is @file{~/News/Sent-Message-IDs} by default. Set
Dave Love <fx@gnu.org>
parents:
diff changeset
7814 this variable to @code{nil} if you don't want Gnus to keep a history
Dave Love <fx@gnu.org>
parents:
diff changeset
7815 file.
Dave Love <fx@gnu.org>
parents:
diff changeset
7816
Dave Love <fx@gnu.org>
parents:
diff changeset
7817 @item gnus-sent-message-ids-length
Dave Love <fx@gnu.org>
parents:
diff changeset
7818 @vindex gnus-sent-message-ids-length
Dave Love <fx@gnu.org>
parents:
diff changeset
7819 This variable says how many @code{Message-ID}s to keep in the history
Dave Love <fx@gnu.org>
parents:
diff changeset
7820 file. It is 1000 by default.
Dave Love <fx@gnu.org>
parents:
diff changeset
7821
Dave Love <fx@gnu.org>
parents:
diff changeset
7822 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
7823
Dave Love <fx@gnu.org>
parents:
diff changeset
7824
Dave Love <fx@gnu.org>
parents:
diff changeset
7825 @node Posting Server
Dave Love <fx@gnu.org>
parents:
diff changeset
7826 @section Posting Server
Dave Love <fx@gnu.org>
parents:
diff changeset
7827
Dave Love <fx@gnu.org>
parents:
diff changeset
7828 When you press those magical @kbd{C-c C-c} keys to ship off your latest
Dave Love <fx@gnu.org>
parents:
diff changeset
7829 (extremely intelligent, of course) article, where does it go?
Dave Love <fx@gnu.org>
parents:
diff changeset
7830
Dave Love <fx@gnu.org>
parents:
diff changeset
7831 Thank you for asking. I hate you.
Dave Love <fx@gnu.org>
parents:
diff changeset
7832
Dave Love <fx@gnu.org>
parents:
diff changeset
7833 @vindex gnus-post-method
Dave Love <fx@gnu.org>
parents:
diff changeset
7834
Dave Love <fx@gnu.org>
parents:
diff changeset
7835 It can be quite complicated. Normally, Gnus will use the same native
Dave Love <fx@gnu.org>
parents:
diff changeset
7836 server. However. If your native server doesn't allow posting, just
Dave Love <fx@gnu.org>
parents:
diff changeset
7837 reading, you probably want to use some other server to post your
Dave Love <fx@gnu.org>
parents:
diff changeset
7838 (extremely intelligent and fabulously interesting) articles. You can
Dave Love <fx@gnu.org>
parents:
diff changeset
7839 then set the @code{gnus-post-method} to some other method:
Dave Love <fx@gnu.org>
parents:
diff changeset
7840
Dave Love <fx@gnu.org>
parents:
diff changeset
7841 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
7842 (setq gnus-post-method '(nnspool ""))
Dave Love <fx@gnu.org>
parents:
diff changeset
7843 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
7844
Dave Love <fx@gnu.org>
parents:
diff changeset
7845 Now, if you've done this, and then this server rejects your article, or
Dave Love <fx@gnu.org>
parents:
diff changeset
7846 this server is down, what do you do then? To override this variable you
Dave Love <fx@gnu.org>
parents:
diff changeset
7847 can use a non-zero prefix to the @kbd{C-c C-c} command to force using
Dave Love <fx@gnu.org>
parents:
diff changeset
7848 the ``current'' server for posting.
Dave Love <fx@gnu.org>
parents:
diff changeset
7849
Dave Love <fx@gnu.org>
parents:
diff changeset
7850 If you give a zero prefix (i.e., @kbd{C-u 0 C-c C-c}) to that command,
Dave Love <fx@gnu.org>
parents:
diff changeset
7851 Gnus will prompt you for what method to use for posting.
Dave Love <fx@gnu.org>
parents:
diff changeset
7852
Dave Love <fx@gnu.org>
parents:
diff changeset
7853 You can also set @code{gnus-post-method} to a list of select methods.
Dave Love <fx@gnu.org>
parents:
diff changeset
7854 If that's the case, Gnus will always prompt you for what method to use
Dave Love <fx@gnu.org>
parents:
diff changeset
7855 for posting.
Dave Love <fx@gnu.org>
parents:
diff changeset
7856
Dave Love <fx@gnu.org>
parents:
diff changeset
7857 Finally, if you want to always post using the same select method as
Dave Love <fx@gnu.org>
parents:
diff changeset
7858 you're reading from (which might be convenient if you're reading lots of
Dave Love <fx@gnu.org>
parents:
diff changeset
7859 groups from different private servers), you can set this variable to
Dave Love <fx@gnu.org>
parents:
diff changeset
7860 @code{current}.
Dave Love <fx@gnu.org>
parents:
diff changeset
7861
Dave Love <fx@gnu.org>
parents:
diff changeset
7862
Dave Love <fx@gnu.org>
parents:
diff changeset
7863 @node Mail and Post
Dave Love <fx@gnu.org>
parents:
diff changeset
7864 @section Mail and Post
Dave Love <fx@gnu.org>
parents:
diff changeset
7865
Dave Love <fx@gnu.org>
parents:
diff changeset
7866 Here's a list of variables relevant to both mailing and
Dave Love <fx@gnu.org>
parents:
diff changeset
7867 posting:
Dave Love <fx@gnu.org>
parents:
diff changeset
7868
Dave Love <fx@gnu.org>
parents:
diff changeset
7869 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
7870 @item gnus-mailing-list-groups
Dave Love <fx@gnu.org>
parents:
diff changeset
7871 @findex gnus-mailing-list-groups
Dave Love <fx@gnu.org>
parents:
diff changeset
7872 @cindex mailing lists
Dave Love <fx@gnu.org>
parents:
diff changeset
7873
Dave Love <fx@gnu.org>
parents:
diff changeset
7874 If your news server offers groups that are really mailing lists
Dave Love <fx@gnu.org>
parents:
diff changeset
7875 gatewayed to the @sc{nntp} server, you can read those groups without
Dave Love <fx@gnu.org>
parents:
diff changeset
7876 problems, but you can't post/followup to them without some difficulty.
Dave Love <fx@gnu.org>
parents:
diff changeset
7877 One solution is to add a @code{to-address} to the group parameters
Dave Love <fx@gnu.org>
parents:
diff changeset
7878 (@pxref{Group Parameters}). An easier thing to do is set the
Dave Love <fx@gnu.org>
parents:
diff changeset
7879 @code{gnus-mailing-list-groups} to a regexp that matches the groups that
Dave Love <fx@gnu.org>
parents:
diff changeset
7880 really are mailing lists. Then, at least, followups to the mailing
Dave Love <fx@gnu.org>
parents:
diff changeset
7881 lists will work most of the time. Posting to these groups (@kbd{a}) is
Dave Love <fx@gnu.org>
parents:
diff changeset
7882 still a pain, though.
Dave Love <fx@gnu.org>
parents:
diff changeset
7883
Dave Love <fx@gnu.org>
parents:
diff changeset
7884 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
7885
Dave Love <fx@gnu.org>
parents:
diff changeset
7886 You may want to do spell-checking on messages that you send out. Or, if
Dave Love <fx@gnu.org>
parents:
diff changeset
7887 you don't want to spell-check by hand, you could add automatic
Dave Love <fx@gnu.org>
parents:
diff changeset
7888 spell-checking via the @code{ispell} package:
Dave Love <fx@gnu.org>
parents:
diff changeset
7889
Dave Love <fx@gnu.org>
parents:
diff changeset
7890 @cindex ispell
Dave Love <fx@gnu.org>
parents:
diff changeset
7891 @findex ispell-message
Dave Love <fx@gnu.org>
parents:
diff changeset
7892 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
7893 (add-hook 'message-send-hook 'ispell-message)
Dave Love <fx@gnu.org>
parents:
diff changeset
7894 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
7895
Dave Love <fx@gnu.org>
parents:
diff changeset
7896
Dave Love <fx@gnu.org>
parents:
diff changeset
7897 @node Archived Messages
Dave Love <fx@gnu.org>
parents:
diff changeset
7898 @section Archived Messages
Dave Love <fx@gnu.org>
parents:
diff changeset
7899 @cindex archived messages
Dave Love <fx@gnu.org>
parents:
diff changeset
7900 @cindex sent messages
Dave Love <fx@gnu.org>
parents:
diff changeset
7901
Dave Love <fx@gnu.org>
parents:
diff changeset
7902 Gnus provides a few different methods for storing the mail and news you
Dave Love <fx@gnu.org>
parents:
diff changeset
7903 send. The default method is to use the @dfn{archive virtual server} to
Dave Love <fx@gnu.org>
parents:
diff changeset
7904 store the messages. If you want to disable this completely, the
Dave Love <fx@gnu.org>
parents:
diff changeset
7905 @code{gnus-message-archive-group} variable should be @code{nil}, which
Dave Love <fx@gnu.org>
parents:
diff changeset
7906 is the default.
Dave Love <fx@gnu.org>
parents:
diff changeset
7907
Dave Love <fx@gnu.org>
parents:
diff changeset
7908 @vindex gnus-message-archive-method
Dave Love <fx@gnu.org>
parents:
diff changeset
7909 @code{gnus-message-archive-method} says what virtual server Gnus is to
Dave Love <fx@gnu.org>
parents:
diff changeset
7910 use to store sent messages. The default is:
Dave Love <fx@gnu.org>
parents:
diff changeset
7911
Dave Love <fx@gnu.org>
parents:
diff changeset
7912 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
7913 (nnfolder "archive"
Dave Love <fx@gnu.org>
parents:
diff changeset
7914 (nnfolder-directory "~/Mail/archive")
Dave Love <fx@gnu.org>
parents:
diff changeset
7915 (nnfolder-active-file "~/Mail/archive/active")
Dave Love <fx@gnu.org>
parents:
diff changeset
7916 (nnfolder-get-new-mail nil)
Dave Love <fx@gnu.org>
parents:
diff changeset
7917 (nnfolder-inhibit-expiry t))
Dave Love <fx@gnu.org>
parents:
diff changeset
7918 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
7919
Dave Love <fx@gnu.org>
parents:
diff changeset
7920 You can, however, use any mail select method (@code{nnml},
Dave Love <fx@gnu.org>
parents:
diff changeset
7921 @code{nnmbox}, etc.). @code{nnfolder} is a quite likeable select method
Dave Love <fx@gnu.org>
parents:
diff changeset
7922 for doing this sort of thing, though. If you don't like the default
Dave Love <fx@gnu.org>
parents:
diff changeset
7923 directory chosen, you could say something like:
Dave Love <fx@gnu.org>
parents:
diff changeset
7924
Dave Love <fx@gnu.org>
parents:
diff changeset
7925 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
7926 (setq gnus-message-archive-method
Dave Love <fx@gnu.org>
parents:
diff changeset
7927 '(nnfolder "archive"
Dave Love <fx@gnu.org>
parents:
diff changeset
7928 (nnfolder-inhibit-expiry t)
Dave Love <fx@gnu.org>
parents:
diff changeset
7929 (nnfolder-active-file "~/News/sent-mail/active")
Dave Love <fx@gnu.org>
parents:
diff changeset
7930 (nnfolder-directory "~/News/sent-mail/")))
Dave Love <fx@gnu.org>
parents:
diff changeset
7931 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
7932
Dave Love <fx@gnu.org>
parents:
diff changeset
7933 @vindex gnus-message-archive-group
Dave Love <fx@gnu.org>
parents:
diff changeset
7934 @cindex Gcc
Dave Love <fx@gnu.org>
parents:
diff changeset
7935 Gnus will insert @code{Gcc} headers in all outgoing messages that point
Dave Love <fx@gnu.org>
parents:
diff changeset
7936 to one or more group(s) on that server. Which group to use is
Dave Love <fx@gnu.org>
parents:
diff changeset
7937 determined by the @code{gnus-message-archive-group} variable.
Dave Love <fx@gnu.org>
parents:
diff changeset
7938
Dave Love <fx@gnu.org>
parents:
diff changeset
7939 This variable can be used to do the following:
Dave Love <fx@gnu.org>
parents:
diff changeset
7940
Dave Love <fx@gnu.org>
parents:
diff changeset
7941 @itemize @bullet
Dave Love <fx@gnu.org>
parents:
diff changeset
7942 @item a string
Dave Love <fx@gnu.org>
parents:
diff changeset
7943 Messages will be saved in that group.
Dave Love <fx@gnu.org>
parents:
diff changeset
7944 @item a list of strings
Dave Love <fx@gnu.org>
parents:
diff changeset
7945 Messages will be saved in all those groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
7946 @item an alist of regexps, functions and forms
Dave Love <fx@gnu.org>
parents:
diff changeset
7947 When a key ``matches'', the result is used.
Dave Love <fx@gnu.org>
parents:
diff changeset
7948 @item @code{nil}
Dave Love <fx@gnu.org>
parents:
diff changeset
7949 No message archiving will take place. This is the default.
Dave Love <fx@gnu.org>
parents:
diff changeset
7950 @end itemize
Dave Love <fx@gnu.org>
parents:
diff changeset
7951
Dave Love <fx@gnu.org>
parents:
diff changeset
7952 Let's illustrate:
Dave Love <fx@gnu.org>
parents:
diff changeset
7953
Dave Love <fx@gnu.org>
parents:
diff changeset
7954 Just saving to a single group called @samp{MisK}:
Dave Love <fx@gnu.org>
parents:
diff changeset
7955 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
7956 (setq gnus-message-archive-group "MisK")
Dave Love <fx@gnu.org>
parents:
diff changeset
7957 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
7958
Dave Love <fx@gnu.org>
parents:
diff changeset
7959 Saving to two groups, @samp{MisK} and @samp{safe}:
Dave Love <fx@gnu.org>
parents:
diff changeset
7960 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
7961 (setq gnus-message-archive-group '("MisK" "safe"))
Dave Love <fx@gnu.org>
parents:
diff changeset
7962 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
7963
Dave Love <fx@gnu.org>
parents:
diff changeset
7964 Save to different groups based on what group you are in:
Dave Love <fx@gnu.org>
parents:
diff changeset
7965 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
7966 (setq gnus-message-archive-group
Dave Love <fx@gnu.org>
parents:
diff changeset
7967 '(("^alt" "sent-to-alt")
Dave Love <fx@gnu.org>
parents:
diff changeset
7968 ("mail" "sent-to-mail")
Dave Love <fx@gnu.org>
parents:
diff changeset
7969 (".*" "sent-to-misc")))
Dave Love <fx@gnu.org>
parents:
diff changeset
7970 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
7971
Dave Love <fx@gnu.org>
parents:
diff changeset
7972 More complex stuff:
Dave Love <fx@gnu.org>
parents:
diff changeset
7973 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
7974 (setq gnus-message-archive-group
Dave Love <fx@gnu.org>
parents:
diff changeset
7975 '((if (message-news-p)
Dave Love <fx@gnu.org>
parents:
diff changeset
7976 "misc-news"
Dave Love <fx@gnu.org>
parents:
diff changeset
7977 "misc-mail")))
Dave Love <fx@gnu.org>
parents:
diff changeset
7978 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
7979
Dave Love <fx@gnu.org>
parents:
diff changeset
7980 How about storing all news messages in one file, but storing all mail
Dave Love <fx@gnu.org>
parents:
diff changeset
7981 messages in one file per month:
Dave Love <fx@gnu.org>
parents:
diff changeset
7982
Dave Love <fx@gnu.org>
parents:
diff changeset
7983 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
7984 (setq gnus-message-archive-group
Dave Love <fx@gnu.org>
parents:
diff changeset
7985 '((if (message-news-p)
Dave Love <fx@gnu.org>
parents:
diff changeset
7986 "misc-news"
Dave Love <fx@gnu.org>
parents:
diff changeset
7987 (concat "mail." (format-time-string
Dave Love <fx@gnu.org>
parents:
diff changeset
7988 "%Y-%m" (current-time))))))
Dave Love <fx@gnu.org>
parents:
diff changeset
7989 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
7990
Dave Love <fx@gnu.org>
parents:
diff changeset
7991 (XEmacs 19.13 doesn't have @code{format-time-string}, so you'll have to
Dave Love <fx@gnu.org>
parents:
diff changeset
7992 use a different value for @code{gnus-message-archive-group} there.)
Dave Love <fx@gnu.org>
parents:
diff changeset
7993
Dave Love <fx@gnu.org>
parents:
diff changeset
7994 Now, when you send a message off, it will be stored in the appropriate
Dave Love <fx@gnu.org>
parents:
diff changeset
7995 group. (If you want to disable storing for just one particular message,
Dave Love <fx@gnu.org>
parents:
diff changeset
7996 you can just remove the @code{Gcc} header that has been inserted.) The
Dave Love <fx@gnu.org>
parents:
diff changeset
7997 archive group will appear in the group buffer the next time you start
Dave Love <fx@gnu.org>
parents:
diff changeset
7998 Gnus, or the next time you press @kbd{F} in the group buffer. You can
Dave Love <fx@gnu.org>
parents:
diff changeset
7999 enter it and read the articles in it just like you'd read any other
Dave Love <fx@gnu.org>
parents:
diff changeset
8000 group. If the group gets really big and annoying, you can simply rename
Dave Love <fx@gnu.org>
parents:
diff changeset
8001 if (using @kbd{G r} in the group buffer) to something
Dave Love <fx@gnu.org>
parents:
diff changeset
8002 nice---@samp{misc-mail-september-1995}, or whatever. New messages will
Dave Love <fx@gnu.org>
parents:
diff changeset
8003 continue to be stored in the old (now empty) group.
Dave Love <fx@gnu.org>
parents:
diff changeset
8004
Dave Love <fx@gnu.org>
parents:
diff changeset
8005 That's the default method of archiving sent messages. Gnus offers a
Dave Love <fx@gnu.org>
parents:
diff changeset
8006 different way for the people who don't like the default method. In that
Dave Love <fx@gnu.org>
parents:
diff changeset
8007 case you should set @code{gnus-message-archive-group} to @code{nil};
Dave Love <fx@gnu.org>
parents:
diff changeset
8008 this will disable archiving.
Dave Love <fx@gnu.org>
parents:
diff changeset
8009
Dave Love <fx@gnu.org>
parents:
diff changeset
8010 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
8011 @item gnus-outgoing-message-group
Dave Love <fx@gnu.org>
parents:
diff changeset
8012 @vindex gnus-outgoing-message-group
Dave Love <fx@gnu.org>
parents:
diff changeset
8013 All outgoing messages will be put in this group. If you want to store
Dave Love <fx@gnu.org>
parents:
diff changeset
8014 all your outgoing mail and articles in the group @samp{nnml:archive},
Dave Love <fx@gnu.org>
parents:
diff changeset
8015 you set this variable to that value. This variable can also be a list of
Dave Love <fx@gnu.org>
parents:
diff changeset
8016 group names.
Dave Love <fx@gnu.org>
parents:
diff changeset
8017
Dave Love <fx@gnu.org>
parents:
diff changeset
8018 If you want to have greater control over what group to put each
Dave Love <fx@gnu.org>
parents:
diff changeset
8019 message in, you can set this variable to a function that checks the
Dave Love <fx@gnu.org>
parents:
diff changeset
8020 current newsgroup name and then returns a suitable group name (or list
Dave Love <fx@gnu.org>
parents:
diff changeset
8021 of names).
Dave Love <fx@gnu.org>
parents:
diff changeset
8022
Dave Love <fx@gnu.org>
parents:
diff changeset
8023 This variable can be used instead of @code{gnus-message-archive-group},
Dave Love <fx@gnu.org>
parents:
diff changeset
8024 but the latter is the preferred method.
Dave Love <fx@gnu.org>
parents:
diff changeset
8025 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
8026
Dave Love <fx@gnu.org>
parents:
diff changeset
8027
Dave Love <fx@gnu.org>
parents:
diff changeset
8028 @node Posting Styles
Dave Love <fx@gnu.org>
parents:
diff changeset
8029 @section Posting Styles
Dave Love <fx@gnu.org>
parents:
diff changeset
8030 @cindex posting styles
Dave Love <fx@gnu.org>
parents:
diff changeset
8031 @cindex styles
Dave Love <fx@gnu.org>
parents:
diff changeset
8032
Dave Love <fx@gnu.org>
parents:
diff changeset
8033 All them variables, they make my head swim.
Dave Love <fx@gnu.org>
parents:
diff changeset
8034
Dave Love <fx@gnu.org>
parents:
diff changeset
8035 So what if you want a different @code{Organization} and signature based
Dave Love <fx@gnu.org>
parents:
diff changeset
8036 on what groups you post to? And you post both from your home machine
Dave Love <fx@gnu.org>
parents:
diff changeset
8037 and your work machine, and you want different @code{From} lines, and so
Dave Love <fx@gnu.org>
parents:
diff changeset
8038 on?
Dave Love <fx@gnu.org>
parents:
diff changeset
8039
Dave Love <fx@gnu.org>
parents:
diff changeset
8040 @vindex gnus-posting-styles
Dave Love <fx@gnu.org>
parents:
diff changeset
8041 One way to do stuff like that is to write clever hooks that change the
Dave Love <fx@gnu.org>
parents:
diff changeset
8042 variables you need to have changed. That's a bit boring, so somebody
Dave Love <fx@gnu.org>
parents:
diff changeset
8043 came up with the bright idea of letting the user specify these things in
Dave Love <fx@gnu.org>
parents:
diff changeset
8044 a handy alist. Here's an example of a @code{gnus-posting-styles}
Dave Love <fx@gnu.org>
parents:
diff changeset
8045 variable:
Dave Love <fx@gnu.org>
parents:
diff changeset
8046
Dave Love <fx@gnu.org>
parents:
diff changeset
8047 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
8048 ((".*"
Dave Love <fx@gnu.org>
parents:
diff changeset
8049 (signature "Peace and happiness")
Dave Love <fx@gnu.org>
parents:
diff changeset
8050 (organization "What me?"))
Dave Love <fx@gnu.org>
parents:
diff changeset
8051 ("^comp"
Dave Love <fx@gnu.org>
parents:
diff changeset
8052 (signature "Death to everybody"))
Dave Love <fx@gnu.org>
parents:
diff changeset
8053 ("comp.emacs.i-love-it"
Dave Love <fx@gnu.org>
parents:
diff changeset
8054 (organization "Emacs is it")))
Dave Love <fx@gnu.org>
parents:
diff changeset
8055 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
8056
Dave Love <fx@gnu.org>
parents:
diff changeset
8057 As you might surmise from this example, this alist consists of several
Dave Love <fx@gnu.org>
parents:
diff changeset
8058 @dfn{styles}. Each style will be applicable if the first element
Dave Love <fx@gnu.org>
parents:
diff changeset
8059 ``matches'', in some form or other. The entire alist will be iterated
Dave Love <fx@gnu.org>
parents:
diff changeset
8060 over, from the beginning towards the end, and each match will be
Dave Love <fx@gnu.org>
parents:
diff changeset
8061 applied, which means that attributes in later styles that match override
Dave Love <fx@gnu.org>
parents:
diff changeset
8062 the same attributes in earlier matching styles. So
Dave Love <fx@gnu.org>
parents:
diff changeset
8063 @samp{comp.programming.literate} will have the @samp{Death to everybody}
Dave Love <fx@gnu.org>
parents:
diff changeset
8064 signature and the @samp{What me?} @code{Organization} header.
Dave Love <fx@gnu.org>
parents:
diff changeset
8065
Dave Love <fx@gnu.org>
parents:
diff changeset
8066 The first element in each style is called the @code{match}. If it's a
Dave Love <fx@gnu.org>
parents:
diff changeset
8067 string, then Gnus will try to regexp match it against the group name.
Dave Love <fx@gnu.org>
parents:
diff changeset
8068 If it's a function symbol, that function will be called with no
Dave Love <fx@gnu.org>
parents:
diff changeset
8069 arguments. If it's a variable symbol, then the variable will be
Dave Love <fx@gnu.org>
parents:
diff changeset
8070 referenced. If it's a list, then that list will be @code{eval}ed. In
Dave Love <fx@gnu.org>
parents:
diff changeset
8071 any case, if this returns a non-@code{nil} value, then the style is said
Dave Love <fx@gnu.org>
parents:
diff changeset
8072 to @dfn{match}.
Dave Love <fx@gnu.org>
parents:
diff changeset
8073
Dave Love <fx@gnu.org>
parents:
diff changeset
8074 Each style may contain a arbitrary amount of @dfn{attributes}. Each
26290
df10644e22b5 Fix complaints from makeinfo 4.0.
Dave Love <fx@gnu.org>
parents: 25829
diff changeset
8075 attribute consists of a @code{(@var{name} . @var{value})} pair. The attribute name
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
8076 can be one of @code{signature}, @code{signature-file},
Dave Love <fx@gnu.org>
parents:
diff changeset
8077 @code{organization}, @code{address}, @code{name} or @code{body}. The
Dave Love <fx@gnu.org>
parents:
diff changeset
8078 attribute name can also be a string. In that case, this will be used as
Dave Love <fx@gnu.org>
parents:
diff changeset
8079 a header name, and the value will be inserted in the headers of the
Dave Love <fx@gnu.org>
parents:
diff changeset
8080 article.
Dave Love <fx@gnu.org>
parents:
diff changeset
8081
Dave Love <fx@gnu.org>
parents:
diff changeset
8082 The attribute value can be a string (used verbatim), a function (the
Dave Love <fx@gnu.org>
parents:
diff changeset
8083 return value will be used), a variable (its value will be used) or a
Dave Love <fx@gnu.org>
parents:
diff changeset
8084 list (it will be @code{eval}ed and the return value will be used).
Dave Love <fx@gnu.org>
parents:
diff changeset
8085
Dave Love <fx@gnu.org>
parents:
diff changeset
8086 If you wish to check whether the message you are about to compose is
Dave Love <fx@gnu.org>
parents:
diff changeset
8087 meant to be a news article or a mail message, you can check the values
Dave Love <fx@gnu.org>
parents:
diff changeset
8088 of the two dynamically bound variables @code{message-this-is-news} and
Dave Love <fx@gnu.org>
parents:
diff changeset
8089 @code{message-this-is-mail}.
Dave Love <fx@gnu.org>
parents:
diff changeset
8090
Dave Love <fx@gnu.org>
parents:
diff changeset
8091 @vindex message-this-is-mail
Dave Love <fx@gnu.org>
parents:
diff changeset
8092 @vindex message-this-is-news
Dave Love <fx@gnu.org>
parents:
diff changeset
8093
Dave Love <fx@gnu.org>
parents:
diff changeset
8094 So here's a new example:
Dave Love <fx@gnu.org>
parents:
diff changeset
8095
Dave Love <fx@gnu.org>
parents:
diff changeset
8096 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
8097 (setq gnus-posting-styles
Dave Love <fx@gnu.org>
parents:
diff changeset
8098 '((".*"
Dave Love <fx@gnu.org>
parents:
diff changeset
8099 (signature-file "~/.signature")
Dave Love <fx@gnu.org>
parents:
diff changeset
8100 (name "User Name")
Dave Love <fx@gnu.org>
parents:
diff changeset
8101 ("X-Home-Page" (getenv "WWW_HOME"))
Dave Love <fx@gnu.org>
parents:
diff changeset
8102 (organization "People's Front Against MWM"))
Dave Love <fx@gnu.org>
parents:
diff changeset
8103 ("^rec.humor"
Dave Love <fx@gnu.org>
parents:
diff changeset
8104 (signature my-funny-signature-randomizer))
Dave Love <fx@gnu.org>
parents:
diff changeset
8105 ((equal (system-name) "gnarly")
Dave Love <fx@gnu.org>
parents:
diff changeset
8106 (signature my-quote-randomizer))
Dave Love <fx@gnu.org>
parents:
diff changeset
8107 (message-this-is-news
Dave Love <fx@gnu.org>
parents:
diff changeset
8108 (signature my-news-signature))
Dave Love <fx@gnu.org>
parents:
diff changeset
8109 (posting-from-work-p
Dave Love <fx@gnu.org>
parents:
diff changeset
8110 (signature-file "~/.work-signature")
Dave Love <fx@gnu.org>
parents:
diff changeset
8111 (address "user@@bar.foo")
Dave Love <fx@gnu.org>
parents:
diff changeset
8112 (body "You are fired.\n\nSincerely, your boss.")
Dave Love <fx@gnu.org>
parents:
diff changeset
8113 (organization "Important Work, Inc"))
Dave Love <fx@gnu.org>
parents:
diff changeset
8114 ("^nn.+:"
Dave Love <fx@gnu.org>
parents:
diff changeset
8115 (signature-file "~/.mail-signature"))))
Dave Love <fx@gnu.org>
parents:
diff changeset
8116 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
8117
Dave Love <fx@gnu.org>
parents:
diff changeset
8118
Dave Love <fx@gnu.org>
parents:
diff changeset
8119 @node Drafts
Dave Love <fx@gnu.org>
parents:
diff changeset
8120 @section Drafts
Dave Love <fx@gnu.org>
parents:
diff changeset
8121 @cindex drafts
Dave Love <fx@gnu.org>
parents:
diff changeset
8122
Dave Love <fx@gnu.org>
parents:
diff changeset
8123 If you are writing a message (mail or news) and suddenly remember that
Dave Love <fx@gnu.org>
parents:
diff changeset
8124 you have a steak in the oven (or some pesto in the food processor, you
Dave Love <fx@gnu.org>
parents:
diff changeset
8125 craaazy vegetarians), you'll probably wish there was a method to save
Dave Love <fx@gnu.org>
parents:
diff changeset
8126 the message you are writing so that you can continue editing it some
Dave Love <fx@gnu.org>
parents:
diff changeset
8127 other day, and send it when you feel its finished.
Dave Love <fx@gnu.org>
parents:
diff changeset
8128
Dave Love <fx@gnu.org>
parents:
diff changeset
8129 Well, don't worry about it. Whenever you start composing a message of
Dave Love <fx@gnu.org>
parents:
diff changeset
8130 some sort using the Gnus mail and post commands, the buffer you get will
Dave Love <fx@gnu.org>
parents:
diff changeset
8131 automatically associate to an article in a special @dfn{draft} group.
Dave Love <fx@gnu.org>
parents:
diff changeset
8132 If you save the buffer the normal way (@kbd{C-x C-s}, for instance), the
Dave Love <fx@gnu.org>
parents:
diff changeset
8133 article will be saved there. (Auto-save files also go to the draft
Dave Love <fx@gnu.org>
parents:
diff changeset
8134 group.)
Dave Love <fx@gnu.org>
parents:
diff changeset
8135
Dave Love <fx@gnu.org>
parents:
diff changeset
8136 @cindex nndraft
Dave Love <fx@gnu.org>
parents:
diff changeset
8137 @vindex nndraft-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
8138 The draft group is a special group (which is implemented as an
Dave Love <fx@gnu.org>
parents:
diff changeset
8139 @code{nndraft} group, if you absolutely have to know) called
Dave Love <fx@gnu.org>
parents:
diff changeset
8140 @samp{nndraft:drafts}. The variable @code{nndraft-directory} says where
Dave Love <fx@gnu.org>
parents:
diff changeset
8141 @code{nndraft} is to store its files. What makes this group special is
Dave Love <fx@gnu.org>
parents:
diff changeset
8142 that you can't tick any articles in it or mark any articles as
Dave Love <fx@gnu.org>
parents:
diff changeset
8143 read---all articles in the group are permanently unread.
Dave Love <fx@gnu.org>
parents:
diff changeset
8144
Dave Love <fx@gnu.org>
parents:
diff changeset
8145 If the group doesn't exist, it will be created and you'll be subscribed
Dave Love <fx@gnu.org>
parents:
diff changeset
8146 to it. The only way to make it disappear from the Group buffer is to
Dave Love <fx@gnu.org>
parents:
diff changeset
8147 unsubscribe it.
Dave Love <fx@gnu.org>
parents:
diff changeset
8148
Dave Love <fx@gnu.org>
parents:
diff changeset
8149 @c @findex gnus-dissociate-buffer-from-draft
Dave Love <fx@gnu.org>
parents:
diff changeset
8150 @c @kindex C-c M-d (Mail)
Dave Love <fx@gnu.org>
parents:
diff changeset
8151 @c @kindex C-c M-d (Post)
Dave Love <fx@gnu.org>
parents:
diff changeset
8152 @c @findex gnus-associate-buffer-with-draft
Dave Love <fx@gnu.org>
parents:
diff changeset
8153 @c @kindex C-c C-d (Mail)
Dave Love <fx@gnu.org>
parents:
diff changeset
8154 @c @kindex C-c C-d (Post)
Dave Love <fx@gnu.org>
parents:
diff changeset
8155 @c If you're writing some super-secret message that you later want to
Dave Love <fx@gnu.org>
parents:
diff changeset
8156 @c encode with PGP before sending, you may wish to turn the auto-saving
Dave Love <fx@gnu.org>
parents:
diff changeset
8157 @c (and association with the draft group) off. You never know who might be
Dave Love <fx@gnu.org>
parents:
diff changeset
8158 @c interested in reading all your extremely valuable and terribly horrible
Dave Love <fx@gnu.org>
parents:
diff changeset
8159 @c and interesting secrets. The @kbd{C-c M-d}
Dave Love <fx@gnu.org>
parents:
diff changeset
8160 @c (@code{gnus-dissociate-buffer-from-draft}) command does that for you.
Dave Love <fx@gnu.org>
parents:
diff changeset
8161 @c If you change your mind and want to turn the auto-saving back on again,
Dave Love <fx@gnu.org>
parents:
diff changeset
8162 @c @kbd{C-c C-d} (@code{gnus-associate-buffer-with-draft} does that.
Dave Love <fx@gnu.org>
parents:
diff changeset
8163 @c
Dave Love <fx@gnu.org>
parents:
diff changeset
8164 @c @vindex gnus-use-draft
Dave Love <fx@gnu.org>
parents:
diff changeset
8165 @c To leave association with the draft group off by default, set
Dave Love <fx@gnu.org>
parents:
diff changeset
8166 @c @code{gnus-use-draft} to @code{nil}. It is @code{t} by default.
Dave Love <fx@gnu.org>
parents:
diff changeset
8167
Dave Love <fx@gnu.org>
parents:
diff changeset
8168 @findex gnus-draft-edit-message
Dave Love <fx@gnu.org>
parents:
diff changeset
8169 @kindex D e (Draft)
Dave Love <fx@gnu.org>
parents:
diff changeset
8170 When you want to continue editing the article, you simply enter the
Dave Love <fx@gnu.org>
parents:
diff changeset
8171 draft group and push @kbd{D e} (@code{gnus-draft-edit-message}) to do
Dave Love <fx@gnu.org>
parents:
diff changeset
8172 that. You will be placed in a buffer where you left off.
Dave Love <fx@gnu.org>
parents:
diff changeset
8173
Dave Love <fx@gnu.org>
parents:
diff changeset
8174 Rejected articles will also be put in this draft group (@pxref{Rejected
Dave Love <fx@gnu.org>
parents:
diff changeset
8175 Articles}).
Dave Love <fx@gnu.org>
parents:
diff changeset
8176
Dave Love <fx@gnu.org>
parents:
diff changeset
8177 @findex gnus-draft-send-all-messages
Dave Love <fx@gnu.org>
parents:
diff changeset
8178 @findex gnus-draft-send-message
Dave Love <fx@gnu.org>
parents:
diff changeset
8179 If you have lots of rejected messages you want to post (or mail) without
Dave Love <fx@gnu.org>
parents:
diff changeset
8180 doing further editing, you can use the @kbd{D s} command
Dave Love <fx@gnu.org>
parents:
diff changeset
8181 (@code{gnus-draft-send-message}). This command understands the
Dave Love <fx@gnu.org>
parents:
diff changeset
8182 process/prefix convention (@pxref{Process/Prefix}). The @kbd{D S}
Dave Love <fx@gnu.org>
parents:
diff changeset
8183 command (@code{gnus-draft-send-all-messages}) will ship off all messages
Dave Love <fx@gnu.org>
parents:
diff changeset
8184 in the buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
8185
Dave Love <fx@gnu.org>
parents:
diff changeset
8186 If you have some messages that you wish not to send, you can use the
Dave Love <fx@gnu.org>
parents:
diff changeset
8187 @kbd{D t} (@code{gnus-draft-toggle-sending}) command to mark the message
Dave Love <fx@gnu.org>
parents:
diff changeset
8188 as unsendable. This is a toggling command.
Dave Love <fx@gnu.org>
parents:
diff changeset
8189
Dave Love <fx@gnu.org>
parents:
diff changeset
8190
Dave Love <fx@gnu.org>
parents:
diff changeset
8191 @node Rejected Articles
Dave Love <fx@gnu.org>
parents:
diff changeset
8192 @section Rejected Articles
Dave Love <fx@gnu.org>
parents:
diff changeset
8193 @cindex rejected articles
Dave Love <fx@gnu.org>
parents:
diff changeset
8194
Dave Love <fx@gnu.org>
parents:
diff changeset
8195 Sometimes a news server will reject an article. Perhaps the server
Dave Love <fx@gnu.org>
parents:
diff changeset
8196 doesn't like your face. Perhaps it just feels miserable. Perhaps
Dave Love <fx@gnu.org>
parents:
diff changeset
8197 @emph{there be demons}. Perhaps you have included too much cited text.
Dave Love <fx@gnu.org>
parents:
diff changeset
8198 Perhaps the disk is full. Perhaps the server is down.
Dave Love <fx@gnu.org>
parents:
diff changeset
8199
Dave Love <fx@gnu.org>
parents:
diff changeset
8200 These situations are, of course, totally beyond the control of Gnus.
Dave Love <fx@gnu.org>
parents:
diff changeset
8201 (Gnus, of course, loves the way you look, always feels great, has angels
Dave Love <fx@gnu.org>
parents:
diff changeset
8202 fluttering around inside of it, doesn't care about how much cited text
Dave Love <fx@gnu.org>
parents:
diff changeset
8203 you include, never runs full and never goes down.) So Gnus saves these
Dave Love <fx@gnu.org>
parents:
diff changeset
8204 articles until some later time when the server feels better.
Dave Love <fx@gnu.org>
parents:
diff changeset
8205
Dave Love <fx@gnu.org>
parents:
diff changeset
8206 The rejected articles will automatically be put in a special draft group
Dave Love <fx@gnu.org>
parents:
diff changeset
8207 (@pxref{Drafts}). When the server comes back up again, you'd then
Dave Love <fx@gnu.org>
parents:
diff changeset
8208 typically enter that group and send all the articles off.
Dave Love <fx@gnu.org>
parents:
diff changeset
8209
Dave Love <fx@gnu.org>
parents:
diff changeset
8210
Dave Love <fx@gnu.org>
parents:
diff changeset
8211 @node Select Methods
Dave Love <fx@gnu.org>
parents:
diff changeset
8212 @chapter Select Methods
Dave Love <fx@gnu.org>
parents:
diff changeset
8213 @cindex foreign groups
Dave Love <fx@gnu.org>
parents:
diff changeset
8214 @cindex select methods
Dave Love <fx@gnu.org>
parents:
diff changeset
8215
Dave Love <fx@gnu.org>
parents:
diff changeset
8216 A @dfn{foreign group} is a group not read by the usual (or
Dave Love <fx@gnu.org>
parents:
diff changeset
8217 default) means. It could be, for instance, a group from a different
Dave Love <fx@gnu.org>
parents:
diff changeset
8218 @sc{nntp} server, it could be a virtual group, or it could be your own
Dave Love <fx@gnu.org>
parents:
diff changeset
8219 personal mail group.
Dave Love <fx@gnu.org>
parents:
diff changeset
8220
Dave Love <fx@gnu.org>
parents:
diff changeset
8221 A foreign group (or any group, really) is specified by a @dfn{name} and
Dave Love <fx@gnu.org>
parents:
diff changeset
8222 a @dfn{select method}. To take the latter first, a select method is a
Dave Love <fx@gnu.org>
parents:
diff changeset
8223 list where the first element says what backend to use (e.g. @code{nntp},
Dave Love <fx@gnu.org>
parents:
diff changeset
8224 @code{nnspool}, @code{nnml}) and the second element is the @dfn{server
Dave Love <fx@gnu.org>
parents:
diff changeset
8225 name}. There may be additional elements in the select method, where the
Dave Love <fx@gnu.org>
parents:
diff changeset
8226 value may have special meaning for the backend in question.
Dave Love <fx@gnu.org>
parents:
diff changeset
8227
Dave Love <fx@gnu.org>
parents:
diff changeset
8228 One could say that a select method defines a @dfn{virtual server}---so
Dave Love <fx@gnu.org>
parents:
diff changeset
8229 we do just that (@pxref{The Server Buffer}).
Dave Love <fx@gnu.org>
parents:
diff changeset
8230
Dave Love <fx@gnu.org>
parents:
diff changeset
8231 The @dfn{name} of the group is the name the backend will recognize the
Dave Love <fx@gnu.org>
parents:
diff changeset
8232 group as.
Dave Love <fx@gnu.org>
parents:
diff changeset
8233
Dave Love <fx@gnu.org>
parents:
diff changeset
8234 For instance, the group @samp{soc.motss} on the @sc{nntp} server
Dave Love <fx@gnu.org>
parents:
diff changeset
8235 @samp{some.where.edu} will have the name @samp{soc.motss} and select
Dave Love <fx@gnu.org>
parents:
diff changeset
8236 method @code{(nntp "some.where.edu")}. Gnus will call this group
Dave Love <fx@gnu.org>
parents:
diff changeset
8237 @samp{nntp+some.where.edu:soc.motss}, even though the @code{nntp}
Dave Love <fx@gnu.org>
parents:
diff changeset
8238 backend just knows this group as @samp{soc.motss}.
Dave Love <fx@gnu.org>
parents:
diff changeset
8239
Dave Love <fx@gnu.org>
parents:
diff changeset
8240 The different methods all have their peculiarities, of course.
Dave Love <fx@gnu.org>
parents:
diff changeset
8241
Dave Love <fx@gnu.org>
parents:
diff changeset
8242 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
8243 * The Server Buffer:: Making and editing virtual servers.
Dave Love <fx@gnu.org>
parents:
diff changeset
8244 * Getting News:: Reading USENET news with Gnus.
Dave Love <fx@gnu.org>
parents:
diff changeset
8245 * Getting Mail:: Reading your personal mail with Gnus.
Dave Love <fx@gnu.org>
parents:
diff changeset
8246 * Other Sources:: Reading directories, files, SOUP packets.
Dave Love <fx@gnu.org>
parents:
diff changeset
8247 * Combined Groups:: Combining groups into one group.
Dave Love <fx@gnu.org>
parents:
diff changeset
8248 * Gnus Unplugged:: Reading news and mail offline.
Dave Love <fx@gnu.org>
parents:
diff changeset
8249 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
8250
Dave Love <fx@gnu.org>
parents:
diff changeset
8251
Dave Love <fx@gnu.org>
parents:
diff changeset
8252 @node The Server Buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
8253 @section The Server Buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
8254
Dave Love <fx@gnu.org>
parents:
diff changeset
8255 Traditionally, a @dfn{server} is a machine or a piece of software that
Dave Love <fx@gnu.org>
parents:
diff changeset
8256 one connects to, and then requests information from. Gnus does not
Dave Love <fx@gnu.org>
parents:
diff changeset
8257 connect directly to any real servers, but does all transactions through
Dave Love <fx@gnu.org>
parents:
diff changeset
8258 one backend or other. But that's just putting one layer more between
Dave Love <fx@gnu.org>
parents:
diff changeset
8259 the actual media and Gnus, so we might just as well say that each
Dave Love <fx@gnu.org>
parents:
diff changeset
8260 backend represents a virtual server.
Dave Love <fx@gnu.org>
parents:
diff changeset
8261
Dave Love <fx@gnu.org>
parents:
diff changeset
8262 For instance, the @code{nntp} backend may be used to connect to several
Dave Love <fx@gnu.org>
parents:
diff changeset
8263 different actual @sc{nntp} servers, or, perhaps, to many different ports
Dave Love <fx@gnu.org>
parents:
diff changeset
8264 on the same actual @sc{nntp} server. You tell Gnus which backend to
Dave Love <fx@gnu.org>
parents:
diff changeset
8265 use, and what parameters to set by specifying a @dfn{select method}.
Dave Love <fx@gnu.org>
parents:
diff changeset
8266
Dave Love <fx@gnu.org>
parents:
diff changeset
8267 These select method specifications can sometimes become quite
Dave Love <fx@gnu.org>
parents:
diff changeset
8268 complicated---say, for instance, that you want to read from the
Dave Love <fx@gnu.org>
parents:
diff changeset
8269 @sc{nntp} server @samp{news.funet.fi} on port number 13, which
Dave Love <fx@gnu.org>
parents:
diff changeset
8270 hangs if queried for @sc{nov} headers and has a buggy select. Ahem.
Dave Love <fx@gnu.org>
parents:
diff changeset
8271 Anyways, if you had to specify that for each group that used this
Dave Love <fx@gnu.org>
parents:
diff changeset
8272 server, that would be too much work, so Gnus offers a way of naming
Dave Love <fx@gnu.org>
parents:
diff changeset
8273 select methods, which is what you do in the server buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
8274
Dave Love <fx@gnu.org>
parents:
diff changeset
8275 To enter the server buffer, use the @kbd{^}
Dave Love <fx@gnu.org>
parents:
diff changeset
8276 (@code{gnus-group-enter-server-mode}) command in the group buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
8277
Dave Love <fx@gnu.org>
parents:
diff changeset
8278 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
8279 * Server Buffer Format:: You can customize the look of this buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
8280 * Server Commands:: Commands to manipulate servers.
Dave Love <fx@gnu.org>
parents:
diff changeset
8281 * Example Methods:: Examples server specifications.
Dave Love <fx@gnu.org>
parents:
diff changeset
8282 * Creating a Virtual Server:: An example session.
Dave Love <fx@gnu.org>
parents:
diff changeset
8283 * Server Variables:: Which variables to set.
Dave Love <fx@gnu.org>
parents:
diff changeset
8284 * Servers and Methods:: You can use server names as select methods.
Dave Love <fx@gnu.org>
parents:
diff changeset
8285 * Unavailable Servers:: Some servers you try to contact may be down.
Dave Love <fx@gnu.org>
parents:
diff changeset
8286 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
8287
Dave Love <fx@gnu.org>
parents:
diff changeset
8288 @vindex gnus-server-mode-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
8289 @code{gnus-server-mode-hook} is run when creating the server buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
8290
Dave Love <fx@gnu.org>
parents:
diff changeset
8291
Dave Love <fx@gnu.org>
parents:
diff changeset
8292 @node Server Buffer Format
Dave Love <fx@gnu.org>
parents:
diff changeset
8293 @subsection Server Buffer Format
Dave Love <fx@gnu.org>
parents:
diff changeset
8294 @cindex server buffer format
Dave Love <fx@gnu.org>
parents:
diff changeset
8295
Dave Love <fx@gnu.org>
parents:
diff changeset
8296 @vindex gnus-server-line-format
Dave Love <fx@gnu.org>
parents:
diff changeset
8297 You can change the look of the server buffer lines by changing the
Dave Love <fx@gnu.org>
parents:
diff changeset
8298 @code{gnus-server-line-format} variable. This is a @code{format}-like
Dave Love <fx@gnu.org>
parents:
diff changeset
8299 variable, with some simple extensions:
Dave Love <fx@gnu.org>
parents:
diff changeset
8300
Dave Love <fx@gnu.org>
parents:
diff changeset
8301 @table @samp
Dave Love <fx@gnu.org>
parents:
diff changeset
8302
Dave Love <fx@gnu.org>
parents:
diff changeset
8303 @item h
Dave Love <fx@gnu.org>
parents:
diff changeset
8304 How the news is fetched---the backend name.
Dave Love <fx@gnu.org>
parents:
diff changeset
8305
Dave Love <fx@gnu.org>
parents:
diff changeset
8306 @item n
Dave Love <fx@gnu.org>
parents:
diff changeset
8307 The name of this server.
Dave Love <fx@gnu.org>
parents:
diff changeset
8308
Dave Love <fx@gnu.org>
parents:
diff changeset
8309 @item w
Dave Love <fx@gnu.org>
parents:
diff changeset
8310 Where the news is to be fetched from---the address.
Dave Love <fx@gnu.org>
parents:
diff changeset
8311
Dave Love <fx@gnu.org>
parents:
diff changeset
8312 @item s
Dave Love <fx@gnu.org>
parents:
diff changeset
8313 The opened/closed/denied status of the server.
Dave Love <fx@gnu.org>
parents:
diff changeset
8314 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
8315
Dave Love <fx@gnu.org>
parents:
diff changeset
8316 @vindex gnus-server-mode-line-format
Dave Love <fx@gnu.org>
parents:
diff changeset
8317 The mode line can also be customized by using the
Dave Love <fx@gnu.org>
parents:
diff changeset
8318 @code{gnus-server-mode-line-format} variable (@pxref{Mode Line
Dave Love <fx@gnu.org>
parents:
diff changeset
8319 Formatting}). The following specs are understood:
Dave Love <fx@gnu.org>
parents:
diff changeset
8320
Dave Love <fx@gnu.org>
parents:
diff changeset
8321 @table @samp
Dave Love <fx@gnu.org>
parents:
diff changeset
8322 @item S
Dave Love <fx@gnu.org>
parents:
diff changeset
8323 Server name.
Dave Love <fx@gnu.org>
parents:
diff changeset
8324
Dave Love <fx@gnu.org>
parents:
diff changeset
8325 @item M
Dave Love <fx@gnu.org>
parents:
diff changeset
8326 Server method.
Dave Love <fx@gnu.org>
parents:
diff changeset
8327 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
8328
Dave Love <fx@gnu.org>
parents:
diff changeset
8329 Also @pxref{Formatting Variables}.
Dave Love <fx@gnu.org>
parents:
diff changeset
8330
Dave Love <fx@gnu.org>
parents:
diff changeset
8331
Dave Love <fx@gnu.org>
parents:
diff changeset
8332 @node Server Commands
Dave Love <fx@gnu.org>
parents:
diff changeset
8333 @subsection Server Commands
Dave Love <fx@gnu.org>
parents:
diff changeset
8334 @cindex server commands
Dave Love <fx@gnu.org>
parents:
diff changeset
8335
Dave Love <fx@gnu.org>
parents:
diff changeset
8336 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
8337
Dave Love <fx@gnu.org>
parents:
diff changeset
8338 @item a
Dave Love <fx@gnu.org>
parents:
diff changeset
8339 @kindex a (Server)
Dave Love <fx@gnu.org>
parents:
diff changeset
8340 @findex gnus-server-add-server
Dave Love <fx@gnu.org>
parents:
diff changeset
8341 Add a new server (@code{gnus-server-add-server}).
Dave Love <fx@gnu.org>
parents:
diff changeset
8342
Dave Love <fx@gnu.org>
parents:
diff changeset
8343 @item e
Dave Love <fx@gnu.org>
parents:
diff changeset
8344 @kindex e (Server)
Dave Love <fx@gnu.org>
parents:
diff changeset
8345 @findex gnus-server-edit-server
Dave Love <fx@gnu.org>
parents:
diff changeset
8346 Edit a server (@code{gnus-server-edit-server}).
Dave Love <fx@gnu.org>
parents:
diff changeset
8347
Dave Love <fx@gnu.org>
parents:
diff changeset
8348 @item SPACE
Dave Love <fx@gnu.org>
parents:
diff changeset
8349 @kindex SPACE (Server)
Dave Love <fx@gnu.org>
parents:
diff changeset
8350 @findex gnus-server-read-server
Dave Love <fx@gnu.org>
parents:
diff changeset
8351 Browse the current server (@code{gnus-server-read-server}).
Dave Love <fx@gnu.org>
parents:
diff changeset
8352
Dave Love <fx@gnu.org>
parents:
diff changeset
8353 @item q
Dave Love <fx@gnu.org>
parents:
diff changeset
8354 @kindex q (Server)
Dave Love <fx@gnu.org>
parents:
diff changeset
8355 @findex gnus-server-exit
Dave Love <fx@gnu.org>
parents:
diff changeset
8356 Return to the group buffer (@code{gnus-server-exit}).
Dave Love <fx@gnu.org>
parents:
diff changeset
8357
Dave Love <fx@gnu.org>
parents:
diff changeset
8358 @item k
Dave Love <fx@gnu.org>
parents:
diff changeset
8359 @kindex k (Server)
Dave Love <fx@gnu.org>
parents:
diff changeset
8360 @findex gnus-server-kill-server
Dave Love <fx@gnu.org>
parents:
diff changeset
8361 Kill the current server (@code{gnus-server-kill-server}).
Dave Love <fx@gnu.org>
parents:
diff changeset
8362
Dave Love <fx@gnu.org>
parents:
diff changeset
8363 @item y
Dave Love <fx@gnu.org>
parents:
diff changeset
8364 @kindex y (Server)
Dave Love <fx@gnu.org>
parents:
diff changeset
8365 @findex gnus-server-yank-server
Dave Love <fx@gnu.org>
parents:
diff changeset
8366 Yank the previously killed server (@code{gnus-server-yank-server}).
Dave Love <fx@gnu.org>
parents:
diff changeset
8367
Dave Love <fx@gnu.org>
parents:
diff changeset
8368 @item c
Dave Love <fx@gnu.org>
parents:
diff changeset
8369 @kindex c (Server)
Dave Love <fx@gnu.org>
parents:
diff changeset
8370 @findex gnus-server-copy-server
Dave Love <fx@gnu.org>
parents:
diff changeset
8371 Copy the current server (@code{gnus-server-copy-server}).
Dave Love <fx@gnu.org>
parents:
diff changeset
8372
Dave Love <fx@gnu.org>
parents:
diff changeset
8373 @item l
Dave Love <fx@gnu.org>
parents:
diff changeset
8374 @kindex l (Server)
Dave Love <fx@gnu.org>
parents:
diff changeset
8375 @findex gnus-server-list-servers
Dave Love <fx@gnu.org>
parents:
diff changeset
8376 List all servers (@code{gnus-server-list-servers}).
Dave Love <fx@gnu.org>
parents:
diff changeset
8377
Dave Love <fx@gnu.org>
parents:
diff changeset
8378 @item s
Dave Love <fx@gnu.org>
parents:
diff changeset
8379 @kindex s (Server)
Dave Love <fx@gnu.org>
parents:
diff changeset
8380 @findex gnus-server-scan-server
Dave Love <fx@gnu.org>
parents:
diff changeset
8381 Request that the server scan its sources for new articles
Dave Love <fx@gnu.org>
parents:
diff changeset
8382 (@code{gnus-server-scan-server}). This is mainly sensible with mail
Dave Love <fx@gnu.org>
parents:
diff changeset
8383 servers.
Dave Love <fx@gnu.org>
parents:
diff changeset
8384
Dave Love <fx@gnu.org>
parents:
diff changeset
8385 @item g
Dave Love <fx@gnu.org>
parents:
diff changeset
8386 @kindex g (Server)
Dave Love <fx@gnu.org>
parents:
diff changeset
8387 @findex gnus-server-regenerate-server
Dave Love <fx@gnu.org>
parents:
diff changeset
8388 Request that the server regenerate all its data structures
Dave Love <fx@gnu.org>
parents:
diff changeset
8389 (@code{gnus-server-regenerate-server}). This can be useful if you have
Dave Love <fx@gnu.org>
parents:
diff changeset
8390 a mail backend that has gotten out of synch.
Dave Love <fx@gnu.org>
parents:
diff changeset
8391
Dave Love <fx@gnu.org>
parents:
diff changeset
8392 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
8393
Dave Love <fx@gnu.org>
parents:
diff changeset
8394
Dave Love <fx@gnu.org>
parents:
diff changeset
8395 @node Example Methods
Dave Love <fx@gnu.org>
parents:
diff changeset
8396 @subsection Example Methods
Dave Love <fx@gnu.org>
parents:
diff changeset
8397
Dave Love <fx@gnu.org>
parents:
diff changeset
8398 Most select methods are pretty simple and self-explanatory:
Dave Love <fx@gnu.org>
parents:
diff changeset
8399
Dave Love <fx@gnu.org>
parents:
diff changeset
8400 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
8401 (nntp "news.funet.fi")
Dave Love <fx@gnu.org>
parents:
diff changeset
8402 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
8403
Dave Love <fx@gnu.org>
parents:
diff changeset
8404 Reading directly from the spool is even simpler:
Dave Love <fx@gnu.org>
parents:
diff changeset
8405
Dave Love <fx@gnu.org>
parents:
diff changeset
8406 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
8407 (nnspool "")
Dave Love <fx@gnu.org>
parents:
diff changeset
8408 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
8409
Dave Love <fx@gnu.org>
parents:
diff changeset
8410 As you can see, the first element in a select method is the name of the
Dave Love <fx@gnu.org>
parents:
diff changeset
8411 backend, and the second is the @dfn{address}, or @dfn{name}, if you
Dave Love <fx@gnu.org>
parents:
diff changeset
8412 will.
Dave Love <fx@gnu.org>
parents:
diff changeset
8413
Dave Love <fx@gnu.org>
parents:
diff changeset
8414 After these two elements, there may be an arbitrary number of
26290
df10644e22b5 Fix complaints from makeinfo 4.0.
Dave Love <fx@gnu.org>
parents: 25829
diff changeset
8415 @code{(@var{variable} @var{form})} pairs.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
8416
Dave Love <fx@gnu.org>
parents:
diff changeset
8417 To go back to the first example---imagine that you want to read from
Dave Love <fx@gnu.org>
parents:
diff changeset
8418 port 15 on that machine. This is what the select method should
Dave Love <fx@gnu.org>
parents:
diff changeset
8419 look like then:
Dave Love <fx@gnu.org>
parents:
diff changeset
8420
Dave Love <fx@gnu.org>
parents:
diff changeset
8421 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
8422 (nntp "news.funet.fi" (nntp-port-number 15))
Dave Love <fx@gnu.org>
parents:
diff changeset
8423 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
8424
Dave Love <fx@gnu.org>
parents:
diff changeset
8425 You should read the documentation to each backend to find out what
Dave Love <fx@gnu.org>
parents:
diff changeset
8426 variables are relevant, but here's an @code{nnmh} example:
Dave Love <fx@gnu.org>
parents:
diff changeset
8427
Dave Love <fx@gnu.org>
parents:
diff changeset
8428 @code{nnmh} is a mail backend that reads a spool-like structure. Say
Dave Love <fx@gnu.org>
parents:
diff changeset
8429 you have two structures that you wish to access: One is your private
Dave Love <fx@gnu.org>
parents:
diff changeset
8430 mail spool, and the other is a public one. Here's the possible spec for
Dave Love <fx@gnu.org>
parents:
diff changeset
8431 your private mail:
Dave Love <fx@gnu.org>
parents:
diff changeset
8432
Dave Love <fx@gnu.org>
parents:
diff changeset
8433 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
8434 (nnmh "private" (nnmh-directory "~/private/mail/"))
Dave Love <fx@gnu.org>
parents:
diff changeset
8435 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
8436
Dave Love <fx@gnu.org>
parents:
diff changeset
8437 (This server is then called @samp{private}, but you may have guessed
Dave Love <fx@gnu.org>
parents:
diff changeset
8438 that.)
Dave Love <fx@gnu.org>
parents:
diff changeset
8439
Dave Love <fx@gnu.org>
parents:
diff changeset
8440 Here's the method for a public spool:
Dave Love <fx@gnu.org>
parents:
diff changeset
8441
Dave Love <fx@gnu.org>
parents:
diff changeset
8442 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
8443 (nnmh "public"
Dave Love <fx@gnu.org>
parents:
diff changeset
8444 (nnmh-directory "/usr/information/spool/")
Dave Love <fx@gnu.org>
parents:
diff changeset
8445 (nnmh-get-new-mail nil))
Dave Love <fx@gnu.org>
parents:
diff changeset
8446 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
8447
Dave Love <fx@gnu.org>
parents:
diff changeset
8448 If you are behind a firewall and only have access to the @sc{nntp}
Dave Love <fx@gnu.org>
parents:
diff changeset
8449 server from the firewall machine, you can instruct Gnus to @code{rlogin}
Dave Love <fx@gnu.org>
parents:
diff changeset
8450 on the firewall machine and telnet from there to the @sc{nntp} server.
Dave Love <fx@gnu.org>
parents:
diff changeset
8451 Doing this can be rather fiddly, but your virtual server definition
Dave Love <fx@gnu.org>
parents:
diff changeset
8452 should probably look something like this:
Dave Love <fx@gnu.org>
parents:
diff changeset
8453
Dave Love <fx@gnu.org>
parents:
diff changeset
8454 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
8455 (nntp "firewall"
Dave Love <fx@gnu.org>
parents:
diff changeset
8456 (nntp-address "the.firewall.machine")
Dave Love <fx@gnu.org>
parents:
diff changeset
8457 (nntp-open-connection-function nntp-open-rlogin)
Dave Love <fx@gnu.org>
parents:
diff changeset
8458 (nntp-end-of-line "\n")
Dave Love <fx@gnu.org>
parents:
diff changeset
8459 (nntp-rlogin-parameters
Dave Love <fx@gnu.org>
parents:
diff changeset
8460 ("telnet" "the.real.nntp.host" "nntp")))
Dave Love <fx@gnu.org>
parents:
diff changeset
8461 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
8462
Dave Love <fx@gnu.org>
parents:
diff changeset
8463 If you want to use the wonderful @code{ssh} program to provide a
Dave Love <fx@gnu.org>
parents:
diff changeset
8464 compressed connection over the modem line, you could create a virtual
Dave Love <fx@gnu.org>
parents:
diff changeset
8465 server that would look something like this:
Dave Love <fx@gnu.org>
parents:
diff changeset
8466
Dave Love <fx@gnu.org>
parents:
diff changeset
8467 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
8468 (nntp "news"
Dave Love <fx@gnu.org>
parents:
diff changeset
8469 (nntp-address "copper.uio.no")
Dave Love <fx@gnu.org>
parents:
diff changeset
8470 (nntp-rlogin-program "ssh")
Dave Love <fx@gnu.org>
parents:
diff changeset
8471 (nntp-open-connection-function nntp-open-rlogin)
Dave Love <fx@gnu.org>
parents:
diff changeset
8472 (nntp-end-of-line "\n")
Dave Love <fx@gnu.org>
parents:
diff changeset
8473 (nntp-rlogin-parameters
Dave Love <fx@gnu.org>
parents:
diff changeset
8474 ("telnet" "news.uio.no" "nntp")))
Dave Love <fx@gnu.org>
parents:
diff changeset
8475 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
8476
Dave Love <fx@gnu.org>
parents:
diff changeset
8477 This means that you have to have set up @code{ssh-agent} correctly to
Dave Love <fx@gnu.org>
parents:
diff changeset
8478 provide automatic authorization, of course. And to get a compressed
Dave Love <fx@gnu.org>
parents:
diff changeset
8479 connection, you have to have the @samp{Compression} option in the
Dave Love <fx@gnu.org>
parents:
diff changeset
8480 @code{ssh} @file{config} file.
Dave Love <fx@gnu.org>
parents:
diff changeset
8481
Dave Love <fx@gnu.org>
parents:
diff changeset
8482
Dave Love <fx@gnu.org>
parents:
diff changeset
8483 @node Creating a Virtual Server
Dave Love <fx@gnu.org>
parents:
diff changeset
8484 @subsection Creating a Virtual Server
Dave Love <fx@gnu.org>
parents:
diff changeset
8485
Dave Love <fx@gnu.org>
parents:
diff changeset
8486 If you're saving lots of articles in the cache by using persistent
Dave Love <fx@gnu.org>
parents:
diff changeset
8487 articles, you may want to create a virtual server to read the cache.
Dave Love <fx@gnu.org>
parents:
diff changeset
8488
Dave Love <fx@gnu.org>
parents:
diff changeset
8489 First you need to add a new server. The @kbd{a} command does that. It
Dave Love <fx@gnu.org>
parents:
diff changeset
8490 would probably be best to use @code{nnspool} to read the cache. You
Dave Love <fx@gnu.org>
parents:
diff changeset
8491 could also use @code{nnml} or @code{nnmh}, though.
Dave Love <fx@gnu.org>
parents:
diff changeset
8492
Dave Love <fx@gnu.org>
parents:
diff changeset
8493 Type @kbd{a nnspool RET cache RET}.
Dave Love <fx@gnu.org>
parents:
diff changeset
8494
Dave Love <fx@gnu.org>
parents:
diff changeset
8495 You should now have a brand new @code{nnspool} virtual server called
Dave Love <fx@gnu.org>
parents:
diff changeset
8496 @samp{cache}. You now need to edit it to have the right definitions.
Dave Love <fx@gnu.org>
parents:
diff changeset
8497 Type @kbd{e} to edit the server. You'll be entered into a buffer that
Dave Love <fx@gnu.org>
parents:
diff changeset
8498 will contain the following:
Dave Love <fx@gnu.org>
parents:
diff changeset
8499
Dave Love <fx@gnu.org>
parents:
diff changeset
8500 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
8501 (nnspool "cache")
Dave Love <fx@gnu.org>
parents:
diff changeset
8502 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
8503
Dave Love <fx@gnu.org>
parents:
diff changeset
8504 Change that to:
Dave Love <fx@gnu.org>
parents:
diff changeset
8505
Dave Love <fx@gnu.org>
parents:
diff changeset
8506 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
8507 (nnspool "cache"
Dave Love <fx@gnu.org>
parents:
diff changeset
8508 (nnspool-spool-directory "~/News/cache/")
Dave Love <fx@gnu.org>
parents:
diff changeset
8509 (nnspool-nov-directory "~/News/cache/")
Dave Love <fx@gnu.org>
parents:
diff changeset
8510 (nnspool-active-file "~/News/cache/active"))
Dave Love <fx@gnu.org>
parents:
diff changeset
8511 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
8512
Dave Love <fx@gnu.org>
parents:
diff changeset
8513 Type @kbd{C-c C-c} to return to the server buffer. If you now press
Dave Love <fx@gnu.org>
parents:
diff changeset
8514 @kbd{RET} over this virtual server, you should be entered into a browse
Dave Love <fx@gnu.org>
parents:
diff changeset
8515 buffer, and you should be able to enter any of the groups displayed.
Dave Love <fx@gnu.org>
parents:
diff changeset
8516
Dave Love <fx@gnu.org>
parents:
diff changeset
8517
Dave Love <fx@gnu.org>
parents:
diff changeset
8518 @node Server Variables
Dave Love <fx@gnu.org>
parents:
diff changeset
8519 @subsection Server Variables
Dave Love <fx@gnu.org>
parents:
diff changeset
8520
Dave Love <fx@gnu.org>
parents:
diff changeset
8521 One sticky point when defining variables (both on backends and in Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
8522 in general) is that some variables are typically initialized from other
Dave Love <fx@gnu.org>
parents:
diff changeset
8523 variables when the definition of the variables is being loaded. If you
Dave Love <fx@gnu.org>
parents:
diff changeset
8524 change the "base" variable after the variables have been loaded, you
Dave Love <fx@gnu.org>
parents:
diff changeset
8525 won't change the "derived" variables.
Dave Love <fx@gnu.org>
parents:
diff changeset
8526
Dave Love <fx@gnu.org>
parents:
diff changeset
8527 This typically affects directory and file variables. For instance,
Dave Love <fx@gnu.org>
parents:
diff changeset
8528 @code{nnml-directory} is @file{~/Mail/} by default, and all @code{nnml}
Dave Love <fx@gnu.org>
parents:
diff changeset
8529 directory variables are initialized from that variable, so
Dave Love <fx@gnu.org>
parents:
diff changeset
8530 @code{nnml-active-file} will be @file{~/Mail/active}. If you define a
Dave Love <fx@gnu.org>
parents:
diff changeset
8531 new virtual @code{nnml} server, it will @emph{not} suffice to set just
Dave Love <fx@gnu.org>
parents:
diff changeset
8532 @code{nnml-directory}---you have to explicitly set all the file
Dave Love <fx@gnu.org>
parents:
diff changeset
8533 variables to be what you want them to be. For a complete list of
Dave Love <fx@gnu.org>
parents:
diff changeset
8534 variables for each backend, see each backend's section later in this
Dave Love <fx@gnu.org>
parents:
diff changeset
8535 manual, but here's an example @code{nnml} definition:
Dave Love <fx@gnu.org>
parents:
diff changeset
8536
Dave Love <fx@gnu.org>
parents:
diff changeset
8537 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
8538 (nnml "public"
Dave Love <fx@gnu.org>
parents:
diff changeset
8539 (nnml-directory "~/my-mail/")
Dave Love <fx@gnu.org>
parents:
diff changeset
8540 (nnml-active-file "~/my-mail/active")
Dave Love <fx@gnu.org>
parents:
diff changeset
8541 (nnml-newsgroups-file "~/my-mail/newsgroups"))
Dave Love <fx@gnu.org>
parents:
diff changeset
8542 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
8543
Dave Love <fx@gnu.org>
parents:
diff changeset
8544
Dave Love <fx@gnu.org>
parents:
diff changeset
8545 @node Servers and Methods
Dave Love <fx@gnu.org>
parents:
diff changeset
8546 @subsection Servers and Methods
Dave Love <fx@gnu.org>
parents:
diff changeset
8547
Dave Love <fx@gnu.org>
parents:
diff changeset
8548 Wherever you would normally use a select method
Dave Love <fx@gnu.org>
parents:
diff changeset
8549 (e.g. @code{gnus-secondary-select-method}, in the group select method,
Dave Love <fx@gnu.org>
parents:
diff changeset
8550 when browsing a foreign server) you can use a virtual server name
Dave Love <fx@gnu.org>
parents:
diff changeset
8551 instead. This could potentially save lots of typing. And it's nice all
Dave Love <fx@gnu.org>
parents:
diff changeset
8552 over.
Dave Love <fx@gnu.org>
parents:
diff changeset
8553
Dave Love <fx@gnu.org>
parents:
diff changeset
8554
Dave Love <fx@gnu.org>
parents:
diff changeset
8555 @node Unavailable Servers
Dave Love <fx@gnu.org>
parents:
diff changeset
8556 @subsection Unavailable Servers
Dave Love <fx@gnu.org>
parents:
diff changeset
8557
Dave Love <fx@gnu.org>
parents:
diff changeset
8558 If a server seems to be unreachable, Gnus will mark that server as
Dave Love <fx@gnu.org>
parents:
diff changeset
8559 @code{denied}. That means that any subsequent attempt to make contact
Dave Love <fx@gnu.org>
parents:
diff changeset
8560 with that server will just be ignored. ``It can't be opened,'' Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
8561 will tell you, without making the least effort to see whether that is
Dave Love <fx@gnu.org>
parents:
diff changeset
8562 actually the case or not.
Dave Love <fx@gnu.org>
parents:
diff changeset
8563
Dave Love <fx@gnu.org>
parents:
diff changeset
8564 That might seem quite naughty, but it does make sense most of the time.
Dave Love <fx@gnu.org>
parents:
diff changeset
8565 Let's say you have 10 groups subscribed to on server
Dave Love <fx@gnu.org>
parents:
diff changeset
8566 @samp{nephelococcygia.com}. This server is located somewhere quite far
Dave Love <fx@gnu.org>
parents:
diff changeset
8567 away from you and the machine is quite slow, so it takes 1 minute just
Dave Love <fx@gnu.org>
parents:
diff changeset
8568 to find out that it refuses connection to you today. If Gnus were to
Dave Love <fx@gnu.org>
parents:
diff changeset
8569 attempt to do that 10 times, you'd be quite annoyed, so Gnus won't
Dave Love <fx@gnu.org>
parents:
diff changeset
8570 attempt to do that. Once it has gotten a single ``connection refused'',
Dave Love <fx@gnu.org>
parents:
diff changeset
8571 it will regard that server as ``down''.
Dave Love <fx@gnu.org>
parents:
diff changeset
8572
Dave Love <fx@gnu.org>
parents:
diff changeset
8573 So, what happens if the machine was only feeling unwell temporarily?
Dave Love <fx@gnu.org>
parents:
diff changeset
8574 How do you test to see whether the machine has come up again?
Dave Love <fx@gnu.org>
parents:
diff changeset
8575
Dave Love <fx@gnu.org>
parents:
diff changeset
8576 You jump to the server buffer (@pxref{The Server Buffer}) and poke it
Dave Love <fx@gnu.org>
parents:
diff changeset
8577 with the following commands:
Dave Love <fx@gnu.org>
parents:
diff changeset
8578
Dave Love <fx@gnu.org>
parents:
diff changeset
8579 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
8580
Dave Love <fx@gnu.org>
parents:
diff changeset
8581 @item O
Dave Love <fx@gnu.org>
parents:
diff changeset
8582 @kindex O (Server)
Dave Love <fx@gnu.org>
parents:
diff changeset
8583 @findex gnus-server-open-server
Dave Love <fx@gnu.org>
parents:
diff changeset
8584 Try to establish connection to the server on the current line
Dave Love <fx@gnu.org>
parents:
diff changeset
8585 (@code{gnus-server-open-server}).
Dave Love <fx@gnu.org>
parents:
diff changeset
8586
Dave Love <fx@gnu.org>
parents:
diff changeset
8587 @item C
Dave Love <fx@gnu.org>
parents:
diff changeset
8588 @kindex C (Server)
Dave Love <fx@gnu.org>
parents:
diff changeset
8589 @findex gnus-server-close-server
Dave Love <fx@gnu.org>
parents:
diff changeset
8590 Close the connection (if any) to the server
Dave Love <fx@gnu.org>
parents:
diff changeset
8591 (@code{gnus-server-close-server}).
Dave Love <fx@gnu.org>
parents:
diff changeset
8592
Dave Love <fx@gnu.org>
parents:
diff changeset
8593 @item D
Dave Love <fx@gnu.org>
parents:
diff changeset
8594 @kindex D (Server)
Dave Love <fx@gnu.org>
parents:
diff changeset
8595 @findex gnus-server-deny-server
Dave Love <fx@gnu.org>
parents:
diff changeset
8596 Mark the current server as unreachable
Dave Love <fx@gnu.org>
parents:
diff changeset
8597 (@code{gnus-server-deny-server}).
Dave Love <fx@gnu.org>
parents:
diff changeset
8598
Dave Love <fx@gnu.org>
parents:
diff changeset
8599 @item M-o
Dave Love <fx@gnu.org>
parents:
diff changeset
8600 @kindex M-o (Server)
Dave Love <fx@gnu.org>
parents:
diff changeset
8601 @findex gnus-server-open-all-servers
Dave Love <fx@gnu.org>
parents:
diff changeset
8602 Open the connections to all servers in the buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
8603 (@code{gnus-server-open-all-servers}).
Dave Love <fx@gnu.org>
parents:
diff changeset
8604
Dave Love <fx@gnu.org>
parents:
diff changeset
8605 @item M-c
Dave Love <fx@gnu.org>
parents:
diff changeset
8606 @kindex M-c (Server)
Dave Love <fx@gnu.org>
parents:
diff changeset
8607 @findex gnus-server-close-all-servers
Dave Love <fx@gnu.org>
parents:
diff changeset
8608 Close the connections to all servers in the buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
8609 (@code{gnus-server-close-all-servers}).
Dave Love <fx@gnu.org>
parents:
diff changeset
8610
Dave Love <fx@gnu.org>
parents:
diff changeset
8611 @item R
Dave Love <fx@gnu.org>
parents:
diff changeset
8612 @kindex R (Server)
Dave Love <fx@gnu.org>
parents:
diff changeset
8613 @findex gnus-server-remove-denials
Dave Love <fx@gnu.org>
parents:
diff changeset
8614 Remove all marks to whether Gnus was denied connection from any servers
Dave Love <fx@gnu.org>
parents:
diff changeset
8615 (@code{gnus-server-remove-denials}).
Dave Love <fx@gnu.org>
parents:
diff changeset
8616
Dave Love <fx@gnu.org>
parents:
diff changeset
8617 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
8618
Dave Love <fx@gnu.org>
parents:
diff changeset
8619
Dave Love <fx@gnu.org>
parents:
diff changeset
8620 @node Getting News
Dave Love <fx@gnu.org>
parents:
diff changeset
8621 @section Getting News
Dave Love <fx@gnu.org>
parents:
diff changeset
8622 @cindex reading news
Dave Love <fx@gnu.org>
parents:
diff changeset
8623 @cindex news backends
Dave Love <fx@gnu.org>
parents:
diff changeset
8624
Dave Love <fx@gnu.org>
parents:
diff changeset
8625 A newsreader is normally used for reading news. Gnus currently provides
Dave Love <fx@gnu.org>
parents:
diff changeset
8626 only two methods of getting news---it can read from an @sc{nntp} server,
Dave Love <fx@gnu.org>
parents:
diff changeset
8627 or it can read from a local spool.
Dave Love <fx@gnu.org>
parents:
diff changeset
8628
Dave Love <fx@gnu.org>
parents:
diff changeset
8629 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
8630 * NNTP:: Reading news from an @sc{nntp} server.
Dave Love <fx@gnu.org>
parents:
diff changeset
8631 * News Spool:: Reading news from the local spool.
Dave Love <fx@gnu.org>
parents:
diff changeset
8632 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
8633
Dave Love <fx@gnu.org>
parents:
diff changeset
8634
Dave Love <fx@gnu.org>
parents:
diff changeset
8635 @node NNTP
Dave Love <fx@gnu.org>
parents:
diff changeset
8636 @subsection @sc{nntp}
Dave Love <fx@gnu.org>
parents:
diff changeset
8637 @cindex nntp
Dave Love <fx@gnu.org>
parents:
diff changeset
8638
Dave Love <fx@gnu.org>
parents:
diff changeset
8639 Subscribing to a foreign group from an @sc{nntp} server is rather easy.
Dave Love <fx@gnu.org>
parents:
diff changeset
8640 You just specify @code{nntp} as method and the address of the @sc{nntp}
Dave Love <fx@gnu.org>
parents:
diff changeset
8641 server as the, uhm, address.
Dave Love <fx@gnu.org>
parents:
diff changeset
8642
Dave Love <fx@gnu.org>
parents:
diff changeset
8643 If the @sc{nntp} server is located at a non-standard port, setting the
Dave Love <fx@gnu.org>
parents:
diff changeset
8644 third element of the select method to this port number should allow you
Dave Love <fx@gnu.org>
parents:
diff changeset
8645 to connect to the right port. You'll have to edit the group info for
Dave Love <fx@gnu.org>
parents:
diff changeset
8646 that (@pxref{Foreign Groups}).
Dave Love <fx@gnu.org>
parents:
diff changeset
8647
Dave Love <fx@gnu.org>
parents:
diff changeset
8648 The name of the foreign group can be the same as a native group. In
Dave Love <fx@gnu.org>
parents:
diff changeset
8649 fact, you can subscribe to the same group from as many different servers
Dave Love <fx@gnu.org>
parents:
diff changeset
8650 you feel like. There will be no name collisions.
Dave Love <fx@gnu.org>
parents:
diff changeset
8651
Dave Love <fx@gnu.org>
parents:
diff changeset
8652 The following variables can be used to create a virtual @code{nntp}
Dave Love <fx@gnu.org>
parents:
diff changeset
8653 server:
Dave Love <fx@gnu.org>
parents:
diff changeset
8654
Dave Love <fx@gnu.org>
parents:
diff changeset
8655 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
8656
Dave Love <fx@gnu.org>
parents:
diff changeset
8657 @item nntp-server-opened-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
8658 @vindex nntp-server-opened-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
8659 @cindex @sc{mode reader}
Dave Love <fx@gnu.org>
parents:
diff changeset
8660 @cindex authinfo
Dave Love <fx@gnu.org>
parents:
diff changeset
8661 @cindex authentification
Dave Love <fx@gnu.org>
parents:
diff changeset
8662 @cindex nntp authentification
Dave Love <fx@gnu.org>
parents:
diff changeset
8663 @findex nntp-send-authinfo
Dave Love <fx@gnu.org>
parents:
diff changeset
8664 @findex nntp-send-mode-reader
Dave Love <fx@gnu.org>
parents:
diff changeset
8665 is run after a connection has been made. It can be used to send
Dave Love <fx@gnu.org>
parents:
diff changeset
8666 commands to the @sc{nntp} server after it has been contacted. By
Dave Love <fx@gnu.org>
parents:
diff changeset
8667 default it sends the command @code{MODE READER} to the server with the
Dave Love <fx@gnu.org>
parents:
diff changeset
8668 @code{nntp-send-mode-reader} function. This function should always be
Dave Love <fx@gnu.org>
parents:
diff changeset
8669 present in this hook.
Dave Love <fx@gnu.org>
parents:
diff changeset
8670
Dave Love <fx@gnu.org>
parents:
diff changeset
8671 @item nntp-authinfo-function
Dave Love <fx@gnu.org>
parents:
diff changeset
8672 @vindex nntp-authinfo-function
Dave Love <fx@gnu.org>
parents:
diff changeset
8673 @findex nntp-send-authinfo
Dave Love <fx@gnu.org>
parents:
diff changeset
8674 @vindex nntp-authinfo-file
Dave Love <fx@gnu.org>
parents:
diff changeset
8675 This function will be used to send @samp{AUTHINFO} to the @sc{nntp}
Dave Love <fx@gnu.org>
parents:
diff changeset
8676 server. The default function is @code{nntp-send-authinfo}, which looks
Dave Love <fx@gnu.org>
parents:
diff changeset
8677 through your @file{~/.authinfo} (or whatever you've set the
Dave Love <fx@gnu.org>
parents:
diff changeset
8678 @code{nntp-authinfo-file} variable to) for applicable entries. If none
Dave Love <fx@gnu.org>
parents:
diff changeset
8679 are found, it will prompt you for a login name and a password. The
Dave Love <fx@gnu.org>
parents:
diff changeset
8680 format of the @file{~/.authinfo} file is (almost) the same as the
Dave Love <fx@gnu.org>
parents:
diff changeset
8681 @code{ftp} @file{~/.netrc} file, which is defined in the @code{ftp}
Dave Love <fx@gnu.org>
parents:
diff changeset
8682 manual page, but here are the salient facts:
Dave Love <fx@gnu.org>
parents:
diff changeset
8683
Dave Love <fx@gnu.org>
parents:
diff changeset
8684 @enumerate
Dave Love <fx@gnu.org>
parents:
diff changeset
8685 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
8686 The file contains one or more line, each of which define one server.
Dave Love <fx@gnu.org>
parents:
diff changeset
8687
Dave Love <fx@gnu.org>
parents:
diff changeset
8688 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
8689 Each line may contain an arbitrary number of token/value pairs. The
Dave Love <fx@gnu.org>
parents:
diff changeset
8690 valid tokens include @samp{machine}, @samp{login}, @samp{password},
Dave Love <fx@gnu.org>
parents:
diff changeset
8691 @samp{default} and @samp{force}. (The latter is not a valid
Dave Love <fx@gnu.org>
parents:
diff changeset
8692 @file{.netrc}/@code{ftp} token, which is the only way the
Dave Love <fx@gnu.org>
parents:
diff changeset
8693 @file{.authinfo} file format deviates from the @file{.netrc} file
Dave Love <fx@gnu.org>
parents:
diff changeset
8694 format.)
Dave Love <fx@gnu.org>
parents:
diff changeset
8695
Dave Love <fx@gnu.org>
parents:
diff changeset
8696 @end enumerate
Dave Love <fx@gnu.org>
parents:
diff changeset
8697
Dave Love <fx@gnu.org>
parents:
diff changeset
8698 Here's an example file:
Dave Love <fx@gnu.org>
parents:
diff changeset
8699
Dave Love <fx@gnu.org>
parents:
diff changeset
8700 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
8701 machine news.uio.no login larsi password geheimnis
Dave Love <fx@gnu.org>
parents:
diff changeset
8702 machine nntp.ifi.uio.no login larsi force yes
Dave Love <fx@gnu.org>
parents:
diff changeset
8703 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
8704
Dave Love <fx@gnu.org>
parents:
diff changeset
8705 The token/value pairs may appear in any order; @samp{machine} doesn't
Dave Love <fx@gnu.org>
parents:
diff changeset
8706 have to be first, for instance.
Dave Love <fx@gnu.org>
parents:
diff changeset
8707
Dave Love <fx@gnu.org>
parents:
diff changeset
8708 In this example, both login name and password have been supplied for the
Dave Love <fx@gnu.org>
parents:
diff changeset
8709 former server, while the latter has only the login name listed, and the
Dave Love <fx@gnu.org>
parents:
diff changeset
8710 user will be prompted for the password. The latter also has the
Dave Love <fx@gnu.org>
parents:
diff changeset
8711 @samp{force} tag, which means that the authinfo will be sent to the
Dave Love <fx@gnu.org>
parents:
diff changeset
8712 @var{nntp} server upon connection; the default (i.e., when there is not
Dave Love <fx@gnu.org>
parents:
diff changeset
8713 @samp{force} tag) is to not send authinfo to the @var{nntp} server
Dave Love <fx@gnu.org>
parents:
diff changeset
8714 until the @var{nntp} server asks for it.
Dave Love <fx@gnu.org>
parents:
diff changeset
8715
Dave Love <fx@gnu.org>
parents:
diff changeset
8716 You can also add @samp{default} lines that will apply to all servers
Dave Love <fx@gnu.org>
parents:
diff changeset
8717 that don't have matching @samp{machine} lines.
Dave Love <fx@gnu.org>
parents:
diff changeset
8718
Dave Love <fx@gnu.org>
parents:
diff changeset
8719 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
8720 default force yes
Dave Love <fx@gnu.org>
parents:
diff changeset
8721 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
8722
Dave Love <fx@gnu.org>
parents:
diff changeset
8723 This will force sending @samp{AUTHINFO} commands to all servers not
Dave Love <fx@gnu.org>
parents:
diff changeset
8724 previously mentioned.
Dave Love <fx@gnu.org>
parents:
diff changeset
8725
Dave Love <fx@gnu.org>
parents:
diff changeset
8726 Remember to not leave the @file{~/.authinfo} file world-readable.
Dave Love <fx@gnu.org>
parents:
diff changeset
8727
Dave Love <fx@gnu.org>
parents:
diff changeset
8728 @item nntp-server-action-alist
Dave Love <fx@gnu.org>
parents:
diff changeset
8729 @vindex nntp-server-action-alist
Dave Love <fx@gnu.org>
parents:
diff changeset
8730 This is a list of regexps to match on server types and actions to be
Dave Love <fx@gnu.org>
parents:
diff changeset
8731 taken when matches are made. For instance, if you want Gnus to beep
Dave Love <fx@gnu.org>
parents:
diff changeset
8732 every time you connect to innd, you could say something like:
Dave Love <fx@gnu.org>
parents:
diff changeset
8733
Dave Love <fx@gnu.org>
parents:
diff changeset
8734 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
8735 (setq nntp-server-action-alist
Dave Love <fx@gnu.org>
parents:
diff changeset
8736 '(("innd" (ding))))
Dave Love <fx@gnu.org>
parents:
diff changeset
8737 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
8738
Dave Love <fx@gnu.org>
parents:
diff changeset
8739 You probably don't want to do that, though.
Dave Love <fx@gnu.org>
parents:
diff changeset
8740
Dave Love <fx@gnu.org>
parents:
diff changeset
8741 The default value is
Dave Love <fx@gnu.org>
parents:
diff changeset
8742
Dave Love <fx@gnu.org>
parents:
diff changeset
8743 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
8744 '(("nntpd 1\\.5\\.11t"
Dave Love <fx@gnu.org>
parents:
diff changeset
8745 (remove-hook 'nntp-server-opened-hook 'nntp-send-mode-reader)))
Dave Love <fx@gnu.org>
parents:
diff changeset
8746 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
8747
Dave Love <fx@gnu.org>
parents:
diff changeset
8748 This ensures that Gnus doesn't send the @code{MODE READER} command to
Dave Love <fx@gnu.org>
parents:
diff changeset
8749 nntpd 1.5.11t, since that command chokes that server, I've been told.
Dave Love <fx@gnu.org>
parents:
diff changeset
8750
Dave Love <fx@gnu.org>
parents:
diff changeset
8751 @item nntp-maximum-request
Dave Love <fx@gnu.org>
parents:
diff changeset
8752 @vindex nntp-maximum-request
Dave Love <fx@gnu.org>
parents:
diff changeset
8753 If the @sc{nntp} server doesn't support @sc{nov} headers, this backend
Dave Love <fx@gnu.org>
parents:
diff changeset
8754 will collect headers by sending a series of @code{head} commands. To
Dave Love <fx@gnu.org>
parents:
diff changeset
8755 speed things up, the backend sends lots of these commands without
Dave Love <fx@gnu.org>
parents:
diff changeset
8756 waiting for reply, and then reads all the replies. This is controlled
Dave Love <fx@gnu.org>
parents:
diff changeset
8757 by the @code{nntp-maximum-request} variable, and is 400 by default. If
Dave Love <fx@gnu.org>
parents:
diff changeset
8758 your network is buggy, you should set this to 1.
Dave Love <fx@gnu.org>
parents:
diff changeset
8759
Dave Love <fx@gnu.org>
parents:
diff changeset
8760 @item nntp-connection-timeout
Dave Love <fx@gnu.org>
parents:
diff changeset
8761 @vindex nntp-connection-timeout
Dave Love <fx@gnu.org>
parents:
diff changeset
8762 If you have lots of foreign @code{nntp} groups that you connect to
Dave Love <fx@gnu.org>
parents:
diff changeset
8763 regularly, you're sure to have problems with @sc{nntp} servers not
Dave Love <fx@gnu.org>
parents:
diff changeset
8764 responding properly, or being too loaded to reply within reasonable
Dave Love <fx@gnu.org>
parents:
diff changeset
8765 time. This is can lead to awkward problems, which can be helped
Dave Love <fx@gnu.org>
parents:
diff changeset
8766 somewhat by setting @code{nntp-connection-timeout}. This is an integer
Dave Love <fx@gnu.org>
parents:
diff changeset
8767 that says how many seconds the @code{nntp} backend should wait for a
Dave Love <fx@gnu.org>
parents:
diff changeset
8768 connection before giving up. If it is @code{nil}, which is the default,
Dave Love <fx@gnu.org>
parents:
diff changeset
8769 no timeouts are done.
Dave Love <fx@gnu.org>
parents:
diff changeset
8770
Dave Love <fx@gnu.org>
parents:
diff changeset
8771 @c @item nntp-command-timeout
Dave Love <fx@gnu.org>
parents:
diff changeset
8772 @c @vindex nntp-command-timeout
Dave Love <fx@gnu.org>
parents:
diff changeset
8773 @c @cindex PPP connections
Dave Love <fx@gnu.org>
parents:
diff changeset
8774 @c @cindex dynamic IP addresses
Dave Love <fx@gnu.org>
parents:
diff changeset
8775 @c If you're running Gnus on a machine that has a dynamically assigned
Dave Love <fx@gnu.org>
parents:
diff changeset
8776 @c address, Gnus may become confused. If the address of your machine
Dave Love <fx@gnu.org>
parents:
diff changeset
8777 @c changes after connecting to the @sc{nntp} server, Gnus will simply sit
Dave Love <fx@gnu.org>
parents:
diff changeset
8778 @c waiting forever for replies from the server. To help with this
Dave Love <fx@gnu.org>
parents:
diff changeset
8779 @c unfortunate problem, you can set this command to a number. Gnus will
Dave Love <fx@gnu.org>
parents:
diff changeset
8780 @c then, if it sits waiting for a reply from the server longer than that
Dave Love <fx@gnu.org>
parents:
diff changeset
8781 @c number of seconds, shut down the connection, start a new one, and resend
Dave Love <fx@gnu.org>
parents:
diff changeset
8782 @c the command. This should hopefully be transparent to the user. A
Dave Love <fx@gnu.org>
parents:
diff changeset
8783 @c likely number is 30 seconds.
Dave Love <fx@gnu.org>
parents:
diff changeset
8784 @c
Dave Love <fx@gnu.org>
parents:
diff changeset
8785 @c @item nntp-retry-on-break
Dave Love <fx@gnu.org>
parents:
diff changeset
8786 @c @vindex nntp-retry-on-break
Dave Love <fx@gnu.org>
parents:
diff changeset
8787 @c If this variable is non-@code{nil}, you can also @kbd{C-g} if Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
8788 @c hangs. This will have much the same effect as the command timeout
Dave Love <fx@gnu.org>
parents:
diff changeset
8789 @c described above.
Dave Love <fx@gnu.org>
parents:
diff changeset
8790
Dave Love <fx@gnu.org>
parents:
diff changeset
8791 @item nntp-server-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
8792 @vindex nntp-server-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
8793 This hook is run as the last step when connecting to an @sc{nntp}
Dave Love <fx@gnu.org>
parents:
diff changeset
8794 server.
Dave Love <fx@gnu.org>
parents:
diff changeset
8795
Dave Love <fx@gnu.org>
parents:
diff changeset
8796 @findex nntp-open-rlogin
Dave Love <fx@gnu.org>
parents:
diff changeset
8797 @findex nntp-open-telnet
Dave Love <fx@gnu.org>
parents:
diff changeset
8798 @findex nntp-open-network-stream
Dave Love <fx@gnu.org>
parents:
diff changeset
8799 @item nntp-open-connection-function
Dave Love <fx@gnu.org>
parents:
diff changeset
8800 @vindex nntp-open-connection-function
Dave Love <fx@gnu.org>
parents:
diff changeset
8801 This function is used to connect to the remote system. Four pre-made
Dave Love <fx@gnu.org>
parents:
diff changeset
8802 functions are supplied:
Dave Love <fx@gnu.org>
parents:
diff changeset
8803
Dave Love <fx@gnu.org>
parents:
diff changeset
8804 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
8805 @item nntp-open-network-stream
Dave Love <fx@gnu.org>
parents:
diff changeset
8806 This is the default, and simply connects to some port or other on the
Dave Love <fx@gnu.org>
parents:
diff changeset
8807 remote system.
Dave Love <fx@gnu.org>
parents:
diff changeset
8808
Dave Love <fx@gnu.org>
parents:
diff changeset
8809 @item nntp-open-rlogin
Dave Love <fx@gnu.org>
parents:
diff changeset
8810 Does an @samp{rlogin} on the
Dave Love <fx@gnu.org>
parents:
diff changeset
8811 remote system, and then does a @samp{telnet} to the @sc{nntp} server
Dave Love <fx@gnu.org>
parents:
diff changeset
8812 available there.
Dave Love <fx@gnu.org>
parents:
diff changeset
8813
Dave Love <fx@gnu.org>
parents:
diff changeset
8814 @code{nntp-open-rlogin}-related variables:
Dave Love <fx@gnu.org>
parents:
diff changeset
8815
Dave Love <fx@gnu.org>
parents:
diff changeset
8816 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
8817
Dave Love <fx@gnu.org>
parents:
diff changeset
8818 @item nntp-rlogin-program
Dave Love <fx@gnu.org>
parents:
diff changeset
8819 @vindex nntp-rlogin-program
Dave Love <fx@gnu.org>
parents:
diff changeset
8820 Program used to log in on remote machines. The default is @samp{rsh},
Dave Love <fx@gnu.org>
parents:
diff changeset
8821 but @samp{ssh} is a popular alternative.
Dave Love <fx@gnu.org>
parents:
diff changeset
8822
Dave Love <fx@gnu.org>
parents:
diff changeset
8823 @item nntp-rlogin-parameters
Dave Love <fx@gnu.org>
parents:
diff changeset
8824 @vindex nntp-rlogin-parameters
Dave Love <fx@gnu.org>
parents:
diff changeset
8825 This list will be used as the parameter list given to @code{rsh}.
Dave Love <fx@gnu.org>
parents:
diff changeset
8826
Dave Love <fx@gnu.org>
parents:
diff changeset
8827 @item nntp-rlogin-user-name
Dave Love <fx@gnu.org>
parents:
diff changeset
8828 @vindex nntp-rlogin-user-name
Dave Love <fx@gnu.org>
parents:
diff changeset
8829 User name on the remote system.
Dave Love <fx@gnu.org>
parents:
diff changeset
8830
Dave Love <fx@gnu.org>
parents:
diff changeset
8831 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
8832
Dave Love <fx@gnu.org>
parents:
diff changeset
8833 @item nntp-open-telnet
Dave Love <fx@gnu.org>
parents:
diff changeset
8834 Does a @samp{telnet} to the remote system and then another @samp{telnet}
Dave Love <fx@gnu.org>
parents:
diff changeset
8835 to get to the @sc{nntp} server.
Dave Love <fx@gnu.org>
parents:
diff changeset
8836
Dave Love <fx@gnu.org>
parents:
diff changeset
8837 @code{nntp-open-telnet}-related variables:
Dave Love <fx@gnu.org>
parents:
diff changeset
8838
Dave Love <fx@gnu.org>
parents:
diff changeset
8839 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
8840 @item nntp-telnet-command
Dave Love <fx@gnu.org>
parents:
diff changeset
8841 @vindex nntp-telnet-command
Dave Love <fx@gnu.org>
parents:
diff changeset
8842 Command used to start @code{telnet}.
Dave Love <fx@gnu.org>
parents:
diff changeset
8843
Dave Love <fx@gnu.org>
parents:
diff changeset
8844 @item nntp-telnet-switches
Dave Love <fx@gnu.org>
parents:
diff changeset
8845 @vindex nntp-telnet-switches
Dave Love <fx@gnu.org>
parents:
diff changeset
8846 List of strings to be used as the switches to the @code{telnet} command.
Dave Love <fx@gnu.org>
parents:
diff changeset
8847
Dave Love <fx@gnu.org>
parents:
diff changeset
8848 @item nntp-telnet-user-name
Dave Love <fx@gnu.org>
parents:
diff changeset
8849 @vindex nntp-telnet-user-name
Dave Love <fx@gnu.org>
parents:
diff changeset
8850 User name for log in on the remote system.
Dave Love <fx@gnu.org>
parents:
diff changeset
8851
Dave Love <fx@gnu.org>
parents:
diff changeset
8852 @item nntp-telnet-passwd
Dave Love <fx@gnu.org>
parents:
diff changeset
8853 @vindex nntp-telnet-passwd
Dave Love <fx@gnu.org>
parents:
diff changeset
8854 Password to use when logging in.
Dave Love <fx@gnu.org>
parents:
diff changeset
8855
Dave Love <fx@gnu.org>
parents:
diff changeset
8856 @item nntp-telnet-parameters
Dave Love <fx@gnu.org>
parents:
diff changeset
8857 @vindex nntp-telnet-parameters
Dave Love <fx@gnu.org>
parents:
diff changeset
8858 A list of strings executed as a command after logging in
Dave Love <fx@gnu.org>
parents:
diff changeset
8859 via @code{telnet}.
Dave Love <fx@gnu.org>
parents:
diff changeset
8860
Dave Love <fx@gnu.org>
parents:
diff changeset
8861 @item nntp-telnet-shell-prompt
Dave Love <fx@gnu.org>
parents:
diff changeset
8862 @vindex nntp-telnet-shell-prompt
Dave Love <fx@gnu.org>
parents:
diff changeset
8863 Regexp matching the shell prompt on the remote machine. The default is
Dave Love <fx@gnu.org>
parents:
diff changeset
8864 @samp{bash\\|\$ *\r?$\\|> *\r?}.
Dave Love <fx@gnu.org>
parents:
diff changeset
8865
Dave Love <fx@gnu.org>
parents:
diff changeset
8866 @item nntp-open-telnet-envuser
Dave Love <fx@gnu.org>
parents:
diff changeset
8867 @vindex nntp-open-telnet-envuser
Dave Love <fx@gnu.org>
parents:
diff changeset
8868 If non-@code{nil}, the @code{telnet} session (client and server both)
Dave Love <fx@gnu.org>
parents:
diff changeset
8869 will support the @code{ENVIRON} option and not prompt for login name.
Dave Love <fx@gnu.org>
parents:
diff changeset
8870 This works for Solaris @code{telnet}, for instance.
Dave Love <fx@gnu.org>
parents:
diff changeset
8871
Dave Love <fx@gnu.org>
parents:
diff changeset
8872 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
8873
Dave Love <fx@gnu.org>
parents:
diff changeset
8874 @findex nntp-open-ssl-stream
Dave Love <fx@gnu.org>
parents:
diff changeset
8875 @item nntp-open-ssl-stream
Dave Love <fx@gnu.org>
parents:
diff changeset
8876 Opens a connection to a server over a @dfn{secure} channel. To use this
Dave Love <fx@gnu.org>
parents:
diff changeset
8877 you must have SSLay installed
Dave Love <fx@gnu.org>
parents:
diff changeset
8878 (@file{ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL}, and you also need
Dave Love <fx@gnu.org>
parents:
diff changeset
8879 @file{ssl.el} (from the W3 distributeion, for instance). You then
Dave Love <fx@gnu.org>
parents:
diff changeset
8880 define a server as follows:
Dave Love <fx@gnu.org>
parents:
diff changeset
8881
Dave Love <fx@gnu.org>
parents:
diff changeset
8882 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
8883 ;; Type `C-c C-c' after you've finished editing.
Dave Love <fx@gnu.org>
parents:
diff changeset
8884 ;;
Dave Love <fx@gnu.org>
parents:
diff changeset
8885 ;; "snews" is port 563 and is predefined in our /etc/services
Dave Love <fx@gnu.org>
parents:
diff changeset
8886 ;;
Dave Love <fx@gnu.org>
parents:
diff changeset
8887 (nntp "snews.bar.com"
Dave Love <fx@gnu.org>
parents:
diff changeset
8888 (nntp-open-connection-function nntp-open-ssl-stream)
Dave Love <fx@gnu.org>
parents:
diff changeset
8889 (nntp-port-number "snews")
Dave Love <fx@gnu.org>
parents:
diff changeset
8890 (nntp-address "snews.bar.com"))
Dave Love <fx@gnu.org>
parents:
diff changeset
8891 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
8892
Dave Love <fx@gnu.org>
parents:
diff changeset
8893 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
8894
Dave Love <fx@gnu.org>
parents:
diff changeset
8895 @item nntp-end-of-line
Dave Love <fx@gnu.org>
parents:
diff changeset
8896 @vindex nntp-end-of-line
Dave Love <fx@gnu.org>
parents:
diff changeset
8897 String to use as end-of-line marker when talking to the @sc{nntp}
Dave Love <fx@gnu.org>
parents:
diff changeset
8898 server. This is @samp{\r\n} by default, but should be @samp{\n} when
Dave Love <fx@gnu.org>
parents:
diff changeset
8899 using @code{rlogin} to talk to the server.
Dave Love <fx@gnu.org>
parents:
diff changeset
8900
Dave Love <fx@gnu.org>
parents:
diff changeset
8901 @item nntp-rlogin-user-name
Dave Love <fx@gnu.org>
parents:
diff changeset
8902 @vindex nntp-rlogin-user-name
Dave Love <fx@gnu.org>
parents:
diff changeset
8903 User name on the remote system when using the @code{rlogin} connect
Dave Love <fx@gnu.org>
parents:
diff changeset
8904 function.
Dave Love <fx@gnu.org>
parents:
diff changeset
8905
Dave Love <fx@gnu.org>
parents:
diff changeset
8906 @item nntp-address
Dave Love <fx@gnu.org>
parents:
diff changeset
8907 @vindex nntp-address
Dave Love <fx@gnu.org>
parents:
diff changeset
8908 The address of the remote system running the @sc{nntp} server.
Dave Love <fx@gnu.org>
parents:
diff changeset
8909
Dave Love <fx@gnu.org>
parents:
diff changeset
8910 @item nntp-port-number
Dave Love <fx@gnu.org>
parents:
diff changeset
8911 @vindex nntp-port-number
Dave Love <fx@gnu.org>
parents:
diff changeset
8912 Port number to connect to when using the @code{nntp-open-network-stream}
Dave Love <fx@gnu.org>
parents:
diff changeset
8913 connect function.
Dave Love <fx@gnu.org>
parents:
diff changeset
8914
Dave Love <fx@gnu.org>
parents:
diff changeset
8915 @item nntp-buggy-select
Dave Love <fx@gnu.org>
parents:
diff changeset
8916 @vindex nntp-buggy-select
Dave Love <fx@gnu.org>
parents:
diff changeset
8917 Set this to non-@code{nil} if your select routine is buggy.
Dave Love <fx@gnu.org>
parents:
diff changeset
8918
Dave Love <fx@gnu.org>
parents:
diff changeset
8919 @item nntp-nov-is-evil
Dave Love <fx@gnu.org>
parents:
diff changeset
8920 @vindex nntp-nov-is-evil
Dave Love <fx@gnu.org>
parents:
diff changeset
8921 If the @sc{nntp} server does not support @sc{nov}, you could set this
Dave Love <fx@gnu.org>
parents:
diff changeset
8922 variable to @code{t}, but @code{nntp} usually checks automatically whether @sc{nov}
Dave Love <fx@gnu.org>
parents:
diff changeset
8923 can be used.
Dave Love <fx@gnu.org>
parents:
diff changeset
8924
Dave Love <fx@gnu.org>
parents:
diff changeset
8925 @item nntp-xover-commands
Dave Love <fx@gnu.org>
parents:
diff changeset
8926 @vindex nntp-xover-commands
Dave Love <fx@gnu.org>
parents:
diff changeset
8927 @cindex nov
Dave Love <fx@gnu.org>
parents:
diff changeset
8928 @cindex XOVER
Dave Love <fx@gnu.org>
parents:
diff changeset
8929 List of strings used as commands to fetch @sc{nov} lines from a
Dave Love <fx@gnu.org>
parents:
diff changeset
8930 server. The default value of this variable is @code{("XOVER"
Dave Love <fx@gnu.org>
parents:
diff changeset
8931 "XOVERVIEW")}.
Dave Love <fx@gnu.org>
parents:
diff changeset
8932
Dave Love <fx@gnu.org>
parents:
diff changeset
8933 @item nntp-nov-gap
Dave Love <fx@gnu.org>
parents:
diff changeset
8934 @vindex nntp-nov-gap
Dave Love <fx@gnu.org>
parents:
diff changeset
8935 @code{nntp} normally sends just one big request for @sc{nov} lines to
Dave Love <fx@gnu.org>
parents:
diff changeset
8936 the server. The server responds with one huge list of lines. However,
Dave Love <fx@gnu.org>
parents:
diff changeset
8937 if you have read articles 2-5000 in the group, and only want to read
Dave Love <fx@gnu.org>
parents:
diff changeset
8938 article 1 and 5001, that means that @code{nntp} will fetch 4999 @sc{nov}
Dave Love <fx@gnu.org>
parents:
diff changeset
8939 lines that you will not need. This variable says how
Dave Love <fx@gnu.org>
parents:
diff changeset
8940 big a gap between two consecutive articles is allowed to be before the
Dave Love <fx@gnu.org>
parents:
diff changeset
8941 @code{XOVER} request is split into several request. Note that if your
Dave Love <fx@gnu.org>
parents:
diff changeset
8942 network is fast, setting this variable to a really small number means
Dave Love <fx@gnu.org>
parents:
diff changeset
8943 that fetching will probably be slower. If this variable is @code{nil},
Dave Love <fx@gnu.org>
parents:
diff changeset
8944 @code{nntp} will never split requests. The default is 5.
Dave Love <fx@gnu.org>
parents:
diff changeset
8945
Dave Love <fx@gnu.org>
parents:
diff changeset
8946 @item nntp-prepare-server-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
8947 @vindex nntp-prepare-server-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
8948 A hook run before attempting to connect to an @sc{nntp} server.
Dave Love <fx@gnu.org>
parents:
diff changeset
8949
Dave Love <fx@gnu.org>
parents:
diff changeset
8950 @item nntp-warn-about-losing-connection
Dave Love <fx@gnu.org>
parents:
diff changeset
8951 @vindex nntp-warn-about-losing-connection
Dave Love <fx@gnu.org>
parents:
diff changeset
8952 If this variable is non-@code{nil}, some noise will be made when a
Dave Love <fx@gnu.org>
parents:
diff changeset
8953 server closes connection.
Dave Love <fx@gnu.org>
parents:
diff changeset
8954
Dave Love <fx@gnu.org>
parents:
diff changeset
8955 @item nntp-record-commands
Dave Love <fx@gnu.org>
parents:
diff changeset
8956 @vindex nntp-record-commands
Dave Love <fx@gnu.org>
parents:
diff changeset
8957 If non-@code{nil}, @code{nntp} will log all commands it sends to the
Dave Love <fx@gnu.org>
parents:
diff changeset
8958 @sc{nntp} server (along with a timestep) in the @samp{*nntp-log*}
Dave Love <fx@gnu.org>
parents:
diff changeset
8959 buffer. This is useful if you are debugging a Gnus/@sc{nntp} connection
Dave Love <fx@gnu.org>
parents:
diff changeset
8960 that doesn't seem to work.
Dave Love <fx@gnu.org>
parents:
diff changeset
8961
Dave Love <fx@gnu.org>
parents:
diff changeset
8962 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
8963
Dave Love <fx@gnu.org>
parents:
diff changeset
8964
Dave Love <fx@gnu.org>
parents:
diff changeset
8965 @node News Spool
Dave Love <fx@gnu.org>
parents:
diff changeset
8966 @subsection News Spool
Dave Love <fx@gnu.org>
parents:
diff changeset
8967 @cindex nnspool
Dave Love <fx@gnu.org>
parents:
diff changeset
8968 @cindex news spool
Dave Love <fx@gnu.org>
parents:
diff changeset
8969
Dave Love <fx@gnu.org>
parents:
diff changeset
8970 Subscribing to a foreign group from the local spool is extremely easy,
Dave Love <fx@gnu.org>
parents:
diff changeset
8971 and might be useful, for instance, to speed up reading groups that
Dave Love <fx@gnu.org>
parents:
diff changeset
8972 contain very big articles---@samp{alt.binaries.pictures.furniture}, for
Dave Love <fx@gnu.org>
parents:
diff changeset
8973 instance.
Dave Love <fx@gnu.org>
parents:
diff changeset
8974
Dave Love <fx@gnu.org>
parents:
diff changeset
8975 Anyways, you just specify @code{nnspool} as the method and @code{""} (or
Dave Love <fx@gnu.org>
parents:
diff changeset
8976 anything else) as the address.
Dave Love <fx@gnu.org>
parents:
diff changeset
8977
Dave Love <fx@gnu.org>
parents:
diff changeset
8978 If you have access to a local spool, you should probably use that as the
Dave Love <fx@gnu.org>
parents:
diff changeset
8979 native select method (@pxref{Finding the News}). It is normally faster
Dave Love <fx@gnu.org>
parents:
diff changeset
8980 than using an @code{nntp} select method, but might not be. It depends.
Dave Love <fx@gnu.org>
parents:
diff changeset
8981 You just have to try to find out what's best at your site.
Dave Love <fx@gnu.org>
parents:
diff changeset
8982
Dave Love <fx@gnu.org>
parents:
diff changeset
8983 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
8984
Dave Love <fx@gnu.org>
parents:
diff changeset
8985 @item nnspool-inews-program
Dave Love <fx@gnu.org>
parents:
diff changeset
8986 @vindex nnspool-inews-program
Dave Love <fx@gnu.org>
parents:
diff changeset
8987 Program used to post an article.
Dave Love <fx@gnu.org>
parents:
diff changeset
8988
Dave Love <fx@gnu.org>
parents:
diff changeset
8989 @item nnspool-inews-switches
Dave Love <fx@gnu.org>
parents:
diff changeset
8990 @vindex nnspool-inews-switches
Dave Love <fx@gnu.org>
parents:
diff changeset
8991 Parameters given to the inews program when posting an article.
Dave Love <fx@gnu.org>
parents:
diff changeset
8992
Dave Love <fx@gnu.org>
parents:
diff changeset
8993 @item nnspool-spool-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
8994 @vindex nnspool-spool-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
8995 Where @code{nnspool} looks for the articles. This is normally
Dave Love <fx@gnu.org>
parents:
diff changeset
8996 @file{/usr/spool/news/}.
Dave Love <fx@gnu.org>
parents:
diff changeset
8997
Dave Love <fx@gnu.org>
parents:
diff changeset
8998 @item nnspool-nov-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
8999 @vindex nnspool-nov-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
9000 Where @code{nnspool} will look for @sc{nov} files. This is normally
Dave Love <fx@gnu.org>
parents:
diff changeset
9001 @file{/usr/spool/news/over.view/}.
Dave Love <fx@gnu.org>
parents:
diff changeset
9002
Dave Love <fx@gnu.org>
parents:
diff changeset
9003 @item nnspool-lib-dir
Dave Love <fx@gnu.org>
parents:
diff changeset
9004 @vindex nnspool-lib-dir
Dave Love <fx@gnu.org>
parents:
diff changeset
9005 Where the news lib dir is (@file{/usr/lib/news/} by default).
Dave Love <fx@gnu.org>
parents:
diff changeset
9006
Dave Love <fx@gnu.org>
parents:
diff changeset
9007 @item nnspool-active-file
Dave Love <fx@gnu.org>
parents:
diff changeset
9008 @vindex nnspool-active-file
Dave Love <fx@gnu.org>
parents:
diff changeset
9009 The path to the active file.
Dave Love <fx@gnu.org>
parents:
diff changeset
9010
Dave Love <fx@gnu.org>
parents:
diff changeset
9011 @item nnspool-newsgroups-file
Dave Love <fx@gnu.org>
parents:
diff changeset
9012 @vindex nnspool-newsgroups-file
Dave Love <fx@gnu.org>
parents:
diff changeset
9013 The path to the group descriptions file.
Dave Love <fx@gnu.org>
parents:
diff changeset
9014
Dave Love <fx@gnu.org>
parents:
diff changeset
9015 @item nnspool-history-file
Dave Love <fx@gnu.org>
parents:
diff changeset
9016 @vindex nnspool-history-file
Dave Love <fx@gnu.org>
parents:
diff changeset
9017 The path to the news history file.
Dave Love <fx@gnu.org>
parents:
diff changeset
9018
Dave Love <fx@gnu.org>
parents:
diff changeset
9019 @item nnspool-active-times-file
Dave Love <fx@gnu.org>
parents:
diff changeset
9020 @vindex nnspool-active-times-file
Dave Love <fx@gnu.org>
parents:
diff changeset
9021 The path to the active date file.
Dave Love <fx@gnu.org>
parents:
diff changeset
9022
Dave Love <fx@gnu.org>
parents:
diff changeset
9023 @item nnspool-nov-is-evil
Dave Love <fx@gnu.org>
parents:
diff changeset
9024 @vindex nnspool-nov-is-evil
Dave Love <fx@gnu.org>
parents:
diff changeset
9025 If non-@code{nil}, @code{nnspool} won't try to use any @sc{nov} files
Dave Love <fx@gnu.org>
parents:
diff changeset
9026 that it finds.
Dave Love <fx@gnu.org>
parents:
diff changeset
9027
Dave Love <fx@gnu.org>
parents:
diff changeset
9028 @item nnspool-sift-nov-with-sed
Dave Love <fx@gnu.org>
parents:
diff changeset
9029 @vindex nnspool-sift-nov-with-sed
Dave Love <fx@gnu.org>
parents:
diff changeset
9030 @cindex sed
Dave Love <fx@gnu.org>
parents:
diff changeset
9031 If non-@code{nil}, which is the default, use @code{sed} to get the
Dave Love <fx@gnu.org>
parents:
diff changeset
9032 relevant portion from the overview file. If nil, @code{nnspool} will
Dave Love <fx@gnu.org>
parents:
diff changeset
9033 load the entire file into a buffer and process it there.
Dave Love <fx@gnu.org>
parents:
diff changeset
9034
Dave Love <fx@gnu.org>
parents:
diff changeset
9035 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
9036
Dave Love <fx@gnu.org>
parents:
diff changeset
9037
Dave Love <fx@gnu.org>
parents:
diff changeset
9038 @node Getting Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
9039 @section Getting Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
9040 @cindex reading mail
Dave Love <fx@gnu.org>
parents:
diff changeset
9041 @cindex mail
Dave Love <fx@gnu.org>
parents:
diff changeset
9042
Dave Love <fx@gnu.org>
parents:
diff changeset
9043 Reading mail with a newsreader---isn't that just plain WeIrD? But of
Dave Love <fx@gnu.org>
parents:
diff changeset
9044 course.
Dave Love <fx@gnu.org>
parents:
diff changeset
9045
Dave Love <fx@gnu.org>
parents:
diff changeset
9046 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
9047 * Getting Started Reading Mail:: A simple cookbook example.
Dave Love <fx@gnu.org>
parents:
diff changeset
9048 * Splitting Mail:: How to create mail groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
9049 * Mail Backend Variables:: Variables for customizing mail handling.
Dave Love <fx@gnu.org>
parents:
diff changeset
9050 * Fancy Mail Splitting:: Gnus can do hairy splitting of incoming mail.
Dave Love <fx@gnu.org>
parents:
diff changeset
9051 * Mail and Procmail:: Reading mail groups that procmail create.
Dave Love <fx@gnu.org>
parents:
diff changeset
9052 * Incorporating Old Mail:: What about the old mail you have?
Dave Love <fx@gnu.org>
parents:
diff changeset
9053 * Expiring Mail:: Getting rid of unwanted mail.
Dave Love <fx@gnu.org>
parents:
diff changeset
9054 * Washing Mail:: Removing gruft from the mail you get.
Dave Love <fx@gnu.org>
parents:
diff changeset
9055 * Duplicates:: Dealing with duplicated mail.
Dave Love <fx@gnu.org>
parents:
diff changeset
9056 * Not Reading Mail:: Using mail backends for reading other files.
Dave Love <fx@gnu.org>
parents:
diff changeset
9057 * Choosing a Mail Backend:: Gnus can read a variety of mail formats.
Dave Love <fx@gnu.org>
parents:
diff changeset
9058 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
9059
Dave Love <fx@gnu.org>
parents:
diff changeset
9060
Dave Love <fx@gnu.org>
parents:
diff changeset
9061 @node Getting Started Reading Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
9062 @subsection Getting Started Reading Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
9063
Dave Love <fx@gnu.org>
parents:
diff changeset
9064 It's quite easy to use Gnus to read your new mail. You just plonk the
Dave Love <fx@gnu.org>
parents:
diff changeset
9065 mail backend of your choice into @code{gnus-secondary-select-methods},
Dave Love <fx@gnu.org>
parents:
diff changeset
9066 and things will happen automatically.
Dave Love <fx@gnu.org>
parents:
diff changeset
9067
Dave Love <fx@gnu.org>
parents:
diff changeset
9068 For instance, if you want to use @code{nnml} (which is a "one file per
Dave Love <fx@gnu.org>
parents:
diff changeset
9069 mail" backend), you could put the following in your @file{.gnus} file:
Dave Love <fx@gnu.org>
parents:
diff changeset
9070
Dave Love <fx@gnu.org>
parents:
diff changeset
9071 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
9072 (setq gnus-secondary-select-methods
Dave Love <fx@gnu.org>
parents:
diff changeset
9073 '((nnml "private")))
Dave Love <fx@gnu.org>
parents:
diff changeset
9074 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
9075
Dave Love <fx@gnu.org>
parents:
diff changeset
9076 Now, the next time you start Gnus, this backend will be queried for new
Dave Love <fx@gnu.org>
parents:
diff changeset
9077 articles, and it will move all the messages in your spool file to its
Dave Love <fx@gnu.org>
parents:
diff changeset
9078 directory, which is @code{~/Mail/} by default. The new group that will
Dave Love <fx@gnu.org>
parents:
diff changeset
9079 be created (@samp{mail.misc}) will be subscribed, and you can read it
Dave Love <fx@gnu.org>
parents:
diff changeset
9080 like any other group.
Dave Love <fx@gnu.org>
parents:
diff changeset
9081
Dave Love <fx@gnu.org>
parents:
diff changeset
9082 You will probably want to split the mail into several groups, though:
Dave Love <fx@gnu.org>
parents:
diff changeset
9083
Dave Love <fx@gnu.org>
parents:
diff changeset
9084 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
9085 (setq nnmail-split-methods
Dave Love <fx@gnu.org>
parents:
diff changeset
9086 '(("junk" "^From:.*Lars Ingebrigtsen")
Dave Love <fx@gnu.org>
parents:
diff changeset
9087 ("crazy" "^Subject:.*die\\|^Organization:.*flabby")
Dave Love <fx@gnu.org>
parents:
diff changeset
9088 ("other" "")))
Dave Love <fx@gnu.org>
parents:
diff changeset
9089 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
9090
Dave Love <fx@gnu.org>
parents:
diff changeset
9091 This will result in three new @code{nnml} mail groups being created:
Dave Love <fx@gnu.org>
parents:
diff changeset
9092 @samp{nnml:junk}, @samp{nnml:crazy}, and @samp{nnml:other}. All the
Dave Love <fx@gnu.org>
parents:
diff changeset
9093 mail that doesn't fit into the first two groups will be placed in the
Dave Love <fx@gnu.org>
parents:
diff changeset
9094 last group.
Dave Love <fx@gnu.org>
parents:
diff changeset
9095
Dave Love <fx@gnu.org>
parents:
diff changeset
9096 This should be sufficient for reading mail with Gnus. You might want to
Dave Love <fx@gnu.org>
parents:
diff changeset
9097 give the other sections in this part of the manual a perusal, though.
Dave Love <fx@gnu.org>
parents:
diff changeset
9098 Especially @pxref{Choosing a Mail Backend} and @pxref{Expiring Mail}.
Dave Love <fx@gnu.org>
parents:
diff changeset
9099
Dave Love <fx@gnu.org>
parents:
diff changeset
9100
Dave Love <fx@gnu.org>
parents:
diff changeset
9101 @node Splitting Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
9102 @subsection Splitting Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
9103 @cindex splitting mail
Dave Love <fx@gnu.org>
parents:
diff changeset
9104 @cindex mail splitting
Dave Love <fx@gnu.org>
parents:
diff changeset
9105
Dave Love <fx@gnu.org>
parents:
diff changeset
9106 @vindex nnmail-split-methods
Dave Love <fx@gnu.org>
parents:
diff changeset
9107 The @code{nnmail-split-methods} variable says how the incoming mail is
Dave Love <fx@gnu.org>
parents:
diff changeset
9108 to be split into groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
9109
Dave Love <fx@gnu.org>
parents:
diff changeset
9110 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
9111 (setq nnmail-split-methods
Dave Love <fx@gnu.org>
parents:
diff changeset
9112 '(("mail.junk" "^From:.*Lars Ingebrigtsen")
Dave Love <fx@gnu.org>
parents:
diff changeset
9113 ("mail.crazy" "^Subject:.*die\\|^Organization:.*flabby")
Dave Love <fx@gnu.org>
parents:
diff changeset
9114 ("mail.other" "")))
Dave Love <fx@gnu.org>
parents:
diff changeset
9115 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
9116
Dave Love <fx@gnu.org>
parents:
diff changeset
9117 This variable is a list of lists, where the first element of each of
Dave Love <fx@gnu.org>
parents:
diff changeset
9118 these lists is the name of the mail group (they do not have to be called
Dave Love <fx@gnu.org>
parents:
diff changeset
9119 something beginning with @samp{mail}, by the way), and the second
Dave Love <fx@gnu.org>
parents:
diff changeset
9120 element is a regular expression used on the header of each mail to
Dave Love <fx@gnu.org>
parents:
diff changeset
9121 determine if it belongs in this mail group. The first string may
Dave Love <fx@gnu.org>
parents:
diff changeset
9122 contain @samp{\\1} forms, like the ones used by @code{replace-match} to
Dave Love <fx@gnu.org>
parents:
diff changeset
9123 insert sub-expressions from the matched text. For instance:
Dave Love <fx@gnu.org>
parents:
diff changeset
9124
Dave Love <fx@gnu.org>
parents:
diff changeset
9125 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
9126 ("list.\\1" "From:.*\\(.*\\)-list@@majordomo.com")
Dave Love <fx@gnu.org>
parents:
diff changeset
9127 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
9128
Dave Love <fx@gnu.org>
parents:
diff changeset
9129 The second element can also be a function. In that case, it will be
Dave Love <fx@gnu.org>
parents:
diff changeset
9130 called narrowed to the headers with the first element of the rule as the
Dave Love <fx@gnu.org>
parents:
diff changeset
9131 argument. It should return a non-@code{nil} value if it thinks that the
Dave Love <fx@gnu.org>
parents:
diff changeset
9132 mail belongs in that group.
Dave Love <fx@gnu.org>
parents:
diff changeset
9133
Dave Love <fx@gnu.org>
parents:
diff changeset
9134 The last of these groups should always be a general one, and the regular
Dave Love <fx@gnu.org>
parents:
diff changeset
9135 expression should @emph{always} be @samp{} so that it matches any mails
Dave Love <fx@gnu.org>
parents:
diff changeset
9136 that haven't been matched by any of the other regexps. (These rules are
Dave Love <fx@gnu.org>
parents:
diff changeset
9137 processed from the beginning of the alist toward the end. The first
Dave Love <fx@gnu.org>
parents:
diff changeset
9138 rule to make a match will "win", unless you have crossposting enabled.
Dave Love <fx@gnu.org>
parents:
diff changeset
9139 In that case, all matching rules will "win".)
Dave Love <fx@gnu.org>
parents:
diff changeset
9140
Dave Love <fx@gnu.org>
parents:
diff changeset
9141 If you like to tinker with this yourself, you can set this variable to a
Dave Love <fx@gnu.org>
parents:
diff changeset
9142 function of your choice. This function will be called without any
Dave Love <fx@gnu.org>
parents:
diff changeset
9143 arguments in a buffer narrowed to the headers of an incoming mail
Dave Love <fx@gnu.org>
parents:
diff changeset
9144 message. The function should return a list of group names that it
Dave Love <fx@gnu.org>
parents:
diff changeset
9145 thinks should carry this mail message.
Dave Love <fx@gnu.org>
parents:
diff changeset
9146
Dave Love <fx@gnu.org>
parents:
diff changeset
9147 Note that the mail backends are free to maul the poor, innocent,
Dave Love <fx@gnu.org>
parents:
diff changeset
9148 incoming headers all they want to. They all add @code{Lines} headers;
Dave Love <fx@gnu.org>
parents:
diff changeset
9149 some add @code{X-Gnus-Group} headers; most rename the Unix mbox
Dave Love <fx@gnu.org>
parents:
diff changeset
9150 @code{From<SPACE>} line to something else.
Dave Love <fx@gnu.org>
parents:
diff changeset
9151
Dave Love <fx@gnu.org>
parents:
diff changeset
9152 @vindex nnmail-crosspost
Dave Love <fx@gnu.org>
parents:
diff changeset
9153 The mail backends all support cross-posting. If several regexps match,
Dave Love <fx@gnu.org>
parents:
diff changeset
9154 the mail will be ``cross-posted'' to all those groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
9155 @code{nnmail-crosspost} says whether to use this mechanism or not. Note
Dave Love <fx@gnu.org>
parents:
diff changeset
9156 that no articles are crossposted to the general (@samp{}) group.
Dave Love <fx@gnu.org>
parents:
diff changeset
9157
Dave Love <fx@gnu.org>
parents:
diff changeset
9158 @vindex nnmail-crosspost-link-function
Dave Love <fx@gnu.org>
parents:
diff changeset
9159 @cindex crosspost
Dave Love <fx@gnu.org>
parents:
diff changeset
9160 @cindex links
Dave Love <fx@gnu.org>
parents:
diff changeset
9161 @code{nnmh} and @code{nnml} makes crossposts by creating hard links to
Dave Love <fx@gnu.org>
parents:
diff changeset
9162 the crossposted articles. However, not all file systems support hard
Dave Love <fx@gnu.org>
parents:
diff changeset
9163 links. If that's the case for you, set
Dave Love <fx@gnu.org>
parents:
diff changeset
9164 @code{nnmail-crosspost-link-function} to @code{copy-file}. (This
Dave Love <fx@gnu.org>
parents:
diff changeset
9165 variable is @code{add-name-to-file} by default.)
Dave Love <fx@gnu.org>
parents:
diff changeset
9166
Dave Love <fx@gnu.org>
parents:
diff changeset
9167 @kindex M-x nnmail-split-history
Dave Love <fx@gnu.org>
parents:
diff changeset
9168 @kindex nnmail-split-history
Dave Love <fx@gnu.org>
parents:
diff changeset
9169 If you wish to see where the previous mail split put the messages, you
Dave Love <fx@gnu.org>
parents:
diff changeset
9170 can use the @kbd{M-x nnmail-split-history} command.
Dave Love <fx@gnu.org>
parents:
diff changeset
9171
Dave Love <fx@gnu.org>
parents:
diff changeset
9172 Gnus gives you all the opportunity you could possibly want for shooting
Dave Love <fx@gnu.org>
parents:
diff changeset
9173 yourself in the foot. Let's say you create a group that will contain
Dave Love <fx@gnu.org>
parents:
diff changeset
9174 all the mail you get from your boss. And then you accidentally
Dave Love <fx@gnu.org>
parents:
diff changeset
9175 unsubscribe from the group. Gnus will still put all the mail from your
Dave Love <fx@gnu.org>
parents:
diff changeset
9176 boss in the unsubscribed group, and so, when your boss mails you ``Have
Dave Love <fx@gnu.org>
parents:
diff changeset
9177 that report ready by Monday or you're fired!'', you'll never see it and,
Dave Love <fx@gnu.org>
parents:
diff changeset
9178 come Tuesday, you'll still believe that you're gainfully employed while
Dave Love <fx@gnu.org>
parents:
diff changeset
9179 you really should be out collecting empty bottles to save up for next
Dave Love <fx@gnu.org>
parents:
diff changeset
9180 month's rent money.
Dave Love <fx@gnu.org>
parents:
diff changeset
9181
Dave Love <fx@gnu.org>
parents:
diff changeset
9182
Dave Love <fx@gnu.org>
parents:
diff changeset
9183 @node Mail Backend Variables
Dave Love <fx@gnu.org>
parents:
diff changeset
9184 @subsection Mail Backend Variables
Dave Love <fx@gnu.org>
parents:
diff changeset
9185
Dave Love <fx@gnu.org>
parents:
diff changeset
9186 These variables are (for the most part) pertinent to all the various
Dave Love <fx@gnu.org>
parents:
diff changeset
9187 mail backends.
Dave Love <fx@gnu.org>
parents:
diff changeset
9188
Dave Love <fx@gnu.org>
parents:
diff changeset
9189 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
9190 @vindex nnmail-read-incoming-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
9191 @item nnmail-read-incoming-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
9192 The mail backends all call this hook after reading new mail. You can
Dave Love <fx@gnu.org>
parents:
diff changeset
9193 use this hook to notify any mail watch programs, if you want to.
Dave Love <fx@gnu.org>
parents:
diff changeset
9194
Dave Love <fx@gnu.org>
parents:
diff changeset
9195 @vindex nnmail-spool-file
Dave Love <fx@gnu.org>
parents:
diff changeset
9196 @item nnmail-spool-file
Dave Love <fx@gnu.org>
parents:
diff changeset
9197 @cindex POP mail
Dave Love <fx@gnu.org>
parents:
diff changeset
9198 @cindex MAILHOST
Dave Love <fx@gnu.org>
parents:
diff changeset
9199 @cindex movemail
Dave Love <fx@gnu.org>
parents:
diff changeset
9200 @vindex nnmail-pop-password
Dave Love <fx@gnu.org>
parents:
diff changeset
9201 @vindex nnmail-pop-password-required
Dave Love <fx@gnu.org>
parents:
diff changeset
9202 The backends will look for new mail in this file. If this variable is
Dave Love <fx@gnu.org>
parents:
diff changeset
9203 @code{nil}, the mail backends will never attempt to fetch mail by
Dave Love <fx@gnu.org>
parents:
diff changeset
9204 themselves. If you are using a POP mail server and your name is
Dave Love <fx@gnu.org>
parents:
diff changeset
9205 @samp{larsi}, you should set this variable to @samp{po:larsi}. If
Dave Love <fx@gnu.org>
parents:
diff changeset
9206 your name is not @samp{larsi}, you should probably modify that
Dave Love <fx@gnu.org>
parents:
diff changeset
9207 slightly, but you may have guessed that already, you smart & handsome
Dave Love <fx@gnu.org>
parents:
diff changeset
9208 devil! You can also set this variable to @code{pop}, and Gnus will try
Dave Love <fx@gnu.org>
parents:
diff changeset
9209 to figure out the POP mail string by itself. In any case, Gnus will
Dave Love <fx@gnu.org>
parents:
diff changeset
9210 call @code{movemail} which will contact the POP server named in the
26795
30686fc6c31e POP server may be specified in nnmail-spool-file.
Gerd Moellmann <gerd@gnu.org>
parents: 26290
diff changeset
9211 @code{MAILHOST} environment variable. You may also specify the POP
30686fc6c31e POP server may be specified in nnmail-spool-file.
Gerd Moellmann <gerd@gnu.org>
parents: 26290
diff changeset
9212 server host name in @code{nnmail-spool-file} using the syntax
30686fc6c31e POP server may be specified in nnmail-spool-file.
Gerd Moellmann <gerd@gnu.org>
parents: 26290
diff changeset
9213 @samp{po:larsi:@var{pop-server-host-name}}. If the POP server needs a
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
9214 password, you can either set @code{nnmail-pop-password-required} to
Dave Love <fx@gnu.org>
parents:
diff changeset
9215 @code{t} and be prompted for the password, or set
Dave Love <fx@gnu.org>
parents:
diff changeset
9216 @code{nnmail-pop-password} to the password itself.
Dave Love <fx@gnu.org>
parents:
diff changeset
9217
Dave Love <fx@gnu.org>
parents:
diff changeset
9218 @code{nnmail-spool-file} can also be a list of mailboxes.
Dave Love <fx@gnu.org>
parents:
diff changeset
9219
Dave Love <fx@gnu.org>
parents:
diff changeset
9220 Your Emacs has to have been configured with @samp{--with-pop} before
Dave Love <fx@gnu.org>
parents:
diff changeset
9221 compilation. This is the default, but some installations have it
Dave Love <fx@gnu.org>
parents:
diff changeset
9222 switched off.
Dave Love <fx@gnu.org>
parents:
diff changeset
9223
Dave Love <fx@gnu.org>
parents:
diff changeset
9224 When you use a mail backend, Gnus will slurp all your mail from your
Dave Love <fx@gnu.org>
parents:
diff changeset
9225 inbox and plonk it down in your home directory. Gnus doesn't move any
Dave Love <fx@gnu.org>
parents:
diff changeset
9226 mail if you're not using a mail backend---you have to do a lot of magic
Dave Love <fx@gnu.org>
parents:
diff changeset
9227 invocations first. At the time when you have finished drawing the
Dave Love <fx@gnu.org>
parents:
diff changeset
9228 pentagram, lightened the candles, and sacrificed the goat, you really
Dave Love <fx@gnu.org>
parents:
diff changeset
9229 shouldn't be too surprised when Gnus moves your mail.
Dave Love <fx@gnu.org>
parents:
diff changeset
9230
Dave Love <fx@gnu.org>
parents:
diff changeset
9231 @vindex nnmail-use-procmail
Dave Love <fx@gnu.org>
parents:
diff changeset
9232 @vindex nnmail-procmail-suffix
Dave Love <fx@gnu.org>
parents:
diff changeset
9233 @item nnmail-use-procmail
Dave Love <fx@gnu.org>
parents:
diff changeset
9234 If non-@code{nil}, the mail backends will look in
Dave Love <fx@gnu.org>
parents:
diff changeset
9235 @code{nnmail-procmail-directory} for incoming mail. All the files in
Dave Love <fx@gnu.org>
parents:
diff changeset
9236 that directory that have names ending in @code{nnmail-procmail-suffix}
Dave Love <fx@gnu.org>
parents:
diff changeset
9237 will be considered incoming mailboxes, and will be searched for new
Dave Love <fx@gnu.org>
parents:
diff changeset
9238 mail.
Dave Love <fx@gnu.org>
parents:
diff changeset
9239
Dave Love <fx@gnu.org>
parents:
diff changeset
9240 @vindex nnmail-crash-box
Dave Love <fx@gnu.org>
parents:
diff changeset
9241 @item nnmail-crash-box
Dave Love <fx@gnu.org>
parents:
diff changeset
9242 When a mail backend reads a spool file, mail is first moved to this
Dave Love <fx@gnu.org>
parents:
diff changeset
9243 file, which is @file{~/.gnus-crash-box} by default. If this file
Dave Love <fx@gnu.org>
parents:
diff changeset
9244 already exists, it will always be read (and incorporated) before any
Dave Love <fx@gnu.org>
parents:
diff changeset
9245 other spool files.
Dave Love <fx@gnu.org>
parents:
diff changeset
9246
Dave Love <fx@gnu.org>
parents:
diff changeset
9247 @vindex nnmail-prepare-incoming-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
9248 @item nnmail-prepare-incoming-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
9249 This is run in a buffer that holds all the new incoming mail, and can be
Dave Love <fx@gnu.org>
parents:
diff changeset
9250 used for, well, anything, really.
Dave Love <fx@gnu.org>
parents:
diff changeset
9251
Dave Love <fx@gnu.org>
parents:
diff changeset
9252 @vindex nnmail-split-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
9253 @item nnmail-split-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
9254 @findex article-decode-rfc1522
Dave Love <fx@gnu.org>
parents:
diff changeset
9255 @findex RFC1522 decoding
Dave Love <fx@gnu.org>
parents:
diff changeset
9256 Hook run in the buffer where the mail headers of each message is kept
Dave Love <fx@gnu.org>
parents:
diff changeset
9257 just before the splitting based on these headers is done. The hook is
Dave Love <fx@gnu.org>
parents:
diff changeset
9258 free to modify the buffer contents in any way it sees fit---the buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
9259 is discarded after the splitting has been done, and no changes performed
Dave Love <fx@gnu.org>
parents:
diff changeset
9260 in the buffer will show up in any files. @code{gnus-article-decode-rfc1522}
Dave Love <fx@gnu.org>
parents:
diff changeset
9261 is one likely function to add to this hook.
Dave Love <fx@gnu.org>
parents:
diff changeset
9262
Dave Love <fx@gnu.org>
parents:
diff changeset
9263 @vindex nnmail-pre-get-new-mail-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
9264 @vindex nnmail-post-get-new-mail-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
9265 @item nnmail-pre-get-new-mail-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
9266 @itemx nnmail-post-get-new-mail-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
9267 These are two useful hooks executed when treating new incoming
Dave Love <fx@gnu.org>
parents:
diff changeset
9268 mail---@code{nnmail-pre-get-new-mail-hook} (is called just before
Dave Love <fx@gnu.org>
parents:
diff changeset
9269 starting to handle the new mail) and
Dave Love <fx@gnu.org>
parents:
diff changeset
9270 @code{nnmail-post-get-new-mail-hook} (is called when the mail handling
Dave Love <fx@gnu.org>
parents:
diff changeset
9271 is done). Here's and example of using these two hooks to change the
Dave Love <fx@gnu.org>
parents:
diff changeset
9272 default file modes the new mail files get:
Dave Love <fx@gnu.org>
parents:
diff changeset
9273
Dave Love <fx@gnu.org>
parents:
diff changeset
9274 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
9275 (add-hook 'gnus-pre-get-new-mail-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
9276 (lambda () (set-default-file-modes 511)))
Dave Love <fx@gnu.org>
parents:
diff changeset
9277
Dave Love <fx@gnu.org>
parents:
diff changeset
9278 (add-hook 'gnus-post-get-new-mail-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
9279 (lambda () (set-default-file-modes 551)))
Dave Love <fx@gnu.org>
parents:
diff changeset
9280 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
9281
Dave Love <fx@gnu.org>
parents:
diff changeset
9282 @item nnmail-tmp-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
9283 @vindex nnmail-tmp-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
9284 This variable says where to move incoming mail to -- while processing
Dave Love <fx@gnu.org>
parents:
diff changeset
9285 it. This is usually done in the same directory that the mail backend
Dave Love <fx@gnu.org>
parents:
diff changeset
9286 inhabits (e.g., @file{~/Mail/}), but if this variable is non-@code{nil},
Dave Love <fx@gnu.org>
parents:
diff changeset
9287 it will be used instead.
Dave Love <fx@gnu.org>
parents:
diff changeset
9288
Dave Love <fx@gnu.org>
parents:
diff changeset
9289 @item nnmail-movemail-program
Dave Love <fx@gnu.org>
parents:
diff changeset
9290 @vindex nnmail-movemail-program
Dave Love <fx@gnu.org>
parents:
diff changeset
9291 This program is executed to move mail from the user's inbox to her home
Dave Love <fx@gnu.org>
parents:
diff changeset
9292 directory. The default is @samp{movemail}.
Dave Love <fx@gnu.org>
parents:
diff changeset
9293
Dave Love <fx@gnu.org>
parents:
diff changeset
9294 This can also be a function. In that case, the function will be called
Dave Love <fx@gnu.org>
parents:
diff changeset
9295 with two parameters -- the name of the inbox, and the file to be moved
Dave Love <fx@gnu.org>
parents:
diff changeset
9296 to.
Dave Love <fx@gnu.org>
parents:
diff changeset
9297
Dave Love <fx@gnu.org>
parents:
diff changeset
9298 @item nnmail-delete-incoming
Dave Love <fx@gnu.org>
parents:
diff changeset
9299 @vindex nnmail-delete-incoming
Dave Love <fx@gnu.org>
parents:
diff changeset
9300 @cindex incoming mail files
Dave Love <fx@gnu.org>
parents:
diff changeset
9301 @cindex deleting incoming files
Dave Love <fx@gnu.org>
parents:
diff changeset
9302 If non-@code{nil}, the mail backends will delete the temporary incoming
Dave Love <fx@gnu.org>
parents:
diff changeset
9303 file after splitting mail into the proper groups. This is @code{t} by
Dave Love <fx@gnu.org>
parents:
diff changeset
9304 default.
Dave Love <fx@gnu.org>
parents:
diff changeset
9305
Dave Love <fx@gnu.org>
parents:
diff changeset
9306 @c This is @code{nil} by
Dave Love <fx@gnu.org>
parents:
diff changeset
9307 @c default for reasons of security.
Dave Love <fx@gnu.org>
parents:
diff changeset
9308
Dave Love <fx@gnu.org>
parents:
diff changeset
9309 @c Since Red Gnus is an alpha release, it is to be expected to lose mail.
Dave Love <fx@gnu.org>
parents:
diff changeset
9310 (No Gnus release since (ding) Gnus 0.10 (or something like that) have
Dave Love <fx@gnu.org>
parents:
diff changeset
9311 lost mail, I think, but that's not the point. (Except certain versions
Dave Love <fx@gnu.org>
parents:
diff changeset
9312 of Red Gnus.)) By not deleting the Incoming* files, one can be sure not
Dave Love <fx@gnu.org>
parents:
diff changeset
9313 to lose mail -- if Gnus totally whacks out, one can always recover what
Dave Love <fx@gnu.org>
parents:
diff changeset
9314 was lost.
Dave Love <fx@gnu.org>
parents:
diff changeset
9315
Dave Love <fx@gnu.org>
parents:
diff changeset
9316 You may delete the @file{Incoming*} files at will.
Dave Love <fx@gnu.org>
parents:
diff changeset
9317
Dave Love <fx@gnu.org>
parents:
diff changeset
9318 @item nnmail-use-long-file-names
Dave Love <fx@gnu.org>
parents:
diff changeset
9319 @vindex nnmail-use-long-file-names
Dave Love <fx@gnu.org>
parents:
diff changeset
9320 If non-@code{nil}, the mail backends will use long file and directory
Dave Love <fx@gnu.org>
parents:
diff changeset
9321 names. Groups like @samp{mail.misc} will end up in directories
Dave Love <fx@gnu.org>
parents:
diff changeset
9322 (assuming use of @code{nnml} backend) or files (assuming use of
Dave Love <fx@gnu.org>
parents:
diff changeset
9323 @code{nnfolder} backend) like @file{mail.misc}. If it is @code{nil},
Dave Love <fx@gnu.org>
parents:
diff changeset
9324 the same group will end up in @file{mail/misc}.
Dave Love <fx@gnu.org>
parents:
diff changeset
9325
Dave Love <fx@gnu.org>
parents:
diff changeset
9326 @item nnmail-delete-file-function
Dave Love <fx@gnu.org>
parents:
diff changeset
9327 @vindex nnmail-delete-file-function
Dave Love <fx@gnu.org>
parents:
diff changeset
9328 @findex delete-file
Dave Love <fx@gnu.org>
parents:
diff changeset
9329 Function called to delete files. It is @code{delete-file} by default.
Dave Love <fx@gnu.org>
parents:
diff changeset
9330
Dave Love <fx@gnu.org>
parents:
diff changeset
9331 @item nnmail-cache-accepted-message-ids
Dave Love <fx@gnu.org>
parents:
diff changeset
9332 @vindex nnmail-cache-accepted-message-ids
Dave Love <fx@gnu.org>
parents:
diff changeset
9333 If non-@code{nil}, put the @code{Message-ID}s of articles imported into
Dave Love <fx@gnu.org>
parents:
diff changeset
9334 the backend (via @code{Gcc}, for instance) into the mail duplication
Dave Love <fx@gnu.org>
parents:
diff changeset
9335 discovery cache. The default is @code{nil}.
Dave Love <fx@gnu.org>
parents:
diff changeset
9336
Dave Love <fx@gnu.org>
parents:
diff changeset
9337 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
9338
Dave Love <fx@gnu.org>
parents:
diff changeset
9339
Dave Love <fx@gnu.org>
parents:
diff changeset
9340 @node Fancy Mail Splitting
Dave Love <fx@gnu.org>
parents:
diff changeset
9341 @subsection Fancy Mail Splitting
Dave Love <fx@gnu.org>
parents:
diff changeset
9342 @cindex mail splitting
Dave Love <fx@gnu.org>
parents:
diff changeset
9343 @cindex fancy mail splitting
Dave Love <fx@gnu.org>
parents:
diff changeset
9344
Dave Love <fx@gnu.org>
parents:
diff changeset
9345 @vindex nnmail-split-fancy
Dave Love <fx@gnu.org>
parents:
diff changeset
9346 @findex nnmail-split-fancy
Dave Love <fx@gnu.org>
parents:
diff changeset
9347 If the rather simple, standard method for specifying how to split mail
Dave Love <fx@gnu.org>
parents:
diff changeset
9348 doesn't allow you to do what you want, you can set
Dave Love <fx@gnu.org>
parents:
diff changeset
9349 @code{nnmail-split-methods} to @code{nnmail-split-fancy}. Then you can
Dave Love <fx@gnu.org>
parents:
diff changeset
9350 play with the @code{nnmail-split-fancy} variable.
Dave Love <fx@gnu.org>
parents:
diff changeset
9351
Dave Love <fx@gnu.org>
parents:
diff changeset
9352 Let's look at an example value of this variable first:
Dave Love <fx@gnu.org>
parents:
diff changeset
9353
Dave Love <fx@gnu.org>
parents:
diff changeset
9354 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
9355 ;; Messages from the mailer daemon are not crossposted to any of
Dave Love <fx@gnu.org>
parents:
diff changeset
9356 ;; the ordinary groups. Warnings are put in a separate group
Dave Love <fx@gnu.org>
parents:
diff changeset
9357 ;; from real errors.
Dave Love <fx@gnu.org>
parents:
diff changeset
9358 (| ("from" mail (| ("subject" "warn.*" "mail.warning")
Dave Love <fx@gnu.org>
parents:
diff changeset
9359 "mail.misc"))
Dave Love <fx@gnu.org>
parents:
diff changeset
9360 ;; Non-error messages are crossposted to all relevant
Dave Love <fx@gnu.org>
parents:
diff changeset
9361 ;; groups, but we don't crosspost between the group for the
Dave Love <fx@gnu.org>
parents:
diff changeset
9362 ;; (ding) list and the group for other (ding) related mail.
Dave Love <fx@gnu.org>
parents:
diff changeset
9363 (& (| (any "ding@@ifi\\.uio\\.no" "ding.list")
Dave Love <fx@gnu.org>
parents:
diff changeset
9364 ("subject" "ding" "ding.misc"))
Dave Love <fx@gnu.org>
parents:
diff changeset
9365 ;; Other mailing lists...
Dave Love <fx@gnu.org>
parents:
diff changeset
9366 (any "procmail@@informatik\\.rwth-aachen\\.de" "procmail.list")
Dave Love <fx@gnu.org>
parents:
diff changeset
9367 (any "SmartList@@informatik\\.rwth-aachen\\.de" "SmartList.list")
Dave Love <fx@gnu.org>
parents:
diff changeset
9368 ;; People...
Dave Love <fx@gnu.org>
parents:
diff changeset
9369 (any "larsi@@ifi\\.uio\\.no" "people.Lars_Magne_Ingebrigtsen"))
Dave Love <fx@gnu.org>
parents:
diff changeset
9370 ;; Unmatched mail goes to the catch all group.
Dave Love <fx@gnu.org>
parents:
diff changeset
9371 "misc.misc")
Dave Love <fx@gnu.org>
parents:
diff changeset
9372 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
9373
Dave Love <fx@gnu.org>
parents:
diff changeset
9374 This variable has the format of a @dfn{split}. A split is a (possibly)
Dave Love <fx@gnu.org>
parents:
diff changeset
9375 recursive structure where each split may contain other splits. Here are
Dave Love <fx@gnu.org>
parents:
diff changeset
9376 the five possible split syntaxes:
Dave Love <fx@gnu.org>
parents:
diff changeset
9377
Dave Love <fx@gnu.org>
parents:
diff changeset
9378 @enumerate
Dave Love <fx@gnu.org>
parents:
diff changeset
9379
Dave Love <fx@gnu.org>
parents:
diff changeset
9380 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
9381 @samp{group}: If the split is a string, that will be taken as a group
Dave Love <fx@gnu.org>
parents:
diff changeset
9382 name. Normal regexp match expansion will be done. See below for
Dave Love <fx@gnu.org>
parents:
diff changeset
9383 examples.
Dave Love <fx@gnu.org>
parents:
diff changeset
9384
Dave Love <fx@gnu.org>
parents:
diff changeset
9385 @item
26290
df10644e22b5 Fix complaints from makeinfo 4.0.
Dave Love <fx@gnu.org>
parents: 25829
diff changeset
9386 @code{(@var{field} @var{value} @var{split})}: If the split is a list, the first element of
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
9387 which is a string, then store the message as specified by SPLIT, if
Dave Love <fx@gnu.org>
parents:
diff changeset
9388 header FIELD (a regexp) contains VALUE (also a regexp).
Dave Love <fx@gnu.org>
parents:
diff changeset
9389
Dave Love <fx@gnu.org>
parents:
diff changeset
9390 @item
26290
df10644e22b5 Fix complaints from makeinfo 4.0.
Dave Love <fx@gnu.org>
parents: 25829
diff changeset
9391 @code{(| @var{split}...)}: If the split is a list, and the first element is
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
9392 @code{|} (vertical bar), then process each SPLIT until one of them
26290
df10644e22b5 Fix complaints from makeinfo 4.0.
Dave Love <fx@gnu.org>
parents: 25829
diff changeset
9393 matches. A @var{split} is said to match if it will cause the mail message to
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
9394 be stored in one or more groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
9395
Dave Love <fx@gnu.org>
parents:
diff changeset
9396 @item
26290
df10644e22b5 Fix complaints from makeinfo 4.0.
Dave Love <fx@gnu.org>
parents: 25829
diff changeset
9397 @code{(& @var{split}...)}: If the split is a list, and the first element is
df10644e22b5 Fix complaints from makeinfo 4.0.
Dave Love <fx@gnu.org>
parents: 25829
diff changeset
9398 @code{&}, then process all @var{split}s in the list.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
9399
Dave Love <fx@gnu.org>
parents:
diff changeset
9400 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
9401 @code{junk}: If the split is the symbol @code{junk}, then don't save
Dave Love <fx@gnu.org>
parents:
diff changeset
9402 this message. Use with extreme caution.
Dave Love <fx@gnu.org>
parents:
diff changeset
9403
Dave Love <fx@gnu.org>
parents:
diff changeset
9404 @item
26290
df10644e22b5 Fix complaints from makeinfo 4.0.
Dave Love <fx@gnu.org>
parents: 25829
diff changeset
9405 @code{(: @var{function} @var{arg1} @var{arg2} @dots{})}: If the split is a list, and the first
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
9406 element is @code{:}, then the second element will be called as a
Dave Love <fx@gnu.org>
parents:
diff changeset
9407 function with @var{args} given as arguments. The function should return
Dave Love <fx@gnu.org>
parents:
diff changeset
9408 a SPLIT.
Dave Love <fx@gnu.org>
parents:
diff changeset
9409
Dave Love <fx@gnu.org>
parents:
diff changeset
9410 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
9411 @code{nil}: If the split is @code{nil}, it is ignored.
Dave Love <fx@gnu.org>
parents:
diff changeset
9412
Dave Love <fx@gnu.org>
parents:
diff changeset
9413 @end enumerate
Dave Love <fx@gnu.org>
parents:
diff changeset
9414
Dave Love <fx@gnu.org>
parents:
diff changeset
9415 In these splits, @var{FIELD} must match a complete field name.
Dave Love <fx@gnu.org>
parents:
diff changeset
9416 @var{VALUE} must match a complete word according to the fundamental mode
Dave Love <fx@gnu.org>
parents:
diff changeset
9417 syntax table. You can use @code{.*} in the regexps to match partial
Dave Love <fx@gnu.org>
parents:
diff changeset
9418 field names or words. In other words, all @var{VALUE}'s are wrapped in
Dave Love <fx@gnu.org>
parents:
diff changeset
9419 @samp{\<} and @samp{\>} pairs.
Dave Love <fx@gnu.org>
parents:
diff changeset
9420
Dave Love <fx@gnu.org>
parents:
diff changeset
9421 @vindex nnmail-split-abbrev-alist
Dave Love <fx@gnu.org>
parents:
diff changeset
9422 @var{FIELD} and @var{VALUE} can also be lisp symbols, in that case they
Dave Love <fx@gnu.org>
parents:
diff changeset
9423 are expanded as specified by the variable
Dave Love <fx@gnu.org>
parents:
diff changeset
9424 @code{nnmail-split-abbrev-alist}. This is an alist of cons cells, where
Dave Love <fx@gnu.org>
parents:
diff changeset
9425 the @code{car} of a cell contains the key, and the @code{cdr} contains the associated
Dave Love <fx@gnu.org>
parents:
diff changeset
9426 value.
Dave Love <fx@gnu.org>
parents:
diff changeset
9427
Dave Love <fx@gnu.org>
parents:
diff changeset
9428 @vindex nnmail-split-fancy-syntax-table
Dave Love <fx@gnu.org>
parents:
diff changeset
9429 @code{nnmail-split-fancy-syntax-table} is the syntax table in effect
Dave Love <fx@gnu.org>
parents:
diff changeset
9430 when all this splitting is performed.
Dave Love <fx@gnu.org>
parents:
diff changeset
9431
Dave Love <fx@gnu.org>
parents:
diff changeset
9432 If you want to have Gnus create groups dynamically based on some
Dave Love <fx@gnu.org>
parents:
diff changeset
9433 information in the headers (i.e., do @code{replace-match}-like
Dave Love <fx@gnu.org>
parents:
diff changeset
9434 substitutions in the group names), you can say things like:
Dave Love <fx@gnu.org>
parents:
diff changeset
9435
Dave Love <fx@gnu.org>
parents:
diff changeset
9436 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
9437 (any "debian-\\b\\(\\w+\\)@@lists.debian.org" "mail.debian.\\1")
Dave Love <fx@gnu.org>
parents:
diff changeset
9438 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
9439
Dave Love <fx@gnu.org>
parents:
diff changeset
9440 If the string contains the element @samp{\&}, then the previously
Dave Love <fx@gnu.org>
parents:
diff changeset
9441 matched string will be substituted. Similarly, the elements @samp{\\1}
Dave Love <fx@gnu.org>
parents:
diff changeset
9442 up to @samp{\\9} will be substituted with the text matched by the
Dave Love <fx@gnu.org>
parents:
diff changeset
9443 groupings 1 through 9.
Dave Love <fx@gnu.org>
parents:
diff changeset
9444
Dave Love <fx@gnu.org>
parents:
diff changeset
9445
Dave Love <fx@gnu.org>
parents:
diff changeset
9446 @node Mail and Procmail
Dave Love <fx@gnu.org>
parents:
diff changeset
9447 @subsection Mail and Procmail
Dave Love <fx@gnu.org>
parents:
diff changeset
9448 @cindex procmail
Dave Love <fx@gnu.org>
parents:
diff changeset
9449
Dave Love <fx@gnu.org>
parents:
diff changeset
9450 @cindex slocal
Dave Love <fx@gnu.org>
parents:
diff changeset
9451 @cindex elm
Dave Love <fx@gnu.org>
parents:
diff changeset
9452 Many people use @code{procmail} (or some other mail filter program or
Dave Love <fx@gnu.org>
parents:
diff changeset
9453 external delivery agent---@code{slocal}, @code{elm}, etc) to split
Dave Love <fx@gnu.org>
parents:
diff changeset
9454 incoming mail into groups. If you do that, you should set
Dave Love <fx@gnu.org>
parents:
diff changeset
9455 @code{nnmail-spool-file} to @code{procmail} to ensure that the mail
Dave Love <fx@gnu.org>
parents:
diff changeset
9456 backends never ever try to fetch mail by themselves.
Dave Love <fx@gnu.org>
parents:
diff changeset
9457
Dave Love <fx@gnu.org>
parents:
diff changeset
9458 If you have a combined @code{procmail}/POP/mailbox setup, you can do
Dave Love <fx@gnu.org>
parents:
diff changeset
9459 something like the following:
Dave Love <fx@gnu.org>
parents:
diff changeset
9460
Dave Love <fx@gnu.org>
parents:
diff changeset
9461 @vindex nnmail-use-procmail
Dave Love <fx@gnu.org>
parents:
diff changeset
9462 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
9463 (setq nnmail-use-procmail t)
Dave Love <fx@gnu.org>
parents:
diff changeset
9464 (setq nnmail-spool-file
Dave Love <fx@gnu.org>
parents:
diff changeset
9465 '("/usr/spool/mail/my-name" "po:my-name"))
Dave Love <fx@gnu.org>
parents:
diff changeset
9466 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
9467
Dave Love <fx@gnu.org>
parents:
diff changeset
9468 This also means that you probably don't want to set
Dave Love <fx@gnu.org>
parents:
diff changeset
9469 @code{nnmail-split-methods} either, which has some, perhaps, unexpected
Dave Love <fx@gnu.org>
parents:
diff changeset
9470 side effects.
Dave Love <fx@gnu.org>
parents:
diff changeset
9471
Dave Love <fx@gnu.org>
parents:
diff changeset
9472 When a mail backend is queried for what groups it carries, it replies
Dave Love <fx@gnu.org>
parents:
diff changeset
9473 with the contents of that variable, along with any groups it has figured
Dave Love <fx@gnu.org>
parents:
diff changeset
9474 out that it carries by other means. None of the backends, except
Dave Love <fx@gnu.org>
parents:
diff changeset
9475 @code{nnmh}, actually go out to the disk and check what groups actually
Dave Love <fx@gnu.org>
parents:
diff changeset
9476 exist. (It's not trivial to distinguish between what the user thinks is
Dave Love <fx@gnu.org>
parents:
diff changeset
9477 a basis for a newsgroup and what is just a plain old file or directory.)
Dave Love <fx@gnu.org>
parents:
diff changeset
9478
Dave Love <fx@gnu.org>
parents:
diff changeset
9479 This means that you have to tell Gnus (and the backends) by hand what
Dave Love <fx@gnu.org>
parents:
diff changeset
9480 groups exist.
Dave Love <fx@gnu.org>
parents:
diff changeset
9481
Dave Love <fx@gnu.org>
parents:
diff changeset
9482 Let's take the @code{nnmh} backend as an example:
Dave Love <fx@gnu.org>
parents:
diff changeset
9483
Dave Love <fx@gnu.org>
parents:
diff changeset
9484 The folders are located in @code{nnmh-directory}, say, @file{~/Mail/}.
Dave Love <fx@gnu.org>
parents:
diff changeset
9485 There are three folders, @file{foo}, @file{bar} and @file{mail.baz}.
Dave Love <fx@gnu.org>
parents:
diff changeset
9486
Dave Love <fx@gnu.org>
parents:
diff changeset
9487 Go to the group buffer and type @kbd{G m}. When prompted, answer
Dave Love <fx@gnu.org>
parents:
diff changeset
9488 @samp{foo} for the name and @samp{nnmh} for the method. Repeat
Dave Love <fx@gnu.org>
parents:
diff changeset
9489 twice for the two other groups, @samp{bar} and @samp{mail.baz}. Be sure
Dave Love <fx@gnu.org>
parents:
diff changeset
9490 to include all your mail groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
9491
Dave Love <fx@gnu.org>
parents:
diff changeset
9492 That's it. You are now set to read your mail. An active file for this
Dave Love <fx@gnu.org>
parents:
diff changeset
9493 method will be created automatically.
Dave Love <fx@gnu.org>
parents:
diff changeset
9494
Dave Love <fx@gnu.org>
parents:
diff changeset
9495 @vindex nnmail-procmail-suffix
Dave Love <fx@gnu.org>
parents:
diff changeset
9496 @vindex nnmail-procmail-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
9497 If you use @code{nnfolder} or any other backend that store more than a
Dave Love <fx@gnu.org>
parents:
diff changeset
9498 single article in each file, you should never have procmail add mails to
Dave Love <fx@gnu.org>
parents:
diff changeset
9499 the file that Gnus sees. Instead, procmail should put all incoming mail
Dave Love <fx@gnu.org>
parents:
diff changeset
9500 in @code{nnmail-procmail-directory}. To arrive at the file name to put
Dave Love <fx@gnu.org>
parents:
diff changeset
9501 the incoming mail in, append @code{nnmail-procmail-suffix} to the group
Dave Love <fx@gnu.org>
parents:
diff changeset
9502 name. The mail backends will read the mail from these files.
Dave Love <fx@gnu.org>
parents:
diff changeset
9503
Dave Love <fx@gnu.org>
parents:
diff changeset
9504 @vindex nnmail-resplit-incoming
Dave Love <fx@gnu.org>
parents:
diff changeset
9505 When Gnus reads a file called @file{mail.misc.spool}, this mail will be
Dave Love <fx@gnu.org>
parents:
diff changeset
9506 put in the @code{mail.misc}, as one would expect. However, if you want
Dave Love <fx@gnu.org>
parents:
diff changeset
9507 Gnus to split the mail the normal way, you could set
Dave Love <fx@gnu.org>
parents:
diff changeset
9508 @code{nnmail-resplit-incoming} to @code{t}.
Dave Love <fx@gnu.org>
parents:
diff changeset
9509
Dave Love <fx@gnu.org>
parents:
diff changeset
9510 @vindex nnmail-keep-last-article
Dave Love <fx@gnu.org>
parents:
diff changeset
9511 If you use @code{procmail} to split things directly into an @code{nnmh}
Dave Love <fx@gnu.org>
parents:
diff changeset
9512 directory (which you shouldn't do), you should set
Dave Love <fx@gnu.org>
parents:
diff changeset
9513 @code{nnmail-keep-last-article} to non-@code{nil} to prevent Gnus from
Dave Love <fx@gnu.org>
parents:
diff changeset
9514 ever expiring the final article (i.e., the article with the highest
Dave Love <fx@gnu.org>
parents:
diff changeset
9515 article number) in a mail newsgroup. This is quite, quite important.
Dave Love <fx@gnu.org>
parents:
diff changeset
9516
Dave Love <fx@gnu.org>
parents:
diff changeset
9517 Here's an example setup: The incoming spools are located in
Dave Love <fx@gnu.org>
parents:
diff changeset
9518 @file{~/incoming/} and have @samp{""} as suffixes (i.e., the incoming
Dave Love <fx@gnu.org>
parents:
diff changeset
9519 spool files have the same names as the equivalent groups). The
Dave Love <fx@gnu.org>
parents:
diff changeset
9520 @code{nnfolder} backend is to be used as the mail interface, and the
Dave Love <fx@gnu.org>
parents:
diff changeset
9521 @code{nnfolder} directory is @file{~/fMail/}.
Dave Love <fx@gnu.org>
parents:
diff changeset
9522
Dave Love <fx@gnu.org>
parents:
diff changeset
9523 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
9524 (setq nnfolder-directory "~/fMail/")
Dave Love <fx@gnu.org>
parents:
diff changeset
9525 (setq nnmail-spool-file 'procmail)
Dave Love <fx@gnu.org>
parents:
diff changeset
9526 (setq nnmail-procmail-directory "~/incoming/")
Dave Love <fx@gnu.org>
parents:
diff changeset
9527 (setq gnus-secondary-select-methods '((nnfolder "")))
Dave Love <fx@gnu.org>
parents:
diff changeset
9528 (setq nnmail-procmail-suffix "")
Dave Love <fx@gnu.org>
parents:
diff changeset
9529 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
9530
Dave Love <fx@gnu.org>
parents:
diff changeset
9531
Dave Love <fx@gnu.org>
parents:
diff changeset
9532 @node Incorporating Old Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
9533 @subsection Incorporating Old Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
9534
Dave Love <fx@gnu.org>
parents:
diff changeset
9535 Most people have lots of old mail stored in various file formats. If
Dave Love <fx@gnu.org>
parents:
diff changeset
9536 you have set up Gnus to read mail using one of the spiffy Gnus mail
Dave Love <fx@gnu.org>
parents:
diff changeset
9537 backends, you'll probably wish to have that old mail incorporated into
Dave Love <fx@gnu.org>
parents:
diff changeset
9538 your mail groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
9539
Dave Love <fx@gnu.org>
parents:
diff changeset
9540 Doing so can be quite easy.
Dave Love <fx@gnu.org>
parents:
diff changeset
9541
Dave Love <fx@gnu.org>
parents:
diff changeset
9542 To take an example: You're reading mail using @code{nnml}
Dave Love <fx@gnu.org>
parents:
diff changeset
9543 (@pxref{Mail Spool}), and have set @code{nnmail-split-methods} to a
Dave Love <fx@gnu.org>
parents:
diff changeset
9544 satisfactory value (@pxref{Splitting Mail}). You have an old Unix mbox
Dave Love <fx@gnu.org>
parents:
diff changeset
9545 file filled with important, but old, mail. You want to move it into
Dave Love <fx@gnu.org>
parents:
diff changeset
9546 your @code{nnml} groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
9547
Dave Love <fx@gnu.org>
parents:
diff changeset
9548 Here's how:
Dave Love <fx@gnu.org>
parents:
diff changeset
9549
Dave Love <fx@gnu.org>
parents:
diff changeset
9550 @enumerate
Dave Love <fx@gnu.org>
parents:
diff changeset
9551 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
9552 Go to the group buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
9553
Dave Love <fx@gnu.org>
parents:
diff changeset
9554 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
9555 Type `G f' and give the path to the mbox file when prompted to create an
Dave Love <fx@gnu.org>
parents:
diff changeset
9556 @code{nndoc} group from the mbox file (@pxref{Foreign Groups}).
Dave Love <fx@gnu.org>
parents:
diff changeset
9557
Dave Love <fx@gnu.org>
parents:
diff changeset
9558 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
9559 Type `SPACE' to enter the newly created group.
Dave Love <fx@gnu.org>
parents:
diff changeset
9560
Dave Love <fx@gnu.org>
parents:
diff changeset
9561 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
9562 Type `M P b' to process-mark all articles in this group's buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
9563 (@pxref{Setting Process Marks}).
Dave Love <fx@gnu.org>
parents:
diff changeset
9564
Dave Love <fx@gnu.org>
parents:
diff changeset
9565 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
9566 Type `B r' to respool all the process-marked articles, and answer
Dave Love <fx@gnu.org>
parents:
diff changeset
9567 @samp{nnml} when prompted (@pxref{Mail Group Commands}).
Dave Love <fx@gnu.org>
parents:
diff changeset
9568 @end enumerate
Dave Love <fx@gnu.org>
parents:
diff changeset
9569
Dave Love <fx@gnu.org>
parents:
diff changeset
9570 All the mail messages in the mbox file will now also be spread out over
Dave Love <fx@gnu.org>
parents:
diff changeset
9571 all your @code{nnml} groups. Try entering them and check whether things
Dave Love <fx@gnu.org>
parents:
diff changeset
9572 have gone without a glitch. If things look ok, you may consider
Dave Love <fx@gnu.org>
parents:
diff changeset
9573 deleting the mbox file, but I wouldn't do that unless I was absolutely
Dave Love <fx@gnu.org>
parents:
diff changeset
9574 sure that all the mail has ended up where it should be.
Dave Love <fx@gnu.org>
parents:
diff changeset
9575
Dave Love <fx@gnu.org>
parents:
diff changeset
9576 Respooling is also a handy thing to do if you're switching from one mail
Dave Love <fx@gnu.org>
parents:
diff changeset
9577 backend to another. Just respool all the mail in the old mail groups
Dave Love <fx@gnu.org>
parents:
diff changeset
9578 using the new mail backend.
Dave Love <fx@gnu.org>
parents:
diff changeset
9579
Dave Love <fx@gnu.org>
parents:
diff changeset
9580
Dave Love <fx@gnu.org>
parents:
diff changeset
9581 @node Expiring Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
9582 @subsection Expiring Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
9583 @cindex article expiry
Dave Love <fx@gnu.org>
parents:
diff changeset
9584
Dave Love <fx@gnu.org>
parents:
diff changeset
9585 Traditional mail readers have a tendency to remove mail articles when
Dave Love <fx@gnu.org>
parents:
diff changeset
9586 you mark them as read, in some way. Gnus takes a fundamentally
Dave Love <fx@gnu.org>
parents:
diff changeset
9587 different approach to mail reading.
Dave Love <fx@gnu.org>
parents:
diff changeset
9588
Dave Love <fx@gnu.org>
parents:
diff changeset
9589 Gnus basically considers mail just to be news that has been received in
Dave Love <fx@gnu.org>
parents:
diff changeset
9590 a rather peculiar manner. It does not think that it has the power to
Dave Love <fx@gnu.org>
parents:
diff changeset
9591 actually change the mail, or delete any mail messages. If you enter a
Dave Love <fx@gnu.org>
parents:
diff changeset
9592 mail group, and mark articles as ``read'', or kill them in some other
Dave Love <fx@gnu.org>
parents:
diff changeset
9593 fashion, the mail articles will still exist on the system. I repeat:
Dave Love <fx@gnu.org>
parents:
diff changeset
9594 Gnus will not delete your old, read mail. Unless you ask it to, of
Dave Love <fx@gnu.org>
parents:
diff changeset
9595 course.
Dave Love <fx@gnu.org>
parents:
diff changeset
9596
Dave Love <fx@gnu.org>
parents:
diff changeset
9597 To make Gnus get rid of your unwanted mail, you have to mark the
Dave Love <fx@gnu.org>
parents:
diff changeset
9598 articles as @dfn{expirable}. This does not mean that the articles will
Dave Love <fx@gnu.org>
parents:
diff changeset
9599 disappear right away, however. In general, a mail article will be
Dave Love <fx@gnu.org>
parents:
diff changeset
9600 deleted from your system if, 1) it is marked as expirable, AND 2) it is
Dave Love <fx@gnu.org>
parents:
diff changeset
9601 more than one week old. If you do not mark an article as expirable, it
Dave Love <fx@gnu.org>
parents:
diff changeset
9602 will remain on your system until hell freezes over. This bears
Dave Love <fx@gnu.org>
parents:
diff changeset
9603 repeating one more time, with some spurious capitalizations: IF you do
Dave Love <fx@gnu.org>
parents:
diff changeset
9604 NOT mark articles as EXPIRABLE, Gnus will NEVER delete those ARTICLES.
Dave Love <fx@gnu.org>
parents:
diff changeset
9605
Dave Love <fx@gnu.org>
parents:
diff changeset
9606 @vindex gnus-auto-expirable-newsgroups
Dave Love <fx@gnu.org>
parents:
diff changeset
9607 You do not have to mark articles as expirable by hand. Groups that
Dave Love <fx@gnu.org>
parents:
diff changeset
9608 match the regular expression @code{gnus-auto-expirable-newsgroups} will
Dave Love <fx@gnu.org>
parents:
diff changeset
9609 have all articles that you read marked as expirable automatically. All
Dave Love <fx@gnu.org>
parents:
diff changeset
9610 articles marked as expirable have an @samp{E} in the first
Dave Love <fx@gnu.org>
parents:
diff changeset
9611 column in the summary buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
9612
Dave Love <fx@gnu.org>
parents:
diff changeset
9613 By default, if you have auto expiry switched on, Gnus will mark all the
Dave Love <fx@gnu.org>
parents:
diff changeset
9614 articles you read as expirable, no matter if they were read or unread
Dave Love <fx@gnu.org>
parents:
diff changeset
9615 before. To avoid having articles marked as read marked as expirable
Dave Love <fx@gnu.org>
parents:
diff changeset
9616 automatically, you can put something like the following in your
Dave Love <fx@gnu.org>
parents:
diff changeset
9617 @file{.gnus} file:
Dave Love <fx@gnu.org>
parents:
diff changeset
9618
Dave Love <fx@gnu.org>
parents:
diff changeset
9619 @vindex gnus-mark-article-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
9620 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
9621 (remove-hook 'gnus-mark-article-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
9622 'gnus-summary-mark-read-and-unread-as-read)
Dave Love <fx@gnu.org>
parents:
diff changeset
9623 (add-hook 'gnus-mark-article-hook 'gnus-summary-mark-unread-as-read)
Dave Love <fx@gnu.org>
parents:
diff changeset
9624 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
9625
Dave Love <fx@gnu.org>
parents:
diff changeset
9626 Note that making a group auto-expirable doesn't mean that all read
Dave Love <fx@gnu.org>
parents:
diff changeset
9627 articles are expired---only the articles marked as expirable
Dave Love <fx@gnu.org>
parents:
diff changeset
9628 will be expired. Also note that using the @kbd{d} command won't make
Dave Love <fx@gnu.org>
parents:
diff changeset
9629 groups expirable---only semi-automatic marking of articles as read will
Dave Love <fx@gnu.org>
parents:
diff changeset
9630 mark the articles as expirable in auto-expirable groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
9631
Dave Love <fx@gnu.org>
parents:
diff changeset
9632 Let's say you subscribe to a couple of mailing lists, and you want the
Dave Love <fx@gnu.org>
parents:
diff changeset
9633 articles you have read to disappear after a while:
Dave Love <fx@gnu.org>
parents:
diff changeset
9634
Dave Love <fx@gnu.org>
parents:
diff changeset
9635 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
9636 (setq gnus-auto-expirable-newsgroups
Dave Love <fx@gnu.org>
parents:
diff changeset
9637 "mail.nonsense-list\\|mail.nice-list")
Dave Love <fx@gnu.org>
parents:
diff changeset
9638 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
9639
Dave Love <fx@gnu.org>
parents:
diff changeset
9640 Another way to have auto-expiry happen is to have the element
Dave Love <fx@gnu.org>
parents:
diff changeset
9641 @code{auto-expire} in the group parameters of the group.
Dave Love <fx@gnu.org>
parents:
diff changeset
9642
Dave Love <fx@gnu.org>
parents:
diff changeset
9643 If you use adaptive scoring (@pxref{Adaptive Scoring}) and
Dave Love <fx@gnu.org>
parents:
diff changeset
9644 auto-expiring, you'll have problems. Auto-expiring and adaptive scoring
Dave Love <fx@gnu.org>
parents:
diff changeset
9645 don't really mix very well.
Dave Love <fx@gnu.org>
parents:
diff changeset
9646
Dave Love <fx@gnu.org>
parents:
diff changeset
9647 @vindex nnmail-expiry-wait
Dave Love <fx@gnu.org>
parents:
diff changeset
9648 The @code{nnmail-expiry-wait} variable supplies the default time an
Dave Love <fx@gnu.org>
parents:
diff changeset
9649 expirable article has to live. Gnus starts counting days from when the
Dave Love <fx@gnu.org>
parents:
diff changeset
9650 message @emph{arrived}, not from when it was sent. The default is seven
Dave Love <fx@gnu.org>
parents:
diff changeset
9651 days.
Dave Love <fx@gnu.org>
parents:
diff changeset
9652
Dave Love <fx@gnu.org>
parents:
diff changeset
9653 Gnus also supplies a function that lets you fine-tune how long articles
Dave Love <fx@gnu.org>
parents:
diff changeset
9654 are to live, based on what group they are in. Let's say you want to
Dave Love <fx@gnu.org>
parents:
diff changeset
9655 have one month expiry period in the @samp{mail.private} group, a one day
Dave Love <fx@gnu.org>
parents:
diff changeset
9656 expiry period in the @samp{mail.junk} group, and a six day expiry period
Dave Love <fx@gnu.org>
parents:
diff changeset
9657 everywhere else:
Dave Love <fx@gnu.org>
parents:
diff changeset
9658
Dave Love <fx@gnu.org>
parents:
diff changeset
9659 @vindex nnmail-expiry-wait-function
Dave Love <fx@gnu.org>
parents:
diff changeset
9660 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
9661 (setq nnmail-expiry-wait-function
Dave Love <fx@gnu.org>
parents:
diff changeset
9662 (lambda (group)
Dave Love <fx@gnu.org>
parents:
diff changeset
9663 (cond ((string= group "mail.private")
Dave Love <fx@gnu.org>
parents:
diff changeset
9664 31)
Dave Love <fx@gnu.org>
parents:
diff changeset
9665 ((string= group "mail.junk")
Dave Love <fx@gnu.org>
parents:
diff changeset
9666 1)
Dave Love <fx@gnu.org>
parents:
diff changeset
9667 ((string= group "important")
Dave Love <fx@gnu.org>
parents:
diff changeset
9668 'never)
Dave Love <fx@gnu.org>
parents:
diff changeset
9669 (t
Dave Love <fx@gnu.org>
parents:
diff changeset
9670 6))))
Dave Love <fx@gnu.org>
parents:
diff changeset
9671 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
9672
Dave Love <fx@gnu.org>
parents:
diff changeset
9673 The group names this function is fed are ``unadorned'' group
Dave Love <fx@gnu.org>
parents:
diff changeset
9674 names---no @samp{nnml:} prefixes and the like.
Dave Love <fx@gnu.org>
parents:
diff changeset
9675
Dave Love <fx@gnu.org>
parents:
diff changeset
9676 The @code{nnmail-expiry-wait} variable and
Dave Love <fx@gnu.org>
parents:
diff changeset
9677 @code{nnmail-expiry-wait-function} function can either be a number (not
Dave Love <fx@gnu.org>
parents:
diff changeset
9678 necessarily an integer) or one of the symbols @code{immediate} or
Dave Love <fx@gnu.org>
parents:
diff changeset
9679 @code{never}.
Dave Love <fx@gnu.org>
parents:
diff changeset
9680
Dave Love <fx@gnu.org>
parents:
diff changeset
9681 You can also use the @code{expiry-wait} group parameter to selectively
Dave Love <fx@gnu.org>
parents:
diff changeset
9682 change the expiry period (@pxref{Group Parameters}).
Dave Love <fx@gnu.org>
parents:
diff changeset
9683
Dave Love <fx@gnu.org>
parents:
diff changeset
9684 @vindex nnmail-keep-last-article
Dave Love <fx@gnu.org>
parents:
diff changeset
9685 If @code{nnmail-keep-last-article} is non-@code{nil}, Gnus will never
Dave Love <fx@gnu.org>
parents:
diff changeset
9686 expire the final article in a mail newsgroup. This is to make life
Dave Love <fx@gnu.org>
parents:
diff changeset
9687 easier for procmail users.
Dave Love <fx@gnu.org>
parents:
diff changeset
9688
Dave Love <fx@gnu.org>
parents:
diff changeset
9689 @vindex gnus-total-expirable-newsgroups
Dave Love <fx@gnu.org>
parents:
diff changeset
9690 By the way: That line up there, about Gnus never expiring non-expirable
Dave Love <fx@gnu.org>
parents:
diff changeset
9691 articles, is a lie. If you put @code{total-expire} in the group
Dave Love <fx@gnu.org>
parents:
diff changeset
9692 parameters, articles will not be marked as expirable, but all read
Dave Love <fx@gnu.org>
parents:
diff changeset
9693 articles will be put through the expiry process. Use with extreme
Dave Love <fx@gnu.org>
parents:
diff changeset
9694 caution. Even more dangerous is the
Dave Love <fx@gnu.org>
parents:
diff changeset
9695 @code{gnus-total-expirable-newsgroups} variable. All groups that match
Dave Love <fx@gnu.org>
parents:
diff changeset
9696 this regexp will have all read articles put through the expiry process,
Dave Love <fx@gnu.org>
parents:
diff changeset
9697 which means that @emph{all} old mail articles in the groups in question
Dave Love <fx@gnu.org>
parents:
diff changeset
9698 will be deleted after a while. Use with extreme caution, and don't come
Dave Love <fx@gnu.org>
parents:
diff changeset
9699 crying to me when you discover that the regexp you used matched the
Dave Love <fx@gnu.org>
parents:
diff changeset
9700 wrong group and all your important mail has disappeared. Be a
Dave Love <fx@gnu.org>
parents:
diff changeset
9701 @emph{man}! Or a @emph{woman}! Whatever you feel more comfortable
Dave Love <fx@gnu.org>
parents:
diff changeset
9702 with! So there!
Dave Love <fx@gnu.org>
parents:
diff changeset
9703
Dave Love <fx@gnu.org>
parents:
diff changeset
9704 Most people make most of their mail groups total-expirable, though.
Dave Love <fx@gnu.org>
parents:
diff changeset
9705
Dave Love <fx@gnu.org>
parents:
diff changeset
9706
Dave Love <fx@gnu.org>
parents:
diff changeset
9707 @node Washing Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
9708 @subsection Washing Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
9709 @cindex mail washing
Dave Love <fx@gnu.org>
parents:
diff changeset
9710 @cindex list server brain damage
Dave Love <fx@gnu.org>
parents:
diff changeset
9711 @cindex incoming mail treatment
Dave Love <fx@gnu.org>
parents:
diff changeset
9712
Dave Love <fx@gnu.org>
parents:
diff changeset
9713 Mailers and list servers are notorious for doing all sorts of really,
Dave Love <fx@gnu.org>
parents:
diff changeset
9714 really stupid things with mail. ``Hey, RFC822 doesn't explicitly
Dave Love <fx@gnu.org>
parents:
diff changeset
9715 prohibit us from adding the string @code{wE aRe ElItE!!!!!1!!} to the
Dave Love <fx@gnu.org>
parents:
diff changeset
9716 end of all lines passing through our server, so let's do that!!!!1!''
Dave Love <fx@gnu.org>
parents:
diff changeset
9717 Yes, but RFC822 wasn't designed to be read by morons. Things that were
Dave Love <fx@gnu.org>
parents:
diff changeset
9718 considered to be self-evident were not discussed. So. Here we are.
Dave Love <fx@gnu.org>
parents:
diff changeset
9719
Dave Love <fx@gnu.org>
parents:
diff changeset
9720 Case in point: The German version of Microsoft Exchange adds @samp{AW:
Dave Love <fx@gnu.org>
parents:
diff changeset
9721 } to the subjects of replies instead of @samp{Re: }. I could pretend to
Dave Love <fx@gnu.org>
parents:
diff changeset
9722 be shocked and dismayed by this, but I haven't got the energy. It is to
Dave Love <fx@gnu.org>
parents:
diff changeset
9723 laugh.
Dave Love <fx@gnu.org>
parents:
diff changeset
9724
Dave Love <fx@gnu.org>
parents:
diff changeset
9725 Gnus provides a plethora of functions for washing articles while
Dave Love <fx@gnu.org>
parents:
diff changeset
9726 displaying them, but it might be nicer to do the filtering before
Dave Love <fx@gnu.org>
parents:
diff changeset
9727 storing the mail to disc. For that purpose, we have three hooks and
Dave Love <fx@gnu.org>
parents:
diff changeset
9728 various functions that can be put in these hooks.
Dave Love <fx@gnu.org>
parents:
diff changeset
9729
Dave Love <fx@gnu.org>
parents:
diff changeset
9730 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
9731 @item nnmail-prepare-incoming-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
9732 @vindex nnmail-prepare-incoming-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
9733 This hook is called before doing anything with the mail and is meant for
Dave Love <fx@gnu.org>
parents:
diff changeset
9734 grand, sweeping gestures. Functions to be used include:
Dave Love <fx@gnu.org>
parents:
diff changeset
9735
Dave Love <fx@gnu.org>
parents:
diff changeset
9736 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
9737 @item nnheader-ms-strip-cr
Dave Love <fx@gnu.org>
parents:
diff changeset
9738 @findex nnheader-ms-strip-cr
Dave Love <fx@gnu.org>
parents:
diff changeset
9739 Remove trailing carriage returns from each line. This is default on
Dave Love <fx@gnu.org>
parents:
diff changeset
9740 Emacs running on MS machines.
Dave Love <fx@gnu.org>
parents:
diff changeset
9741
Dave Love <fx@gnu.org>
parents:
diff changeset
9742 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
9743
Dave Love <fx@gnu.org>
parents:
diff changeset
9744 @item nnmail-prepare-incoming-header-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
9745 @vindex nnmail-prepare-incoming-header-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
9746 This hook is called narrowed to each header. It can be used when
Dave Love <fx@gnu.org>
parents:
diff changeset
9747 cleaning up the headers. Functions that can be used include:
Dave Love <fx@gnu.org>
parents:
diff changeset
9748
Dave Love <fx@gnu.org>
parents:
diff changeset
9749 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
9750 @item nnmail-remove-leading-whitespace
Dave Love <fx@gnu.org>
parents:
diff changeset
9751 @findex nnmail-remove-leading-whitespace
Dave Love <fx@gnu.org>
parents:
diff changeset
9752 Clear leading white space that ``helpful'' listservs have added to the
Dave Love <fx@gnu.org>
parents:
diff changeset
9753 headers to make them look nice. Aaah.
Dave Love <fx@gnu.org>
parents:
diff changeset
9754
Dave Love <fx@gnu.org>
parents:
diff changeset
9755 @item nnmail-remove-list-identifiers
Dave Love <fx@gnu.org>
parents:
diff changeset
9756 @findex nnmail-remove-list-identifiers
Dave Love <fx@gnu.org>
parents:
diff changeset
9757 Some list servers add an identifier---for example, @samp{(idm)}---to the
Dave Love <fx@gnu.org>
parents:
diff changeset
9758 beginning of all @code{Subject} headers. I'm sure that's nice for
Dave Love <fx@gnu.org>
parents:
diff changeset
9759 people who use stone age mail readers. This function will remove
Dave Love <fx@gnu.org>
parents:
diff changeset
9760 strings that match the @code{nnmail-list-identifiers} regexp, which can
Dave Love <fx@gnu.org>
parents:
diff changeset
9761 also be a list of regexp.
Dave Love <fx@gnu.org>
parents:
diff changeset
9762
Dave Love <fx@gnu.org>
parents:
diff changeset
9763 For instance, if you want to remove the @samp{(idm)} and the
Dave Love <fx@gnu.org>
parents:
diff changeset
9764 @samp{nagnagnag} identifiers:
Dave Love <fx@gnu.org>
parents:
diff changeset
9765
Dave Love <fx@gnu.org>
parents:
diff changeset
9766 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
9767 (setq nnmail-list-identifiers
Dave Love <fx@gnu.org>
parents:
diff changeset
9768 '("(idm)" "nagnagnag"))
Dave Love <fx@gnu.org>
parents:
diff changeset
9769 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
9770
Dave Love <fx@gnu.org>
parents:
diff changeset
9771 @item nnmail-remove-tabs
Dave Love <fx@gnu.org>
parents:
diff changeset
9772 @findex nnmail-remove-tabs
Dave Love <fx@gnu.org>
parents:
diff changeset
9773 Translate all @samp{TAB} characters into @samp{SPACE} characters.
Dave Love <fx@gnu.org>
parents:
diff changeset
9774
Dave Love <fx@gnu.org>
parents:
diff changeset
9775 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
9776
Dave Love <fx@gnu.org>
parents:
diff changeset
9777 @item nnmail-prepare-incoming-message-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
9778 @vindex nnmail-prepare-incoming-message-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
9779 This hook is called narrowed to each message. Functions to be used
Dave Love <fx@gnu.org>
parents:
diff changeset
9780 include:
Dave Love <fx@gnu.org>
parents:
diff changeset
9781
Dave Love <fx@gnu.org>
parents:
diff changeset
9782 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
9783 @item article-de-quoted-unreadable
Dave Love <fx@gnu.org>
parents:
diff changeset
9784 @findex article-de-quoted-unreadable
Dave Love <fx@gnu.org>
parents:
diff changeset
9785 Decode Quoted Readable encoding.
Dave Love <fx@gnu.org>
parents:
diff changeset
9786
Dave Love <fx@gnu.org>
parents:
diff changeset
9787 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
9788 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
9789
Dave Love <fx@gnu.org>
parents:
diff changeset
9790
Dave Love <fx@gnu.org>
parents:
diff changeset
9791 @node Duplicates
Dave Love <fx@gnu.org>
parents:
diff changeset
9792 @subsection Duplicates
Dave Love <fx@gnu.org>
parents:
diff changeset
9793
Dave Love <fx@gnu.org>
parents:
diff changeset
9794 @vindex nnmail-treat-duplicates
Dave Love <fx@gnu.org>
parents:
diff changeset
9795 @vindex nnmail-message-id-cache-length
Dave Love <fx@gnu.org>
parents:
diff changeset
9796 @vindex nnmail-message-id-cache-file
Dave Love <fx@gnu.org>
parents:
diff changeset
9797 @cindex duplicate mails
Dave Love <fx@gnu.org>
parents:
diff changeset
9798 If you are a member of a couple of mailing lists, you will sometimes
Dave Love <fx@gnu.org>
parents:
diff changeset
9799 receive two copies of the same mail. This can be quite annoying, so
Dave Love <fx@gnu.org>
parents:
diff changeset
9800 @code{nnmail} checks for and treats any duplicates it might find. To do
Dave Love <fx@gnu.org>
parents:
diff changeset
9801 this, it keeps a cache of old @code{Message-ID}s---
Dave Love <fx@gnu.org>
parents:
diff changeset
9802 @code{nnmail-message-id-cache-file}, which is @file{~/.nnmail-cache} by
Dave Love <fx@gnu.org>
parents:
diff changeset
9803 default. The approximate maximum number of @code{Message-ID}s stored
Dave Love <fx@gnu.org>
parents:
diff changeset
9804 there is controlled by the @code{nnmail-message-id-cache-length}
Dave Love <fx@gnu.org>
parents:
diff changeset
9805 variable, which is 1000 by default. (So 1000 @code{Message-ID}s will be
Dave Love <fx@gnu.org>
parents:
diff changeset
9806 stored.) If all this sounds scary to you, you can set
Dave Love <fx@gnu.org>
parents:
diff changeset
9807 @code{nnmail-treat-duplicates} to @code{warn} (which is what it is by
Dave Love <fx@gnu.org>
parents:
diff changeset
9808 default), and @code{nnmail} won't delete duplicate mails. Instead it
Dave Love <fx@gnu.org>
parents:
diff changeset
9809 will insert a warning into the head of the mail saying that it thinks
Dave Love <fx@gnu.org>
parents:
diff changeset
9810 that this is a duplicate of a different message.
Dave Love <fx@gnu.org>
parents:
diff changeset
9811
Dave Love <fx@gnu.org>
parents:
diff changeset
9812 This variable can also be a function. If that's the case, the function
Dave Love <fx@gnu.org>
parents:
diff changeset
9813 will be called from a buffer narrowed to the message in question with
Dave Love <fx@gnu.org>
parents:
diff changeset
9814 the @code{Message-ID} as a parameter. The function must return either
Dave Love <fx@gnu.org>
parents:
diff changeset
9815 @code{nil}, @code{warn}, or @code{delete}.
Dave Love <fx@gnu.org>
parents:
diff changeset
9816
Dave Love <fx@gnu.org>
parents:
diff changeset
9817 You can turn this feature off completely by setting the variable to
Dave Love <fx@gnu.org>
parents:
diff changeset
9818 @code{nil}.
Dave Love <fx@gnu.org>
parents:
diff changeset
9819
Dave Love <fx@gnu.org>
parents:
diff changeset
9820 If you want all the duplicate mails to be put into a special
Dave Love <fx@gnu.org>
parents:
diff changeset
9821 @dfn{duplicates} group, you could do that using the normal mail split
Dave Love <fx@gnu.org>
parents:
diff changeset
9822 methods:
Dave Love <fx@gnu.org>
parents:
diff changeset
9823
Dave Love <fx@gnu.org>
parents:
diff changeset
9824 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
9825 (setq nnmail-split-fancy
Dave Love <fx@gnu.org>
parents:
diff changeset
9826 '(| ;; Messages duplicates go to a separate group.
Dave Love <fx@gnu.org>
parents:
diff changeset
9827 ("gnus-warning" "duplication of message" "duplicate")
Dave Love <fx@gnu.org>
parents:
diff changeset
9828 ;; Message from daemons, postmaster, and the like to another.
Dave Love <fx@gnu.org>
parents:
diff changeset
9829 (any mail "mail.misc")
Dave Love <fx@gnu.org>
parents:
diff changeset
9830 ;; Other rules.
Dave Love <fx@gnu.org>
parents:
diff changeset
9831 [ ... ] ))
Dave Love <fx@gnu.org>
parents:
diff changeset
9832 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
9833
Dave Love <fx@gnu.org>
parents:
diff changeset
9834 Or something like:
Dave Love <fx@gnu.org>
parents:
diff changeset
9835 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
9836 (setq nnmail-split-methods
Dave Love <fx@gnu.org>
parents:
diff changeset
9837 '(("duplicates" "^Gnus-Warning:")
Dave Love <fx@gnu.org>
parents:
diff changeset
9838 ;; Other rules.
Dave Love <fx@gnu.org>
parents:
diff changeset
9839 [...]))
Dave Love <fx@gnu.org>
parents:
diff changeset
9840 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
9841
Dave Love <fx@gnu.org>
parents:
diff changeset
9842 Here's a neat feature: If you know that the recipient reads her mail
Dave Love <fx@gnu.org>
parents:
diff changeset
9843 with Gnus, and that she has @code{nnmail-treat-duplicates} set to
Dave Love <fx@gnu.org>
parents:
diff changeset
9844 @code{delete}, you can send her as many insults as you like, just by
Dave Love <fx@gnu.org>
parents:
diff changeset
9845 using a @code{Message-ID} of a mail that you know that she's already
Dave Love <fx@gnu.org>
parents:
diff changeset
9846 received. Think of all the fun! She'll never see any of it! Whee!
Dave Love <fx@gnu.org>
parents:
diff changeset
9847
Dave Love <fx@gnu.org>
parents:
diff changeset
9848
Dave Love <fx@gnu.org>
parents:
diff changeset
9849 @node Not Reading Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
9850 @subsection Not Reading Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
9851
Dave Love <fx@gnu.org>
parents:
diff changeset
9852 If you start using any of the mail backends, they have the annoying
Dave Love <fx@gnu.org>
parents:
diff changeset
9853 habit of assuming that you want to read mail with them. This might not
Dave Love <fx@gnu.org>
parents:
diff changeset
9854 be unreasonable, but it might not be what you want.
Dave Love <fx@gnu.org>
parents:
diff changeset
9855
Dave Love <fx@gnu.org>
parents:
diff changeset
9856 If you set @code{nnmail-spool-file} to @code{nil}, none of the backends
Dave Love <fx@gnu.org>
parents:
diff changeset
9857 will ever attempt to read incoming mail, which should help.
Dave Love <fx@gnu.org>
parents:
diff changeset
9858
Dave Love <fx@gnu.org>
parents:
diff changeset
9859 @vindex nnbabyl-get-new-mail
Dave Love <fx@gnu.org>
parents:
diff changeset
9860 @vindex nnmbox-get-new-mail
Dave Love <fx@gnu.org>
parents:
diff changeset
9861 @vindex nnml-get-new-mail
Dave Love <fx@gnu.org>
parents:
diff changeset
9862 @vindex nnmh-get-new-mail
Dave Love <fx@gnu.org>
parents:
diff changeset
9863 @vindex nnfolder-get-new-mail
Dave Love <fx@gnu.org>
parents:
diff changeset
9864 This might be too much, if, for instance, you are reading mail quite
Dave Love <fx@gnu.org>
parents:
diff changeset
9865 happily with @code{nnml} and just want to peek at some old @sc{rmail}
Dave Love <fx@gnu.org>
parents:
diff changeset
9866 file you have stashed away with @code{nnbabyl}. All backends have
Dave Love <fx@gnu.org>
parents:
diff changeset
9867 variables called backend-@code{get-new-mail}. If you want to disable
Dave Love <fx@gnu.org>
parents:
diff changeset
9868 the @code{nnbabyl} mail reading, you edit the virtual server for the
Dave Love <fx@gnu.org>
parents:
diff changeset
9869 group to have a setting where @code{nnbabyl-get-new-mail} to @code{nil}.
Dave Love <fx@gnu.org>
parents:
diff changeset
9870
Dave Love <fx@gnu.org>
parents:
diff changeset
9871 All the mail backends will call @code{nn}*@code{-prepare-save-mail-hook}
Dave Love <fx@gnu.org>
parents:
diff changeset
9872 narrowed to the article to be saved before saving it when reading
Dave Love <fx@gnu.org>
parents:
diff changeset
9873 incoming mail.
Dave Love <fx@gnu.org>
parents:
diff changeset
9874
Dave Love <fx@gnu.org>
parents:
diff changeset
9875
Dave Love <fx@gnu.org>
parents:
diff changeset
9876 @node Choosing a Mail Backend
Dave Love <fx@gnu.org>
parents:
diff changeset
9877 @subsection Choosing a Mail Backend
Dave Love <fx@gnu.org>
parents:
diff changeset
9878
Dave Love <fx@gnu.org>
parents:
diff changeset
9879 Gnus will read the mail spool when you activate a mail group. The mail
Dave Love <fx@gnu.org>
parents:
diff changeset
9880 file is first copied to your home directory. What happens after that
Dave Love <fx@gnu.org>
parents:
diff changeset
9881 depends on what format you want to store your mail in.
Dave Love <fx@gnu.org>
parents:
diff changeset
9882
Dave Love <fx@gnu.org>
parents:
diff changeset
9883 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
9884 * Unix Mail Box:: Using the (quite) standard Un*x mbox.
Dave Love <fx@gnu.org>
parents:
diff changeset
9885 * Rmail Babyl:: Emacs programs use the rmail babyl format.
Dave Love <fx@gnu.org>
parents:
diff changeset
9886 * Mail Spool:: Store your mail in a private spool?
Dave Love <fx@gnu.org>
parents:
diff changeset
9887 * MH Spool:: An mhspool-like backend.
Dave Love <fx@gnu.org>
parents:
diff changeset
9888 * Mail Folders:: Having one file for each group.
Dave Love <fx@gnu.org>
parents:
diff changeset
9889 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
9890
Dave Love <fx@gnu.org>
parents:
diff changeset
9891
Dave Love <fx@gnu.org>
parents:
diff changeset
9892 @node Unix Mail Box
Dave Love <fx@gnu.org>
parents:
diff changeset
9893 @subsubsection Unix Mail Box
Dave Love <fx@gnu.org>
parents:
diff changeset
9894 @cindex nnmbox
Dave Love <fx@gnu.org>
parents:
diff changeset
9895 @cindex unix mail box
Dave Love <fx@gnu.org>
parents:
diff changeset
9896
Dave Love <fx@gnu.org>
parents:
diff changeset
9897 @vindex nnmbox-active-file
Dave Love <fx@gnu.org>
parents:
diff changeset
9898 @vindex nnmbox-mbox-file
Dave Love <fx@gnu.org>
parents:
diff changeset
9899 The @dfn{nnmbox} backend will use the standard Un*x mbox file to store
Dave Love <fx@gnu.org>
parents:
diff changeset
9900 mail. @code{nnmbox} will add extra headers to each mail article to say
Dave Love <fx@gnu.org>
parents:
diff changeset
9901 which group it belongs in.
Dave Love <fx@gnu.org>
parents:
diff changeset
9902
Dave Love <fx@gnu.org>
parents:
diff changeset
9903 Virtual server settings:
Dave Love <fx@gnu.org>
parents:
diff changeset
9904
Dave Love <fx@gnu.org>
parents:
diff changeset
9905 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
9906 @item nnmbox-mbox-file
Dave Love <fx@gnu.org>
parents:
diff changeset
9907 @vindex nnmbox-mbox-file
Dave Love <fx@gnu.org>
parents:
diff changeset
9908 The name of the mail box in the user's home directory.
Dave Love <fx@gnu.org>
parents:
diff changeset
9909
Dave Love <fx@gnu.org>
parents:
diff changeset
9910 @item nnmbox-active-file
Dave Love <fx@gnu.org>
parents:
diff changeset
9911 @vindex nnmbox-active-file
Dave Love <fx@gnu.org>
parents:
diff changeset
9912 The name of the active file for the mail box.
Dave Love <fx@gnu.org>
parents:
diff changeset
9913
Dave Love <fx@gnu.org>
parents:
diff changeset
9914 @item nnmbox-get-new-mail
Dave Love <fx@gnu.org>
parents:
diff changeset
9915 @vindex nnmbox-get-new-mail
Dave Love <fx@gnu.org>
parents:
diff changeset
9916 If non-@code{nil}, @code{nnmbox} will read incoming mail and split it
Dave Love <fx@gnu.org>
parents:
diff changeset
9917 into groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
9918 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
9919
Dave Love <fx@gnu.org>
parents:
diff changeset
9920
Dave Love <fx@gnu.org>
parents:
diff changeset
9921 @node Rmail Babyl
Dave Love <fx@gnu.org>
parents:
diff changeset
9922 @subsubsection Rmail Babyl
Dave Love <fx@gnu.org>
parents:
diff changeset
9923 @cindex nnbabyl
Dave Love <fx@gnu.org>
parents:
diff changeset
9924 @cindex rmail mbox
Dave Love <fx@gnu.org>
parents:
diff changeset
9925
Dave Love <fx@gnu.org>
parents:
diff changeset
9926 @vindex nnbabyl-active-file
Dave Love <fx@gnu.org>
parents:
diff changeset
9927 @vindex nnbabyl-mbox-file
Dave Love <fx@gnu.org>
parents:
diff changeset
9928 The @dfn{nnbabyl} backend will use a babyl mail box (aka. @dfn{rmail
Dave Love <fx@gnu.org>
parents:
diff changeset
9929 mbox}) to store mail. @code{nnbabyl} will add extra headers to each mail
Dave Love <fx@gnu.org>
parents:
diff changeset
9930 article to say which group it belongs in.
Dave Love <fx@gnu.org>
parents:
diff changeset
9931
Dave Love <fx@gnu.org>
parents:
diff changeset
9932 Virtual server settings:
Dave Love <fx@gnu.org>
parents:
diff changeset
9933
Dave Love <fx@gnu.org>
parents:
diff changeset
9934 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
9935 @item nnbabyl-mbox-file
Dave Love <fx@gnu.org>
parents:
diff changeset
9936 @vindex nnbabyl-mbox-file
Dave Love <fx@gnu.org>
parents:
diff changeset
9937 The name of the rmail mbox file.
Dave Love <fx@gnu.org>
parents:
diff changeset
9938
Dave Love <fx@gnu.org>
parents:
diff changeset
9939 @item nnbabyl-active-file
Dave Love <fx@gnu.org>
parents:
diff changeset
9940 @vindex nnbabyl-active-file
Dave Love <fx@gnu.org>
parents:
diff changeset
9941 The name of the active file for the rmail box.
Dave Love <fx@gnu.org>
parents:
diff changeset
9942
Dave Love <fx@gnu.org>
parents:
diff changeset
9943 @item nnbabyl-get-new-mail
Dave Love <fx@gnu.org>
parents:
diff changeset
9944 @vindex nnbabyl-get-new-mail
Dave Love <fx@gnu.org>
parents:
diff changeset
9945 If non-@code{nil}, @code{nnbabyl} will read incoming mail.
Dave Love <fx@gnu.org>
parents:
diff changeset
9946 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
9947
Dave Love <fx@gnu.org>
parents:
diff changeset
9948
Dave Love <fx@gnu.org>
parents:
diff changeset
9949 @node Mail Spool
Dave Love <fx@gnu.org>
parents:
diff changeset
9950 @subsubsection Mail Spool
Dave Love <fx@gnu.org>
parents:
diff changeset
9951 @cindex nnml
Dave Love <fx@gnu.org>
parents:
diff changeset
9952 @cindex mail @sc{nov} spool
Dave Love <fx@gnu.org>
parents:
diff changeset
9953
Dave Love <fx@gnu.org>
parents:
diff changeset
9954 The @dfn{nnml} spool mail format isn't compatible with any other known
Dave Love <fx@gnu.org>
parents:
diff changeset
9955 format. It should be used with some caution.
Dave Love <fx@gnu.org>
parents:
diff changeset
9956
Dave Love <fx@gnu.org>
parents:
diff changeset
9957 @vindex nnml-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
9958 If you use this backend, Gnus will split all incoming mail into files,
Dave Love <fx@gnu.org>
parents:
diff changeset
9959 one file for each mail, and put the articles into the corresponding
Dave Love <fx@gnu.org>
parents:
diff changeset
9960 directories under the directory specified by the @code{nnml-directory}
Dave Love <fx@gnu.org>
parents:
diff changeset
9961 variable. The default value is @file{~/Mail/}.
Dave Love <fx@gnu.org>
parents:
diff changeset
9962
Dave Love <fx@gnu.org>
parents:
diff changeset
9963 You do not have to create any directories beforehand; Gnus will take
Dave Love <fx@gnu.org>
parents:
diff changeset
9964 care of all that.
Dave Love <fx@gnu.org>
parents:
diff changeset
9965
Dave Love <fx@gnu.org>
parents:
diff changeset
9966 If you have a strict limit as to how many files you are allowed to store
Dave Love <fx@gnu.org>
parents:
diff changeset
9967 in your account, you should not use this backend. As each mail gets its
Dave Love <fx@gnu.org>
parents:
diff changeset
9968 own file, you might very well occupy thousands of inodes within a few
Dave Love <fx@gnu.org>
parents:
diff changeset
9969 weeks. If this is no problem for you, and it isn't a problem for you
Dave Love <fx@gnu.org>
parents:
diff changeset
9970 having your friendly systems administrator walking around, madly,
Dave Love <fx@gnu.org>
parents:
diff changeset
9971 shouting ``Who is eating all my inodes?! Who? Who!?!'', then you should
Dave Love <fx@gnu.org>
parents:
diff changeset
9972 know that this is probably the fastest format to use. You do not have
Dave Love <fx@gnu.org>
parents:
diff changeset
9973 to trudge through a big mbox file just to read your new mail.
Dave Love <fx@gnu.org>
parents:
diff changeset
9974
Dave Love <fx@gnu.org>
parents:
diff changeset
9975 @code{nnml} is probably the slowest backend when it comes to article
Dave Love <fx@gnu.org>
parents:
diff changeset
9976 splitting. It has to create lots of files, and it also generates
Dave Love <fx@gnu.org>
parents:
diff changeset
9977 @sc{nov} databases for the incoming mails. This makes it the fastest
Dave Love <fx@gnu.org>
parents:
diff changeset
9978 backend when it comes to reading mail.
Dave Love <fx@gnu.org>
parents:
diff changeset
9979
Dave Love <fx@gnu.org>
parents:
diff changeset
9980 Virtual server settings:
Dave Love <fx@gnu.org>
parents:
diff changeset
9981
Dave Love <fx@gnu.org>
parents:
diff changeset
9982 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
9983 @item nnml-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
9984 @vindex nnml-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
9985 All @code{nnml} directories will be placed under this directory.
Dave Love <fx@gnu.org>
parents:
diff changeset
9986
Dave Love <fx@gnu.org>
parents:
diff changeset
9987 @item nnml-active-file
Dave Love <fx@gnu.org>
parents:
diff changeset
9988 @vindex nnml-active-file
Dave Love <fx@gnu.org>
parents:
diff changeset
9989 The active file for the @code{nnml} server.
Dave Love <fx@gnu.org>
parents:
diff changeset
9990
Dave Love <fx@gnu.org>
parents:
diff changeset
9991 @item nnml-newsgroups-file
Dave Love <fx@gnu.org>
parents:
diff changeset
9992 @vindex nnml-newsgroups-file
Dave Love <fx@gnu.org>
parents:
diff changeset
9993 The @code{nnml} group descriptions file. @xref{Newsgroups File
Dave Love <fx@gnu.org>
parents:
diff changeset
9994 Format}.
Dave Love <fx@gnu.org>
parents:
diff changeset
9995
Dave Love <fx@gnu.org>
parents:
diff changeset
9996 @item nnml-get-new-mail
Dave Love <fx@gnu.org>
parents:
diff changeset
9997 @vindex nnml-get-new-mail
Dave Love <fx@gnu.org>
parents:
diff changeset
9998 If non-@code{nil}, @code{nnml} will read incoming mail.
Dave Love <fx@gnu.org>
parents:
diff changeset
9999
Dave Love <fx@gnu.org>
parents:
diff changeset
10000 @item nnml-nov-is-evil
Dave Love <fx@gnu.org>
parents:
diff changeset
10001 @vindex nnml-nov-is-evil
Dave Love <fx@gnu.org>
parents:
diff changeset
10002 If non-@code{nil}, this backend will ignore any @sc{nov} files.
Dave Love <fx@gnu.org>
parents:
diff changeset
10003
Dave Love <fx@gnu.org>
parents:
diff changeset
10004 @item nnml-nov-file-name
Dave Love <fx@gnu.org>
parents:
diff changeset
10005 @vindex nnml-nov-file-name
Dave Love <fx@gnu.org>
parents:
diff changeset
10006 The name of the @sc{nov} files. The default is @file{.overview}.
Dave Love <fx@gnu.org>
parents:
diff changeset
10007
Dave Love <fx@gnu.org>
parents:
diff changeset
10008 @item nnml-prepare-save-mail-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
10009 @vindex nnml-prepare-save-mail-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
10010 Hook run narrowed to an article before saving.
Dave Love <fx@gnu.org>
parents:
diff changeset
10011
Dave Love <fx@gnu.org>
parents:
diff changeset
10012 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
10013
Dave Love <fx@gnu.org>
parents:
diff changeset
10014 @findex nnml-generate-nov-databases
Dave Love <fx@gnu.org>
parents:
diff changeset
10015 If your @code{nnml} groups and @sc{nov} files get totally out of whack,
Dave Love <fx@gnu.org>
parents:
diff changeset
10016 you can do a complete update by typing @kbd{M-x
Dave Love <fx@gnu.org>
parents:
diff changeset
10017 nnml-generate-nov-databases}. This command will trawl through the
Dave Love <fx@gnu.org>
parents:
diff changeset
10018 entire @code{nnml} hierarchy, looking at each and every article, so it
Dave Love <fx@gnu.org>
parents:
diff changeset
10019 might take a while to complete. A better interface to this
Dave Love <fx@gnu.org>
parents:
diff changeset
10020 functionality can be found in the server buffer (@pxref{Server
Dave Love <fx@gnu.org>
parents:
diff changeset
10021 Commands}).
Dave Love <fx@gnu.org>
parents:
diff changeset
10022
Dave Love <fx@gnu.org>
parents:
diff changeset
10023
Dave Love <fx@gnu.org>
parents:
diff changeset
10024 @node MH Spool
Dave Love <fx@gnu.org>
parents:
diff changeset
10025 @subsubsection MH Spool
Dave Love <fx@gnu.org>
parents:
diff changeset
10026 @cindex nnmh
Dave Love <fx@gnu.org>
parents:
diff changeset
10027 @cindex mh-e mail spool
Dave Love <fx@gnu.org>
parents:
diff changeset
10028
Dave Love <fx@gnu.org>
parents:
diff changeset
10029 @code{nnmh} is just like @code{nnml}, except that is doesn't generate
Dave Love <fx@gnu.org>
parents:
diff changeset
10030 @sc{nov} databases and it doesn't keep an active file. This makes
Dave Love <fx@gnu.org>
parents:
diff changeset
10031 @code{nnmh} a @emph{much} slower backend than @code{nnml}, but it also
Dave Love <fx@gnu.org>
parents:
diff changeset
10032 makes it easier to write procmail scripts for.
Dave Love <fx@gnu.org>
parents:
diff changeset
10033
Dave Love <fx@gnu.org>
parents:
diff changeset
10034 Virtual server settings:
Dave Love <fx@gnu.org>
parents:
diff changeset
10035
Dave Love <fx@gnu.org>
parents:
diff changeset
10036 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
10037 @item nnmh-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
10038 @vindex nnmh-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
10039 All @code{nnmh} directories will be located under this directory.
Dave Love <fx@gnu.org>
parents:
diff changeset
10040
Dave Love <fx@gnu.org>
parents:
diff changeset
10041 @item nnmh-get-new-mail
Dave Love <fx@gnu.org>
parents:
diff changeset
10042 @vindex nnmh-get-new-mail
Dave Love <fx@gnu.org>
parents:
diff changeset
10043 If non-@code{nil}, @code{nnmh} will read incoming mail.
Dave Love <fx@gnu.org>
parents:
diff changeset
10044
Dave Love <fx@gnu.org>
parents:
diff changeset
10045 @item nnmh-be-safe
Dave Love <fx@gnu.org>
parents:
diff changeset
10046 @vindex nnmh-be-safe
Dave Love <fx@gnu.org>
parents:
diff changeset
10047 If non-@code{nil}, @code{nnmh} will go to ridiculous lengths to make
Dave Love <fx@gnu.org>
parents:
diff changeset
10048 sure that the articles in the folder are actually what Gnus thinks they
Dave Love <fx@gnu.org>
parents:
diff changeset
10049 are. It will check date stamps and stat everything in sight, so
Dave Love <fx@gnu.org>
parents:
diff changeset
10050 setting this to @code{t} will mean a serious slow-down. If you never
Dave Love <fx@gnu.org>
parents:
diff changeset
10051 use anything but Gnus to read the @code{nnmh} articles, you do not have
Dave Love <fx@gnu.org>
parents:
diff changeset
10052 to set this variable to @code{t}.
Dave Love <fx@gnu.org>
parents:
diff changeset
10053 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
10054
Dave Love <fx@gnu.org>
parents:
diff changeset
10055
Dave Love <fx@gnu.org>
parents:
diff changeset
10056 @node Mail Folders
Dave Love <fx@gnu.org>
parents:
diff changeset
10057 @subsubsection Mail Folders
Dave Love <fx@gnu.org>
parents:
diff changeset
10058 @cindex nnfolder
Dave Love <fx@gnu.org>
parents:
diff changeset
10059 @cindex mbox folders
Dave Love <fx@gnu.org>
parents:
diff changeset
10060 @cindex mail folders
Dave Love <fx@gnu.org>
parents:
diff changeset
10061
Dave Love <fx@gnu.org>
parents:
diff changeset
10062 @code{nnfolder} is a backend for storing each mail group in a separate
Dave Love <fx@gnu.org>
parents:
diff changeset
10063 file. Each file is in the standard Un*x mbox format. @code{nnfolder}
Dave Love <fx@gnu.org>
parents:
diff changeset
10064 will add extra headers to keep track of article numbers and arrival
Dave Love <fx@gnu.org>
parents:
diff changeset
10065 dates.
Dave Love <fx@gnu.org>
parents:
diff changeset
10066
Dave Love <fx@gnu.org>
parents:
diff changeset
10067 Virtual server settings:
Dave Love <fx@gnu.org>
parents:
diff changeset
10068
Dave Love <fx@gnu.org>
parents:
diff changeset
10069 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
10070 @item nnfolder-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
10071 @vindex nnfolder-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
10072 All the @code{nnfolder} mail boxes will be stored under this directory.
Dave Love <fx@gnu.org>
parents:
diff changeset
10073
Dave Love <fx@gnu.org>
parents:
diff changeset
10074 @item nnfolder-active-file
Dave Love <fx@gnu.org>
parents:
diff changeset
10075 @vindex nnfolder-active-file
Dave Love <fx@gnu.org>
parents:
diff changeset
10076 The name of the active file.
Dave Love <fx@gnu.org>
parents:
diff changeset
10077
Dave Love <fx@gnu.org>
parents:
diff changeset
10078 @item nnfolder-newsgroups-file
Dave Love <fx@gnu.org>
parents:
diff changeset
10079 @vindex nnfolder-newsgroups-file
Dave Love <fx@gnu.org>
parents:
diff changeset
10080 The name of the group descriptions file. @xref{Newsgroups File Format}.
Dave Love <fx@gnu.org>
parents:
diff changeset
10081
Dave Love <fx@gnu.org>
parents:
diff changeset
10082 @item nnfolder-get-new-mail
Dave Love <fx@gnu.org>
parents:
diff changeset
10083 @vindex nnfolder-get-new-mail
Dave Love <fx@gnu.org>
parents:
diff changeset
10084 If non-@code{nil}, @code{nnfolder} will read incoming mail.
Dave Love <fx@gnu.org>
parents:
diff changeset
10085
Dave Love <fx@gnu.org>
parents:
diff changeset
10086 @item nnfolder-save-buffer-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
10087 @vindex nnfolder-save-buffer-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
10088 @cindex backup files
Dave Love <fx@gnu.org>
parents:
diff changeset
10089 Hook run before saving the folders. Note that Emacs does the normal
Dave Love <fx@gnu.org>
parents:
diff changeset
10090 backup renaming of files even with the @code{nnfolder} buffers. If you
Dave Love <fx@gnu.org>
parents:
diff changeset
10091 wish to switch this off, you could say something like the following in
Dave Love <fx@gnu.org>
parents:
diff changeset
10092 your @file{.emacs} file:
Dave Love <fx@gnu.org>
parents:
diff changeset
10093
Dave Love <fx@gnu.org>
parents:
diff changeset
10094 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
10095 (defun turn-off-backup ()
Dave Love <fx@gnu.org>
parents:
diff changeset
10096 (set (make-local-variable 'backup-inhibited) t))
Dave Love <fx@gnu.org>
parents:
diff changeset
10097
Dave Love <fx@gnu.org>
parents:
diff changeset
10098 (add-hook 'nnfolder-save-buffer-hook 'turn-off-backup)
Dave Love <fx@gnu.org>
parents:
diff changeset
10099 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
10100
Dave Love <fx@gnu.org>
parents:
diff changeset
10101 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
10102
Dave Love <fx@gnu.org>
parents:
diff changeset
10103
Dave Love <fx@gnu.org>
parents:
diff changeset
10104 @findex nnfolder-generate-active-file
Dave Love <fx@gnu.org>
parents:
diff changeset
10105 @kindex M-x nnfolder-generate-active-file
Dave Love <fx@gnu.org>
parents:
diff changeset
10106 If you have lots of @code{nnfolder}-like files you'd like to read with
Dave Love <fx@gnu.org>
parents:
diff changeset
10107 @code{nnfolder}, you can use the @kbd{M-x nnfolder-generate-active-file}
Dave Love <fx@gnu.org>
parents:
diff changeset
10108 command to make @code{nnfolder} aware of all likely files in
Dave Love <fx@gnu.org>
parents:
diff changeset
10109 @code{nnfolder-directory}.
Dave Love <fx@gnu.org>
parents:
diff changeset
10110
Dave Love <fx@gnu.org>
parents:
diff changeset
10111
Dave Love <fx@gnu.org>
parents:
diff changeset
10112 @node Other Sources
Dave Love <fx@gnu.org>
parents:
diff changeset
10113 @section Other Sources
Dave Love <fx@gnu.org>
parents:
diff changeset
10114
Dave Love <fx@gnu.org>
parents:
diff changeset
10115 Gnus can do more than just read news or mail. The methods described
Dave Love <fx@gnu.org>
parents:
diff changeset
10116 below allow Gnus to view directories and files as if they were
Dave Love <fx@gnu.org>
parents:
diff changeset
10117 newsgroups.
Dave Love <fx@gnu.org>
parents:
diff changeset
10118
Dave Love <fx@gnu.org>
parents:
diff changeset
10119 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
10120 * Directory Groups:: You can read a directory as if it was a newsgroup.
Dave Love <fx@gnu.org>
parents:
diff changeset
10121 * Anything Groups:: Dired? Who needs dired?
Dave Love <fx@gnu.org>
parents:
diff changeset
10122 * Document Groups:: Single files can be the basis of a group.
26290
df10644e22b5 Fix complaints from makeinfo 4.0.
Dave Love <fx@gnu.org>
parents: 25829
diff changeset
10123 * SOUP:: Reading @sc{soup} packets ``offline''.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
10124 * Web Searches:: Creating groups from articles that match a string.
Dave Love <fx@gnu.org>
parents:
diff changeset
10125 * Mail-To-News Gateways:: Posting articles via mail-to-news gateways.
Dave Love <fx@gnu.org>
parents:
diff changeset
10126 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
10127
Dave Love <fx@gnu.org>
parents:
diff changeset
10128
Dave Love <fx@gnu.org>
parents:
diff changeset
10129 @node Directory Groups
Dave Love <fx@gnu.org>
parents:
diff changeset
10130 @subsection Directory Groups
Dave Love <fx@gnu.org>
parents:
diff changeset
10131 @cindex nndir
Dave Love <fx@gnu.org>
parents:
diff changeset
10132 @cindex directory groups
Dave Love <fx@gnu.org>
parents:
diff changeset
10133
Dave Love <fx@gnu.org>
parents:
diff changeset
10134 If you have a directory that has lots of articles in separate files in
Dave Love <fx@gnu.org>
parents:
diff changeset
10135 it, you might treat it as a newsgroup. The files have to have numerical
Dave Love <fx@gnu.org>
parents:
diff changeset
10136 names, of course.
Dave Love <fx@gnu.org>
parents:
diff changeset
10137
Dave Love <fx@gnu.org>
parents:
diff changeset
10138 This might be an opportune moment to mention @code{ange-ftp} (and its
Dave Love <fx@gnu.org>
parents:
diff changeset
10139 successor @code{efs}), that most wonderful of all wonderful Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
10140 packages. When I wrote @code{nndir}, I didn't think much about it---a
Dave Love <fx@gnu.org>
parents:
diff changeset
10141 backend to read directories. Big deal.
Dave Love <fx@gnu.org>
parents:
diff changeset
10142
Dave Love <fx@gnu.org>
parents:
diff changeset
10143 @code{ange-ftp} changes that picture dramatically. For instance, if you
Dave Love <fx@gnu.org>
parents:
diff changeset
10144 enter the @code{ange-ftp} file name
Dave Love <fx@gnu.org>
parents:
diff changeset
10145 @file{/ftp.hpc.uh.edu:/pub/emacs/ding-list/} as the directory name,
Dave Love <fx@gnu.org>
parents:
diff changeset
10146 @code{ange-ftp} or @code{efs} will actually allow you to read this
Dave Love <fx@gnu.org>
parents:
diff changeset
10147 directory over at @samp{sina} as a newsgroup. Distributed news ahoy!
Dave Love <fx@gnu.org>
parents:
diff changeset
10148
Dave Love <fx@gnu.org>
parents:
diff changeset
10149 @code{nndir} will use @sc{nov} files if they are present.
Dave Love <fx@gnu.org>
parents:
diff changeset
10150
Dave Love <fx@gnu.org>
parents:
diff changeset
10151 @code{nndir} is a ``read-only'' backend---you can't delete or expire
Dave Love <fx@gnu.org>
parents:
diff changeset
10152 articles with this method. You can use @code{nnmh} or @code{nnml} for
Dave Love <fx@gnu.org>
parents:
diff changeset
10153 whatever you use @code{nndir} for, so you could switch to any of those
Dave Love <fx@gnu.org>
parents:
diff changeset
10154 methods if you feel the need to have a non-read-only @code{nndir}.
Dave Love <fx@gnu.org>
parents:
diff changeset
10155
Dave Love <fx@gnu.org>
parents:
diff changeset
10156
Dave Love <fx@gnu.org>
parents:
diff changeset
10157 @node Anything Groups
Dave Love <fx@gnu.org>
parents:
diff changeset
10158 @subsection Anything Groups
Dave Love <fx@gnu.org>
parents:
diff changeset
10159 @cindex nneething
Dave Love <fx@gnu.org>
parents:
diff changeset
10160
Dave Love <fx@gnu.org>
parents:
diff changeset
10161 From the @code{nndir} backend (which reads a single spool-like
Dave Love <fx@gnu.org>
parents:
diff changeset
10162 directory), it's just a hop and a skip to @code{nneething}, which
Dave Love <fx@gnu.org>
parents:
diff changeset
10163 pretends that any arbitrary directory is a newsgroup. Strange, but
Dave Love <fx@gnu.org>
parents:
diff changeset
10164 true.
Dave Love <fx@gnu.org>
parents:
diff changeset
10165
Dave Love <fx@gnu.org>
parents:
diff changeset
10166 When @code{nneething} is presented with a directory, it will scan this
Dave Love <fx@gnu.org>
parents:
diff changeset
10167 directory and assign article numbers to each file. When you enter such
Dave Love <fx@gnu.org>
parents:
diff changeset
10168 a group, @code{nneething} must create ``headers'' that Gnus can use.
Dave Love <fx@gnu.org>
parents:
diff changeset
10169 After all, Gnus is a newsreader, in case you're
Dave Love <fx@gnu.org>
parents:
diff changeset
10170 forgetting. @code{nneething} does this in a two-step process. First, it
Dave Love <fx@gnu.org>
parents:
diff changeset
10171 snoops each file in question. If the file looks like an article (i.e.,
Dave Love <fx@gnu.org>
parents:
diff changeset
10172 the first few lines look like headers), it will use this as the head.
Dave Love <fx@gnu.org>
parents:
diff changeset
10173 If this is just some arbitrary file without a head (e.g. a C source
Dave Love <fx@gnu.org>
parents:
diff changeset
10174 file), @code{nneething} will cobble up a header out of thin air. It
Dave Love <fx@gnu.org>
parents:
diff changeset
10175 will use file ownership, name and date and do whatever it can with these
Dave Love <fx@gnu.org>
parents:
diff changeset
10176 elements.
Dave Love <fx@gnu.org>
parents:
diff changeset
10177
Dave Love <fx@gnu.org>
parents:
diff changeset
10178 All this should happen automatically for you, and you will be presented
Dave Love <fx@gnu.org>
parents:
diff changeset
10179 with something that looks very much like a newsgroup. Totally like a
Dave Love <fx@gnu.org>
parents:
diff changeset
10180 newsgroup, to be precise. If you select an article, it will be displayed
Dave Love <fx@gnu.org>
parents:
diff changeset
10181 in the article buffer, just as usual.
Dave Love <fx@gnu.org>
parents:
diff changeset
10182
Dave Love <fx@gnu.org>
parents:
diff changeset
10183 If you select a line that represents a directory, Gnus will pop you into
Dave Love <fx@gnu.org>
parents:
diff changeset
10184 a new summary buffer for this @code{nneething} group. And so on. You can
Dave Love <fx@gnu.org>
parents:
diff changeset
10185 traverse the entire disk this way, if you feel like, but remember that
Dave Love <fx@gnu.org>
parents:
diff changeset
10186 Gnus is not dired, really, and does not intend to be, either.
Dave Love <fx@gnu.org>
parents:
diff changeset
10187
Dave Love <fx@gnu.org>
parents:
diff changeset
10188 There are two overall modes to this action---ephemeral or solid. When
Dave Love <fx@gnu.org>
parents:
diff changeset
10189 doing the ephemeral thing (i.e., @kbd{G D} from the group buffer), Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
10190 will not store information on what files you have read, and what files
Dave Love <fx@gnu.org>
parents:
diff changeset
10191 are new, and so on. If you create a solid @code{nneething} group the
Dave Love <fx@gnu.org>
parents:
diff changeset
10192 normal way with @kbd{G m}, Gnus will store a mapping table between
Dave Love <fx@gnu.org>
parents:
diff changeset
10193 article numbers and file names, and you can treat this group like any
Dave Love <fx@gnu.org>
parents:
diff changeset
10194 other groups. When you activate a solid @code{nneething} group, you will
Dave Love <fx@gnu.org>
parents:
diff changeset
10195 be told how many unread articles it contains, etc., etc.
Dave Love <fx@gnu.org>
parents:
diff changeset
10196
Dave Love <fx@gnu.org>
parents:
diff changeset
10197 Some variables:
Dave Love <fx@gnu.org>
parents:
diff changeset
10198
Dave Love <fx@gnu.org>
parents:
diff changeset
10199 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
10200 @item nneething-map-file-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
10201 @vindex nneething-map-file-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
10202 All the mapping files for solid @code{nneething} groups will be stored
Dave Love <fx@gnu.org>
parents:
diff changeset
10203 in this directory, which defaults to @file{~/.nneething/}.
Dave Love <fx@gnu.org>
parents:
diff changeset
10204
Dave Love <fx@gnu.org>
parents:
diff changeset
10205 @item nneething-exclude-files
Dave Love <fx@gnu.org>
parents:
diff changeset
10206 @vindex nneething-exclude-files
Dave Love <fx@gnu.org>
parents:
diff changeset
10207 All files that match this regexp will be ignored. Nice to use to exclude
Dave Love <fx@gnu.org>
parents:
diff changeset
10208 auto-save files and the like, which is what it does by default.
Dave Love <fx@gnu.org>
parents:
diff changeset
10209
Dave Love <fx@gnu.org>
parents:
diff changeset
10210 @item nneething-map-file
Dave Love <fx@gnu.org>
parents:
diff changeset
10211 @vindex nneething-map-file
Dave Love <fx@gnu.org>
parents:
diff changeset
10212 Name of the map files.
Dave Love <fx@gnu.org>
parents:
diff changeset
10213 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
10214
Dave Love <fx@gnu.org>
parents:
diff changeset
10215
Dave Love <fx@gnu.org>
parents:
diff changeset
10216 @node Document Groups
Dave Love <fx@gnu.org>
parents:
diff changeset
10217 @subsection Document Groups
Dave Love <fx@gnu.org>
parents:
diff changeset
10218 @cindex nndoc
Dave Love <fx@gnu.org>
parents:
diff changeset
10219 @cindex documentation group
Dave Love <fx@gnu.org>
parents:
diff changeset
10220 @cindex help group
Dave Love <fx@gnu.org>
parents:
diff changeset
10221
Dave Love <fx@gnu.org>
parents:
diff changeset
10222 @code{nndoc} is a cute little thing that will let you read a single file
Dave Love <fx@gnu.org>
parents:
diff changeset
10223 as a newsgroup. Several files types are supported:
Dave Love <fx@gnu.org>
parents:
diff changeset
10224
Dave Love <fx@gnu.org>
parents:
diff changeset
10225 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
10226 @cindex babyl
Dave Love <fx@gnu.org>
parents:
diff changeset
10227 @cindex rmail mbox
Dave Love <fx@gnu.org>
parents:
diff changeset
10228
Dave Love <fx@gnu.org>
parents:
diff changeset
10229 @item babyl
Dave Love <fx@gnu.org>
parents:
diff changeset
10230 The babyl (rmail) mail box.
Dave Love <fx@gnu.org>
parents:
diff changeset
10231 @cindex mbox
Dave Love <fx@gnu.org>
parents:
diff changeset
10232 @cindex Unix mbox
Dave Love <fx@gnu.org>
parents:
diff changeset
10233
Dave Love <fx@gnu.org>
parents:
diff changeset
10234 @item mbox
Dave Love <fx@gnu.org>
parents:
diff changeset
10235 The standard Unix mbox file.
Dave Love <fx@gnu.org>
parents:
diff changeset
10236
Dave Love <fx@gnu.org>
parents:
diff changeset
10237 @cindex MMDF mail box
Dave Love <fx@gnu.org>
parents:
diff changeset
10238 @item mmdf
Dave Love <fx@gnu.org>
parents:
diff changeset
10239 The MMDF mail box format.
Dave Love <fx@gnu.org>
parents:
diff changeset
10240
Dave Love <fx@gnu.org>
parents:
diff changeset
10241 @item news
Dave Love <fx@gnu.org>
parents:
diff changeset
10242 Several news articles appended into a file.
Dave Love <fx@gnu.org>
parents:
diff changeset
10243
Dave Love <fx@gnu.org>
parents:
diff changeset
10244 @item rnews
Dave Love <fx@gnu.org>
parents:
diff changeset
10245 @cindex rnews batch files
Dave Love <fx@gnu.org>
parents:
diff changeset
10246 The rnews batch transport format.
Dave Love <fx@gnu.org>
parents:
diff changeset
10247 @cindex forwarded messages
Dave Love <fx@gnu.org>
parents:
diff changeset
10248
Dave Love <fx@gnu.org>
parents:
diff changeset
10249 @item forward
Dave Love <fx@gnu.org>
parents:
diff changeset
10250 Forwarded articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
10251
Dave Love <fx@gnu.org>
parents:
diff changeset
10252 @item mime-parts
Dave Love <fx@gnu.org>
parents:
diff changeset
10253 MIME multipart messages, besides digests.
Dave Love <fx@gnu.org>
parents:
diff changeset
10254
Dave Love <fx@gnu.org>
parents:
diff changeset
10255 @item mime-digest
Dave Love <fx@gnu.org>
parents:
diff changeset
10256 @cindex digest
Dave Love <fx@gnu.org>
parents:
diff changeset
10257 @cindex MIME digest
Dave Love <fx@gnu.org>
parents:
diff changeset
10258 @cindex 1153 digest
Dave Love <fx@gnu.org>
parents:
diff changeset
10259 @cindex RFC 1153 digest
Dave Love <fx@gnu.org>
parents:
diff changeset
10260 @cindex RFC 341 digest
Dave Love <fx@gnu.org>
parents:
diff changeset
10261 MIME (RFC 1341) digest format.
Dave Love <fx@gnu.org>
parents:
diff changeset
10262
Dave Love <fx@gnu.org>
parents:
diff changeset
10263 @item standard-digest
Dave Love <fx@gnu.org>
parents:
diff changeset
10264 The standard (RFC 1153) digest format.
Dave Love <fx@gnu.org>
parents:
diff changeset
10265
Dave Love <fx@gnu.org>
parents:
diff changeset
10266 @item slack-digest
Dave Love <fx@gnu.org>
parents:
diff changeset
10267 Non-standard digest format---matches most things, but does it badly.
Dave Love <fx@gnu.org>
parents:
diff changeset
10268 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
10269
Dave Love <fx@gnu.org>
parents:
diff changeset
10270 You can also use the special ``file type'' @code{guess}, which means
Dave Love <fx@gnu.org>
parents:
diff changeset
10271 that @code{nndoc} will try to guess what file type it is looking at.
Dave Love <fx@gnu.org>
parents:
diff changeset
10272 @code{digest} means that @code{nndoc} should guess what digest type the
Dave Love <fx@gnu.org>
parents:
diff changeset
10273 file is.
Dave Love <fx@gnu.org>
parents:
diff changeset
10274
Dave Love <fx@gnu.org>
parents:
diff changeset
10275 @code{nndoc} will not try to change the file or insert any extra headers into
Dave Love <fx@gnu.org>
parents:
diff changeset
10276 it---it will simply, like, let you use the file as the basis for a
Dave Love <fx@gnu.org>
parents:
diff changeset
10277 group. And that's it.
Dave Love <fx@gnu.org>
parents:
diff changeset
10278
Dave Love <fx@gnu.org>
parents:
diff changeset
10279 If you have some old archived articles that you want to insert into your
Dave Love <fx@gnu.org>
parents:
diff changeset
10280 new & spiffy Gnus mail backend, @code{nndoc} can probably help you with
Dave Love <fx@gnu.org>
parents:
diff changeset
10281 that. Say you have an old @file{RMAIL} file with mail that you now want
Dave Love <fx@gnu.org>
parents:
diff changeset
10282 to split into your new @code{nnml} groups. You look at that file using
Dave Love <fx@gnu.org>
parents:
diff changeset
10283 @code{nndoc} (using the @kbd{G f} command in the group buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
10284 (@pxref{Foreign Groups})), set the process mark on all the articles in
Dave Love <fx@gnu.org>
parents:
diff changeset
10285 the buffer (@kbd{M P b}, for instance), and then re-spool (@kbd{B r})
Dave Love <fx@gnu.org>
parents:
diff changeset
10286 using @code{nnml}. If all goes well, all the mail in the @file{RMAIL}
Dave Love <fx@gnu.org>
parents:
diff changeset
10287 file is now also stored in lots of @code{nnml} directories, and you can
Dave Love <fx@gnu.org>
parents:
diff changeset
10288 delete that pesky @file{RMAIL} file. If you have the guts!
Dave Love <fx@gnu.org>
parents:
diff changeset
10289
Dave Love <fx@gnu.org>
parents:
diff changeset
10290 Virtual server variables:
Dave Love <fx@gnu.org>
parents:
diff changeset
10291
Dave Love <fx@gnu.org>
parents:
diff changeset
10292 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
10293 @item nndoc-article-type
Dave Love <fx@gnu.org>
parents:
diff changeset
10294 @vindex nndoc-article-type
Dave Love <fx@gnu.org>
parents:
diff changeset
10295 This should be one of @code{mbox}, @code{babyl}, @code{digest},
Dave Love <fx@gnu.org>
parents:
diff changeset
10296 @code{news}, @code{rnews}, @code{mmdf}, @code{forward}, @code{rfc934},
Dave Love <fx@gnu.org>
parents:
diff changeset
10297 @code{rfc822-forward}, @code{mime-parts}, @code{mime-digest},
Dave Love <fx@gnu.org>
parents:
diff changeset
10298 @code{standard-digest}, @code{slack-digest}, @code{clari-briefs} or
Dave Love <fx@gnu.org>
parents:
diff changeset
10299 @code{guess}.
Dave Love <fx@gnu.org>
parents:
diff changeset
10300
Dave Love <fx@gnu.org>
parents:
diff changeset
10301 @item nndoc-post-type
Dave Love <fx@gnu.org>
parents:
diff changeset
10302 @vindex nndoc-post-type
Dave Love <fx@gnu.org>
parents:
diff changeset
10303 This variable says whether Gnus is to consider the group a news group or
Dave Love <fx@gnu.org>
parents:
diff changeset
10304 a mail group. There are two valid values: @code{mail} (the default)
Dave Love <fx@gnu.org>
parents:
diff changeset
10305 and @code{news}.
Dave Love <fx@gnu.org>
parents:
diff changeset
10306 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
10307
Dave Love <fx@gnu.org>
parents:
diff changeset
10308 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
10309 * Document Server Internals:: How to add your own document types.
Dave Love <fx@gnu.org>
parents:
diff changeset
10310 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
10311
Dave Love <fx@gnu.org>
parents:
diff changeset
10312
Dave Love <fx@gnu.org>
parents:
diff changeset
10313 @node Document Server Internals
Dave Love <fx@gnu.org>
parents:
diff changeset
10314 @subsubsection Document Server Internals
Dave Love <fx@gnu.org>
parents:
diff changeset
10315
Dave Love <fx@gnu.org>
parents:
diff changeset
10316 Adding new document types to be recognized by @code{nndoc} isn't
Dave Love <fx@gnu.org>
parents:
diff changeset
10317 difficult. You just have to whip up a definition of what the document
Dave Love <fx@gnu.org>
parents:
diff changeset
10318 looks like, write a predicate function to recognize that document type,
Dave Love <fx@gnu.org>
parents:
diff changeset
10319 and then hook into @code{nndoc}.
Dave Love <fx@gnu.org>
parents:
diff changeset
10320
Dave Love <fx@gnu.org>
parents:
diff changeset
10321 First, here's an example document type definition:
Dave Love <fx@gnu.org>
parents:
diff changeset
10322
Dave Love <fx@gnu.org>
parents:
diff changeset
10323 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
10324 (mmdf
Dave Love <fx@gnu.org>
parents:
diff changeset
10325 (article-begin . "^\^A\^A\^A\^A\n")
Dave Love <fx@gnu.org>
parents:
diff changeset
10326 (body-end . "^\^A\^A\^A\^A\n"))
Dave Love <fx@gnu.org>
parents:
diff changeset
10327 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
10328
Dave Love <fx@gnu.org>
parents:
diff changeset
10329 The definition is simply a unique @dfn{name} followed by a series of
Dave Love <fx@gnu.org>
parents:
diff changeset
10330 regexp pseudo-variable settings. Below are the possible
Dave Love <fx@gnu.org>
parents:
diff changeset
10331 variables---don't be daunted by the number of variables; most document
Dave Love <fx@gnu.org>
parents:
diff changeset
10332 types can be defined with very few settings:
Dave Love <fx@gnu.org>
parents:
diff changeset
10333
Dave Love <fx@gnu.org>
parents:
diff changeset
10334 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
10335 @item first-article
Dave Love <fx@gnu.org>
parents:
diff changeset
10336 If present, @code{nndoc} will skip past all text until it finds
Dave Love <fx@gnu.org>
parents:
diff changeset
10337 something that match this regexp. All text before this will be
Dave Love <fx@gnu.org>
parents:
diff changeset
10338 totally ignored.
Dave Love <fx@gnu.org>
parents:
diff changeset
10339
Dave Love <fx@gnu.org>
parents:
diff changeset
10340 @item article-begin
Dave Love <fx@gnu.org>
parents:
diff changeset
10341 This setting has to be present in all document type definitions. It
Dave Love <fx@gnu.org>
parents:
diff changeset
10342 says what the beginning of each article looks like.
Dave Love <fx@gnu.org>
parents:
diff changeset
10343
Dave Love <fx@gnu.org>
parents:
diff changeset
10344 @item head-begin-function
Dave Love <fx@gnu.org>
parents:
diff changeset
10345 If present, this should be a function that moves point to the head of
Dave Love <fx@gnu.org>
parents:
diff changeset
10346 the article.
Dave Love <fx@gnu.org>
parents:
diff changeset
10347
Dave Love <fx@gnu.org>
parents:
diff changeset
10348 @item nndoc-head-begin
Dave Love <fx@gnu.org>
parents:
diff changeset
10349 If present, this should be a regexp that matches the head of the
Dave Love <fx@gnu.org>
parents:
diff changeset
10350 article.
Dave Love <fx@gnu.org>
parents:
diff changeset
10351
Dave Love <fx@gnu.org>
parents:
diff changeset
10352 @item nndoc-head-end
Dave Love <fx@gnu.org>
parents:
diff changeset
10353 This should match the end of the head of the article. It defaults to
Dave Love <fx@gnu.org>
parents:
diff changeset
10354 @samp{^$}---the empty line.
Dave Love <fx@gnu.org>
parents:
diff changeset
10355
Dave Love <fx@gnu.org>
parents:
diff changeset
10356 @item body-begin-function
Dave Love <fx@gnu.org>
parents:
diff changeset
10357 If present, this function should move point to the beginning of the body
Dave Love <fx@gnu.org>
parents:
diff changeset
10358 of the article.
Dave Love <fx@gnu.org>
parents:
diff changeset
10359
Dave Love <fx@gnu.org>
parents:
diff changeset
10360 @item body-begin
Dave Love <fx@gnu.org>
parents:
diff changeset
10361 This should match the beginning of the body of the article. It defaults
Dave Love <fx@gnu.org>
parents:
diff changeset
10362 to @samp{^\n}.
Dave Love <fx@gnu.org>
parents:
diff changeset
10363
Dave Love <fx@gnu.org>
parents:
diff changeset
10364 @item body-end-function
Dave Love <fx@gnu.org>
parents:
diff changeset
10365 If present, this function should move point to the end of the body of
Dave Love <fx@gnu.org>
parents:
diff changeset
10366 the article.
Dave Love <fx@gnu.org>
parents:
diff changeset
10367
Dave Love <fx@gnu.org>
parents:
diff changeset
10368 @item body-end
Dave Love <fx@gnu.org>
parents:
diff changeset
10369 If present, this should match the end of the body of the article.
Dave Love <fx@gnu.org>
parents:
diff changeset
10370
Dave Love <fx@gnu.org>
parents:
diff changeset
10371 @item file-end
Dave Love <fx@gnu.org>
parents:
diff changeset
10372 If present, this should match the end of the file. All text after this
Dave Love <fx@gnu.org>
parents:
diff changeset
10373 regexp will be totally ignored.
Dave Love <fx@gnu.org>
parents:
diff changeset
10374
Dave Love <fx@gnu.org>
parents:
diff changeset
10375 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
10376
Dave Love <fx@gnu.org>
parents:
diff changeset
10377 So, using these variables @code{nndoc} is able to dissect a document
Dave Love <fx@gnu.org>
parents:
diff changeset
10378 file into a series of articles, each with a head and a body. However, a
Dave Love <fx@gnu.org>
parents:
diff changeset
10379 few more variables are needed since not all document types are all that
Dave Love <fx@gnu.org>
parents:
diff changeset
10380 news-like---variables needed to transform the head or the body into
Dave Love <fx@gnu.org>
parents:
diff changeset
10381 something that's palatable for Gnus:
Dave Love <fx@gnu.org>
parents:
diff changeset
10382
Dave Love <fx@gnu.org>
parents:
diff changeset
10383 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
10384 @item prepare-body-function
Dave Love <fx@gnu.org>
parents:
diff changeset
10385 If present, this function will be called when requesting an article. It
Dave Love <fx@gnu.org>
parents:
diff changeset
10386 will be called with point at the start of the body, and is useful if the
Dave Love <fx@gnu.org>
parents:
diff changeset
10387 document has encoded some parts of its contents.
Dave Love <fx@gnu.org>
parents:
diff changeset
10388
Dave Love <fx@gnu.org>
parents:
diff changeset
10389 @item article-transform-function
Dave Love <fx@gnu.org>
parents:
diff changeset
10390 If present, this function is called when requesting an article. It's
Dave Love <fx@gnu.org>
parents:
diff changeset
10391 meant to be used for more wide-ranging transformation of both head and
Dave Love <fx@gnu.org>
parents:
diff changeset
10392 body of the article.
Dave Love <fx@gnu.org>
parents:
diff changeset
10393
Dave Love <fx@gnu.org>
parents:
diff changeset
10394 @item generate-head-function
Dave Love <fx@gnu.org>
parents:
diff changeset
10395 If present, this function is called to generate a head that Gnus can
Dave Love <fx@gnu.org>
parents:
diff changeset
10396 understand. It is called with the article number as a parameter, and is
Dave Love <fx@gnu.org>
parents:
diff changeset
10397 expected to generate a nice head for the article in question. It is
Dave Love <fx@gnu.org>
parents:
diff changeset
10398 called when requesting the headers of all articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
10399
Dave Love <fx@gnu.org>
parents:
diff changeset
10400 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
10401
Dave Love <fx@gnu.org>
parents:
diff changeset
10402 Let's look at the most complicated example I can come up with---standard
Dave Love <fx@gnu.org>
parents:
diff changeset
10403 digests:
Dave Love <fx@gnu.org>
parents:
diff changeset
10404
Dave Love <fx@gnu.org>
parents:
diff changeset
10405 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
10406 (standard-digest
Dave Love <fx@gnu.org>
parents:
diff changeset
10407 (first-article . ,(concat "^" (make-string 70 ?-) "\n\n+"))
Dave Love <fx@gnu.org>
parents:
diff changeset
10408 (article-begin . ,(concat "\n\n" (make-string 30 ?-) "\n\n+"))
Dave Love <fx@gnu.org>
parents:
diff changeset
10409 (prepare-body-function . nndoc-unquote-dashes)
Dave Love <fx@gnu.org>
parents:
diff changeset
10410 (body-end-function . nndoc-digest-body-end)
Dave Love <fx@gnu.org>
parents:
diff changeset
10411 (head-end . "^ ?$")
Dave Love <fx@gnu.org>
parents:
diff changeset
10412 (body-begin . "^ ?\n")
Dave Love <fx@gnu.org>
parents:
diff changeset
10413 (file-end . "^End of .*digest.*[0-9].*\n\\*\\*\\|^End of.*Digest *$")
Dave Love <fx@gnu.org>
parents:
diff changeset
10414 (subtype digest guess))
Dave Love <fx@gnu.org>
parents:
diff changeset
10415 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
10416
Dave Love <fx@gnu.org>
parents:
diff changeset
10417 We see that all text before a 70-width line of dashes is ignored; all
Dave Love <fx@gnu.org>
parents:
diff changeset
10418 text after a line that starts with that @samp{^End of} is also ignored;
Dave Love <fx@gnu.org>
parents:
diff changeset
10419 each article begins with a 30-width line of dashes; the line separating
Dave Love <fx@gnu.org>
parents:
diff changeset
10420 the head from the body may contain a single space; and that the body is
Dave Love <fx@gnu.org>
parents:
diff changeset
10421 run through @code{nndoc-unquote-dashes} before being delivered.
Dave Love <fx@gnu.org>
parents:
diff changeset
10422
Dave Love <fx@gnu.org>
parents:
diff changeset
10423 To hook your own document definition into @code{nndoc}, use the
Dave Love <fx@gnu.org>
parents:
diff changeset
10424 @code{nndoc-add-type} function. It takes two parameters---the first is
Dave Love <fx@gnu.org>
parents:
diff changeset
10425 the definition itself and the second (optional) parameter says where in
Dave Love <fx@gnu.org>
parents:
diff changeset
10426 the document type definition alist to put this definition. The alist is
Dave Love <fx@gnu.org>
parents:
diff changeset
10427 traversed sequentially, and @code{nndoc-TYPE-type-p} is called for a given type @code{TYPE}. So @code{nndoc-mmdf-type-p} is called to see whether a document
Dave Love <fx@gnu.org>
parents:
diff changeset
10428 is of @code{mmdf} type, and so on. These type predicates should return
Dave Love <fx@gnu.org>
parents:
diff changeset
10429 @code{nil} if the document is not of the correct type; @code{t} if it is
Dave Love <fx@gnu.org>
parents:
diff changeset
10430 of the correct type; and a number if the document might be of the
Dave Love <fx@gnu.org>
parents:
diff changeset
10431 correct type. A high number means high probability; a low number means
Dave Love <fx@gnu.org>
parents:
diff changeset
10432 low probability with @samp{0} being the lowest valid number.
Dave Love <fx@gnu.org>
parents:
diff changeset
10433
Dave Love <fx@gnu.org>
parents:
diff changeset
10434
Dave Love <fx@gnu.org>
parents:
diff changeset
10435 @node SOUP
Dave Love <fx@gnu.org>
parents:
diff changeset
10436 @subsection SOUP
Dave Love <fx@gnu.org>
parents:
diff changeset
10437 @cindex SOUP
Dave Love <fx@gnu.org>
parents:
diff changeset
10438 @cindex offline
Dave Love <fx@gnu.org>
parents:
diff changeset
10439
Dave Love <fx@gnu.org>
parents:
diff changeset
10440 In the PC world people often talk about ``offline'' newsreaders. These
Dave Love <fx@gnu.org>
parents:
diff changeset
10441 are thingies that are combined reader/news transport monstrosities.
Dave Love <fx@gnu.org>
parents:
diff changeset
10442 With built-in modem programs. Yecchh!
Dave Love <fx@gnu.org>
parents:
diff changeset
10443
Dave Love <fx@gnu.org>
parents:
diff changeset
10444 Of course, us Unix Weenie types of human beans use things like
Dave Love <fx@gnu.org>
parents:
diff changeset
10445 @code{uucp} and, like, @code{nntpd} and set up proper news and mail
Dave Love <fx@gnu.org>
parents:
diff changeset
10446 transport things like Ghod intended. And then we just use normal
Dave Love <fx@gnu.org>
parents:
diff changeset
10447 newsreaders.
Dave Love <fx@gnu.org>
parents:
diff changeset
10448
Dave Love <fx@gnu.org>
parents:
diff changeset
10449 However, it can sometimes be convenient to do something a that's a bit
Dave Love <fx@gnu.org>
parents:
diff changeset
10450 easier on the brain if you have a very slow modem, and you're not really
Dave Love <fx@gnu.org>
parents:
diff changeset
10451 that interested in doing things properly.
Dave Love <fx@gnu.org>
parents:
diff changeset
10452
Dave Love <fx@gnu.org>
parents:
diff changeset
10453 A file format called @sc{soup} has been developed for transporting news
Dave Love <fx@gnu.org>
parents:
diff changeset
10454 and mail from servers to home machines and back again. It can be a bit
Dave Love <fx@gnu.org>
parents:
diff changeset
10455 fiddly.
Dave Love <fx@gnu.org>
parents:
diff changeset
10456
Dave Love <fx@gnu.org>
parents:
diff changeset
10457 First some terminology:
Dave Love <fx@gnu.org>
parents:
diff changeset
10458
Dave Love <fx@gnu.org>
parents:
diff changeset
10459 @table @dfn
Dave Love <fx@gnu.org>
parents:
diff changeset
10460
Dave Love <fx@gnu.org>
parents:
diff changeset
10461 @item server
Dave Love <fx@gnu.org>
parents:
diff changeset
10462 This is the machine that is connected to the outside world and where you
Dave Love <fx@gnu.org>
parents:
diff changeset
10463 get news and/or mail from.
Dave Love <fx@gnu.org>
parents:
diff changeset
10464
Dave Love <fx@gnu.org>
parents:
diff changeset
10465 @item home machine
Dave Love <fx@gnu.org>
parents:
diff changeset
10466 This is the machine that you want to do the actual reading and responding
Dave Love <fx@gnu.org>
parents:
diff changeset
10467 on. It is typically not connected to the rest of the world in any way.
Dave Love <fx@gnu.org>
parents:
diff changeset
10468
Dave Love <fx@gnu.org>
parents:
diff changeset
10469 @item packet
Dave Love <fx@gnu.org>
parents:
diff changeset
10470 Something that contains messages and/or commands. There are two kinds
Dave Love <fx@gnu.org>
parents:
diff changeset
10471 of packets:
Dave Love <fx@gnu.org>
parents:
diff changeset
10472
Dave Love <fx@gnu.org>
parents:
diff changeset
10473 @table @dfn
Dave Love <fx@gnu.org>
parents:
diff changeset
10474 @item message packets
Dave Love <fx@gnu.org>
parents:
diff changeset
10475 These are packets made at the server, and typically contain lots of
Dave Love <fx@gnu.org>
parents:
diff changeset
10476 messages for you to read. These are called @file{SoupoutX.tgz} by
Dave Love <fx@gnu.org>
parents:
diff changeset
10477 default, where @var{X} is a number.
Dave Love <fx@gnu.org>
parents:
diff changeset
10478
Dave Love <fx@gnu.org>
parents:
diff changeset
10479 @item response packets
Dave Love <fx@gnu.org>
parents:
diff changeset
10480 These are packets made at the home machine, and typically contains
Dave Love <fx@gnu.org>
parents:
diff changeset
10481 replies that you've written. These are called @file{SoupinX.tgz} by
Dave Love <fx@gnu.org>
parents:
diff changeset
10482 default, where @var{X} is a number.
Dave Love <fx@gnu.org>
parents:
diff changeset
10483
Dave Love <fx@gnu.org>
parents:
diff changeset
10484 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
10485
Dave Love <fx@gnu.org>
parents:
diff changeset
10486 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
10487
Dave Love <fx@gnu.org>
parents:
diff changeset
10488
Dave Love <fx@gnu.org>
parents:
diff changeset
10489 @enumerate
Dave Love <fx@gnu.org>
parents:
diff changeset
10490
Dave Love <fx@gnu.org>
parents:
diff changeset
10491 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
10492 You log in on the server and create a @sc{soup} packet. You can either
Dave Love <fx@gnu.org>
parents:
diff changeset
10493 use a dedicated @sc{soup} thingie (like the @code{awk} program), or you
Dave Love <fx@gnu.org>
parents:
diff changeset
10494 can use Gnus to create the packet with its @sc{soup} commands (@kbd{O
Dave Love <fx@gnu.org>
parents:
diff changeset
10495 s} and/or @kbd{G s b}; and then @kbd{G s p}) (@pxref{SOUP Commands}).
Dave Love <fx@gnu.org>
parents:
diff changeset
10496
Dave Love <fx@gnu.org>
parents:
diff changeset
10497 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
10498 You transfer the packet home. Rail, boat, car or modem will do fine.
Dave Love <fx@gnu.org>
parents:
diff changeset
10499
Dave Love <fx@gnu.org>
parents:
diff changeset
10500 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
10501 You put the packet in your home directory.
Dave Love <fx@gnu.org>
parents:
diff changeset
10502
Dave Love <fx@gnu.org>
parents:
diff changeset
10503 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
10504 You fire up Gnus on your home machine using the @code{nnsoup} backend as
Dave Love <fx@gnu.org>
parents:
diff changeset
10505 the native or secondary server.
Dave Love <fx@gnu.org>
parents:
diff changeset
10506
Dave Love <fx@gnu.org>
parents:
diff changeset
10507 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
10508 You read articles and mail and answer and followup to the things you
Dave Love <fx@gnu.org>
parents:
diff changeset
10509 want (@pxref{SOUP Replies}).
Dave Love <fx@gnu.org>
parents:
diff changeset
10510
Dave Love <fx@gnu.org>
parents:
diff changeset
10511 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
10512 You do the @kbd{G s r} command to pack these replies into a @sc{soup}
Dave Love <fx@gnu.org>
parents:
diff changeset
10513 packet.
Dave Love <fx@gnu.org>
parents:
diff changeset
10514
Dave Love <fx@gnu.org>
parents:
diff changeset
10515 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
10516 You transfer this packet to the server.
Dave Love <fx@gnu.org>
parents:
diff changeset
10517
Dave Love <fx@gnu.org>
parents:
diff changeset
10518 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
10519 You use Gnus to mail this packet out with the @kbd{G s s} command.
Dave Love <fx@gnu.org>
parents:
diff changeset
10520
Dave Love <fx@gnu.org>
parents:
diff changeset
10521 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
10522 You then repeat until you die.
Dave Love <fx@gnu.org>
parents:
diff changeset
10523
Dave Love <fx@gnu.org>
parents:
diff changeset
10524 @end enumerate
Dave Love <fx@gnu.org>
parents:
diff changeset
10525
Dave Love <fx@gnu.org>
parents:
diff changeset
10526 So you basically have a bipartite system---you use @code{nnsoup} for
Dave Love <fx@gnu.org>
parents:
diff changeset
10527 reading and Gnus for packing/sending these @sc{soup} packets.
Dave Love <fx@gnu.org>
parents:
diff changeset
10528
Dave Love <fx@gnu.org>
parents:
diff changeset
10529 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
10530 * SOUP Commands:: Commands for creating and sending @sc{soup} packets
Dave Love <fx@gnu.org>
parents:
diff changeset
10531 * SOUP Groups:: A backend for reading @sc{soup} packets.
Dave Love <fx@gnu.org>
parents:
diff changeset
10532 * SOUP Replies:: How to enable @code{nnsoup} to take over mail and news.
Dave Love <fx@gnu.org>
parents:
diff changeset
10533 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
10534
Dave Love <fx@gnu.org>
parents:
diff changeset
10535
Dave Love <fx@gnu.org>
parents:
diff changeset
10536 @node SOUP Commands
Dave Love <fx@gnu.org>
parents:
diff changeset
10537 @subsubsection SOUP Commands
Dave Love <fx@gnu.org>
parents:
diff changeset
10538
Dave Love <fx@gnu.org>
parents:
diff changeset
10539 These are commands for creating and manipulating @sc{soup} packets.
Dave Love <fx@gnu.org>
parents:
diff changeset
10540
Dave Love <fx@gnu.org>
parents:
diff changeset
10541 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
10542 @item G s b
Dave Love <fx@gnu.org>
parents:
diff changeset
10543 @kindex G s b (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
10544 @findex gnus-group-brew-soup
Dave Love <fx@gnu.org>
parents:
diff changeset
10545 Pack all unread articles in the current group
Dave Love <fx@gnu.org>
parents:
diff changeset
10546 (@code{gnus-group-brew-soup}). This command understands the
Dave Love <fx@gnu.org>
parents:
diff changeset
10547 process/prefix convention.
Dave Love <fx@gnu.org>
parents:
diff changeset
10548
Dave Love <fx@gnu.org>
parents:
diff changeset
10549 @item G s w
Dave Love <fx@gnu.org>
parents:
diff changeset
10550 @kindex G s w (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
10551 @findex gnus-soup-save-areas
Dave Love <fx@gnu.org>
parents:
diff changeset
10552 Save all @sc{soup} data files (@code{gnus-soup-save-areas}).
Dave Love <fx@gnu.org>
parents:
diff changeset
10553
Dave Love <fx@gnu.org>
parents:
diff changeset
10554 @item G s s
Dave Love <fx@gnu.org>
parents:
diff changeset
10555 @kindex G s s (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
10556 @findex gnus-soup-send-replies
Dave Love <fx@gnu.org>
parents:
diff changeset
10557 Send all replies from the replies packet
Dave Love <fx@gnu.org>
parents:
diff changeset
10558 (@code{gnus-soup-send-replies}).
Dave Love <fx@gnu.org>
parents:
diff changeset
10559
Dave Love <fx@gnu.org>
parents:
diff changeset
10560 @item G s p
Dave Love <fx@gnu.org>
parents:
diff changeset
10561 @kindex G s p (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
10562 @findex gnus-soup-pack-packet
Dave Love <fx@gnu.org>
parents:
diff changeset
10563 Pack all files into a @sc{soup} packet (@code{gnus-soup-pack-packet}).
Dave Love <fx@gnu.org>
parents:
diff changeset
10564
Dave Love <fx@gnu.org>
parents:
diff changeset
10565 @item G s r
Dave Love <fx@gnu.org>
parents:
diff changeset
10566 @kindex G s r (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
10567 @findex nnsoup-pack-replies
Dave Love <fx@gnu.org>
parents:
diff changeset
10568 Pack all replies into a replies packet (@code{nnsoup-pack-replies}).
Dave Love <fx@gnu.org>
parents:
diff changeset
10569
Dave Love <fx@gnu.org>
parents:
diff changeset
10570 @item O s
Dave Love <fx@gnu.org>
parents:
diff changeset
10571 @kindex O s (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
10572 @findex gnus-soup-add-article
Dave Love <fx@gnu.org>
parents:
diff changeset
10573 This summary-mode command adds the current article to a @sc{soup} packet
Dave Love <fx@gnu.org>
parents:
diff changeset
10574 (@code{gnus-soup-add-article}). It understands the process/prefix
Dave Love <fx@gnu.org>
parents:
diff changeset
10575 convention (@pxref{Process/Prefix}).
Dave Love <fx@gnu.org>
parents:
diff changeset
10576
Dave Love <fx@gnu.org>
parents:
diff changeset
10577 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
10578
Dave Love <fx@gnu.org>
parents:
diff changeset
10579
Dave Love <fx@gnu.org>
parents:
diff changeset
10580 There are a few variables to customize where Gnus will put all these
Dave Love <fx@gnu.org>
parents:
diff changeset
10581 thingies:
Dave Love <fx@gnu.org>
parents:
diff changeset
10582
Dave Love <fx@gnu.org>
parents:
diff changeset
10583 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
10584
Dave Love <fx@gnu.org>
parents:
diff changeset
10585 @item gnus-soup-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
10586 @vindex gnus-soup-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
10587 Directory where Gnus will save intermediate files while composing
Dave Love <fx@gnu.org>
parents:
diff changeset
10588 @sc{soup} packets. The default is @file{~/SoupBrew/}.
Dave Love <fx@gnu.org>
parents:
diff changeset
10589
Dave Love <fx@gnu.org>
parents:
diff changeset
10590 @item gnus-soup-replies-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
10591 @vindex gnus-soup-replies-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
10592 This is what Gnus will use as a temporary directory while sending our
Dave Love <fx@gnu.org>
parents:
diff changeset
10593 reply packets. @file{~/SoupBrew/SoupReplies/} is the default.
Dave Love <fx@gnu.org>
parents:
diff changeset
10594
Dave Love <fx@gnu.org>
parents:
diff changeset
10595 @item gnus-soup-prefix-file
Dave Love <fx@gnu.org>
parents:
diff changeset
10596 @vindex gnus-soup-prefix-file
Dave Love <fx@gnu.org>
parents:
diff changeset
10597 Name of the file where Gnus stores the last used prefix. The default is
Dave Love <fx@gnu.org>
parents:
diff changeset
10598 @samp{gnus-prefix}.
Dave Love <fx@gnu.org>
parents:
diff changeset
10599
Dave Love <fx@gnu.org>
parents:
diff changeset
10600 @item gnus-soup-packer
Dave Love <fx@gnu.org>
parents:
diff changeset
10601 @vindex gnus-soup-packer
Dave Love <fx@gnu.org>
parents:
diff changeset
10602 A format string command for packing a @sc{soup} packet. The default is
Dave Love <fx@gnu.org>
parents:
diff changeset
10603 @samp{tar cf - %s | gzip > $HOME/Soupout%d.tgz}.
Dave Love <fx@gnu.org>
parents:
diff changeset
10604
Dave Love <fx@gnu.org>
parents:
diff changeset
10605 @item gnus-soup-unpacker
Dave Love <fx@gnu.org>
parents:
diff changeset
10606 @vindex gnus-soup-unpacker
Dave Love <fx@gnu.org>
parents:
diff changeset
10607 Format string command for unpacking a @sc{soup} packet. The default is
Dave Love <fx@gnu.org>
parents:
diff changeset
10608 @samp{gunzip -c %s | tar xvf -}.
Dave Love <fx@gnu.org>
parents:
diff changeset
10609
Dave Love <fx@gnu.org>
parents:
diff changeset
10610 @item gnus-soup-packet-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
10611 @vindex gnus-soup-packet-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
10612 Where Gnus will look for reply packets. The default is @file{~/}.
Dave Love <fx@gnu.org>
parents:
diff changeset
10613
Dave Love <fx@gnu.org>
parents:
diff changeset
10614 @item gnus-soup-packet-regexp
Dave Love <fx@gnu.org>
parents:
diff changeset
10615 @vindex gnus-soup-packet-regexp
Dave Love <fx@gnu.org>
parents:
diff changeset
10616 Regular expression matching @sc{soup} reply packets in
Dave Love <fx@gnu.org>
parents:
diff changeset
10617 @code{gnus-soup-packet-directory}.
Dave Love <fx@gnu.org>
parents:
diff changeset
10618
Dave Love <fx@gnu.org>
parents:
diff changeset
10619 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
10620
Dave Love <fx@gnu.org>
parents:
diff changeset
10621
Dave Love <fx@gnu.org>
parents:
diff changeset
10622 @node SOUP Groups
Dave Love <fx@gnu.org>
parents:
diff changeset
10623 @subsubsection @sc{soup} Groups
Dave Love <fx@gnu.org>
parents:
diff changeset
10624 @cindex nnsoup
Dave Love <fx@gnu.org>
parents:
diff changeset
10625
Dave Love <fx@gnu.org>
parents:
diff changeset
10626 @code{nnsoup} is the backend for reading @sc{soup} packets. It will
Dave Love <fx@gnu.org>
parents:
diff changeset
10627 read incoming packets, unpack them, and put them in a directory where
Dave Love <fx@gnu.org>
parents:
diff changeset
10628 you can read them at leisure.
Dave Love <fx@gnu.org>
parents:
diff changeset
10629
Dave Love <fx@gnu.org>
parents:
diff changeset
10630 These are the variables you can use to customize its behavior:
Dave Love <fx@gnu.org>
parents:
diff changeset
10631
Dave Love <fx@gnu.org>
parents:
diff changeset
10632 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
10633
Dave Love <fx@gnu.org>
parents:
diff changeset
10634 @item nnsoup-tmp-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
10635 @vindex nnsoup-tmp-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
10636 When @code{nnsoup} unpacks a @sc{soup} packet, it does it in this
Dave Love <fx@gnu.org>
parents:
diff changeset
10637 directory. (@file{/tmp/} by default.)
Dave Love <fx@gnu.org>
parents:
diff changeset
10638
Dave Love <fx@gnu.org>
parents:
diff changeset
10639 @item nnsoup-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
10640 @vindex nnsoup-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
10641 @code{nnsoup} then moves each message and index file to this directory.
Dave Love <fx@gnu.org>
parents:
diff changeset
10642 The default is @file{~/SOUP/}.
Dave Love <fx@gnu.org>
parents:
diff changeset
10643
Dave Love <fx@gnu.org>
parents:
diff changeset
10644 @item nnsoup-replies-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
10645 @vindex nnsoup-replies-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
10646 All replies will be stored in this directory before being packed into a
Dave Love <fx@gnu.org>
parents:
diff changeset
10647 reply packet. The default is @file{~/SOUP/replies/"}.
Dave Love <fx@gnu.org>
parents:
diff changeset
10648
Dave Love <fx@gnu.org>
parents:
diff changeset
10649 @item nnsoup-replies-format-type
Dave Love <fx@gnu.org>
parents:
diff changeset
10650 @vindex nnsoup-replies-format-type
Dave Love <fx@gnu.org>
parents:
diff changeset
10651 The @sc{soup} format of the replies packets. The default is @samp{?n}
Dave Love <fx@gnu.org>
parents:
diff changeset
10652 (rnews), and I don't think you should touch that variable. I probably
Dave Love <fx@gnu.org>
parents:
diff changeset
10653 shouldn't even have documented it. Drats! Too late!
Dave Love <fx@gnu.org>
parents:
diff changeset
10654
Dave Love <fx@gnu.org>
parents:
diff changeset
10655 @item nnsoup-replies-index-type
Dave Love <fx@gnu.org>
parents:
diff changeset
10656 @vindex nnsoup-replies-index-type
Dave Love <fx@gnu.org>
parents:
diff changeset
10657 The index type of the replies packet. The default is @samp{?n}, which
Dave Love <fx@gnu.org>
parents:
diff changeset
10658 means ``none''. Don't fiddle with this one either!
Dave Love <fx@gnu.org>
parents:
diff changeset
10659
Dave Love <fx@gnu.org>
parents:
diff changeset
10660 @item nnsoup-active-file
Dave Love <fx@gnu.org>
parents:
diff changeset
10661 @vindex nnsoup-active-file
Dave Love <fx@gnu.org>
parents:
diff changeset
10662 Where @code{nnsoup} stores lots of information. This is not an ``active
Dave Love <fx@gnu.org>
parents:
diff changeset
10663 file'' in the @code{nntp} sense; it's an Emacs Lisp file. If you lose
Dave Love <fx@gnu.org>
parents:
diff changeset
10664 this file or mess it up in any way, you're dead. The default is
Dave Love <fx@gnu.org>
parents:
diff changeset
10665 @file{~/SOUP/active}.
Dave Love <fx@gnu.org>
parents:
diff changeset
10666
Dave Love <fx@gnu.org>
parents:
diff changeset
10667 @item nnsoup-packer
Dave Love <fx@gnu.org>
parents:
diff changeset
10668 @vindex nnsoup-packer
Dave Love <fx@gnu.org>
parents:
diff changeset
10669 Format string command for packing a reply @sc{soup} packet. The default
Dave Love <fx@gnu.org>
parents:
diff changeset
10670 is @samp{tar cf - %s | gzip > $HOME/Soupin%d.tgz}.
Dave Love <fx@gnu.org>
parents:
diff changeset
10671
Dave Love <fx@gnu.org>
parents:
diff changeset
10672 @item nnsoup-unpacker
Dave Love <fx@gnu.org>
parents:
diff changeset
10673 @vindex nnsoup-unpacker
Dave Love <fx@gnu.org>
parents:
diff changeset
10674 Format string command for unpacking incoming @sc{soup} packets. The
Dave Love <fx@gnu.org>
parents:
diff changeset
10675 default is @samp{gunzip -c %s | tar xvf -}.
Dave Love <fx@gnu.org>
parents:
diff changeset
10676
Dave Love <fx@gnu.org>
parents:
diff changeset
10677 @item nnsoup-packet-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
10678 @vindex nnsoup-packet-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
10679 Where @code{nnsoup} will look for incoming packets. The default is
Dave Love <fx@gnu.org>
parents:
diff changeset
10680 @file{~/}.
Dave Love <fx@gnu.org>
parents:
diff changeset
10681
Dave Love <fx@gnu.org>
parents:
diff changeset
10682 @item nnsoup-packet-regexp
Dave Love <fx@gnu.org>
parents:
diff changeset
10683 @vindex nnsoup-packet-regexp
Dave Love <fx@gnu.org>
parents:
diff changeset
10684 Regular expression matching incoming @sc{soup} packets. The default is
Dave Love <fx@gnu.org>
parents:
diff changeset
10685 @samp{Soupout}.
Dave Love <fx@gnu.org>
parents:
diff changeset
10686
Dave Love <fx@gnu.org>
parents:
diff changeset
10687 @item nnsoup-always-save
Dave Love <fx@gnu.org>
parents:
diff changeset
10688 @vindex nnsoup-always-save
Dave Love <fx@gnu.org>
parents:
diff changeset
10689 If non-@code{nil}, save the replies buffer after each posted message.
Dave Love <fx@gnu.org>
parents:
diff changeset
10690
Dave Love <fx@gnu.org>
parents:
diff changeset
10691 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
10692
Dave Love <fx@gnu.org>
parents:
diff changeset
10693
Dave Love <fx@gnu.org>
parents:
diff changeset
10694 @node SOUP Replies
Dave Love <fx@gnu.org>
parents:
diff changeset
10695 @subsubsection SOUP Replies
Dave Love <fx@gnu.org>
parents:
diff changeset
10696
Dave Love <fx@gnu.org>
parents:
diff changeset
10697 Just using @code{nnsoup} won't mean that your postings and mailings end
Dave Love <fx@gnu.org>
parents:
diff changeset
10698 up in @sc{soup} reply packets automagically. You have to work a bit
Dave Love <fx@gnu.org>
parents:
diff changeset
10699 more for that to happen.
Dave Love <fx@gnu.org>
parents:
diff changeset
10700
Dave Love <fx@gnu.org>
parents:
diff changeset
10701 @findex nnsoup-set-variables
Dave Love <fx@gnu.org>
parents:
diff changeset
10702 The @code{nnsoup-set-variables} command will set the appropriate
Dave Love <fx@gnu.org>
parents:
diff changeset
10703 variables to ensure that all your followups and replies end up in the
Dave Love <fx@gnu.org>
parents:
diff changeset
10704 @sc{soup} system.
Dave Love <fx@gnu.org>
parents:
diff changeset
10705
Dave Love <fx@gnu.org>
parents:
diff changeset
10706 In specific, this is what it does:
Dave Love <fx@gnu.org>
parents:
diff changeset
10707
Dave Love <fx@gnu.org>
parents:
diff changeset
10708 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
10709 (setq message-send-news-function 'nnsoup-request-post)
Dave Love <fx@gnu.org>
parents:
diff changeset
10710 (setq message-send-mail-function 'nnsoup-request-mail)
Dave Love <fx@gnu.org>
parents:
diff changeset
10711 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
10712
Dave Love <fx@gnu.org>
parents:
diff changeset
10713 And that's it, really. If you only want news to go into the @sc{soup}
Dave Love <fx@gnu.org>
parents:
diff changeset
10714 system you just use the first line. If you only want mail to be
Dave Love <fx@gnu.org>
parents:
diff changeset
10715 @sc{soup}ed you use the second.
Dave Love <fx@gnu.org>
parents:
diff changeset
10716
Dave Love <fx@gnu.org>
parents:
diff changeset
10717
Dave Love <fx@gnu.org>
parents:
diff changeset
10718 @node Web Searches
Dave Love <fx@gnu.org>
parents:
diff changeset
10719 @subsection Web Searches
Dave Love <fx@gnu.org>
parents:
diff changeset
10720 @cindex nnweb
Dave Love <fx@gnu.org>
parents:
diff changeset
10721 @cindex DejaNews
Dave Love <fx@gnu.org>
parents:
diff changeset
10722 @cindex Alta Vista
Dave Love <fx@gnu.org>
parents:
diff changeset
10723 @cindex InReference
Dave Love <fx@gnu.org>
parents:
diff changeset
10724 @cindex Usenet searches
Dave Love <fx@gnu.org>
parents:
diff changeset
10725 @cindex searching the Usenet
Dave Love <fx@gnu.org>
parents:
diff changeset
10726
Dave Love <fx@gnu.org>
parents:
diff changeset
10727 It's, like, too neat to search the Usenet for articles that match a
Dave Love <fx@gnu.org>
parents:
diff changeset
10728 string, but it, like, totally @emph{sucks}, like, totally, to use one of
Dave Love <fx@gnu.org>
parents:
diff changeset
10729 those, like, Web browsers, and you, like, have to, rilly, like, look at
Dave Love <fx@gnu.org>
parents:
diff changeset
10730 the commercials, so, like, with Gnus you can do @emph{rad}, rilly,
Dave Love <fx@gnu.org>
parents:
diff changeset
10731 searches without having to use a browser.
Dave Love <fx@gnu.org>
parents:
diff changeset
10732
Dave Love <fx@gnu.org>
parents:
diff changeset
10733 The @code{nnweb} backend allows an easy interface to the mighty search
Dave Love <fx@gnu.org>
parents:
diff changeset
10734 engine. You create an @code{nnweb} group, enter a search pattern, and
Dave Love <fx@gnu.org>
parents:
diff changeset
10735 then enter the group and read the articles like you would any normal
Dave Love <fx@gnu.org>
parents:
diff changeset
10736 group. The @kbd{G w} command in the group buffer (@pxref{Foreign
Dave Love <fx@gnu.org>
parents:
diff changeset
10737 Groups}) will do this in an easy-to-use fashion.
Dave Love <fx@gnu.org>
parents:
diff changeset
10738
Dave Love <fx@gnu.org>
parents:
diff changeset
10739 @code{nnweb} groups don't really lend themselves to being solid
Dave Love <fx@gnu.org>
parents:
diff changeset
10740 groups---they have a very fleeting idea of article numbers. In fact,
Dave Love <fx@gnu.org>
parents:
diff changeset
10741 each time you enter an @code{nnweb} group (not even changing the search
Dave Love <fx@gnu.org>
parents:
diff changeset
10742 pattern), you are likely to get the articles ordered in a different
Dave Love <fx@gnu.org>
parents:
diff changeset
10743 manner. Not even using duplicate suppression (@pxref{Duplicate
Dave Love <fx@gnu.org>
parents:
diff changeset
10744 Suppression}) will help, since @code{nnweb} doesn't even know the
Dave Love <fx@gnu.org>
parents:
diff changeset
10745 @code{Message-ID} of the articles before reading them using some search
Dave Love <fx@gnu.org>
parents:
diff changeset
10746 engines (DejaNews, for instance). The only possible way to keep track
Dave Love <fx@gnu.org>
parents:
diff changeset
10747 of which articles you've read is by scoring on the @code{Date}
Dave Love <fx@gnu.org>
parents:
diff changeset
10748 header---mark all articles posted before the last date you read the
Dave Love <fx@gnu.org>
parents:
diff changeset
10749 group as read.
Dave Love <fx@gnu.org>
parents:
diff changeset
10750
Dave Love <fx@gnu.org>
parents:
diff changeset
10751 If the search engine changes its output substantially, @code{nnweb}
Dave Love <fx@gnu.org>
parents:
diff changeset
10752 won't be able to parse it and will fail. One could hardly fault the Web
Dave Love <fx@gnu.org>
parents:
diff changeset
10753 providers if they were to do this---their @emph{raison d'être} is to
Dave Love <fx@gnu.org>
parents:
diff changeset
10754 make money off of advertisements, not to provide services to the
Dave Love <fx@gnu.org>
parents:
diff changeset
10755 community. Since @code{nnweb} washes the ads off all the articles, one
Dave Love <fx@gnu.org>
parents:
diff changeset
10756 might think that the providers might be somewhat miffed. We'll see.
Dave Love <fx@gnu.org>
parents:
diff changeset
10757
Dave Love <fx@gnu.org>
parents:
diff changeset
10758 You must have the @code{url} and @code{w3} package installed to be able
Dave Love <fx@gnu.org>
parents:
diff changeset
10759 to use @code{nnweb}.
Dave Love <fx@gnu.org>
parents:
diff changeset
10760
Dave Love <fx@gnu.org>
parents:
diff changeset
10761 Virtual server variables:
Dave Love <fx@gnu.org>
parents:
diff changeset
10762
Dave Love <fx@gnu.org>
parents:
diff changeset
10763 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
10764 @item nnweb-type
Dave Love <fx@gnu.org>
parents:
diff changeset
10765 @vindex nnweb-type
Dave Love <fx@gnu.org>
parents:
diff changeset
10766 What search engine type is being used. The currently supported types
Dave Love <fx@gnu.org>
parents:
diff changeset
10767 are @code{dejanews}, @code{dejanewsold}, @code{altavista} and
Dave Love <fx@gnu.org>
parents:
diff changeset
10768 @code{reference}.
Dave Love <fx@gnu.org>
parents:
diff changeset
10769
Dave Love <fx@gnu.org>
parents:
diff changeset
10770 @item nnweb-search
Dave Love <fx@gnu.org>
parents:
diff changeset
10771 @vindex nnweb-search
Dave Love <fx@gnu.org>
parents:
diff changeset
10772 The search string to feed to the search engine.
Dave Love <fx@gnu.org>
parents:
diff changeset
10773
Dave Love <fx@gnu.org>
parents:
diff changeset
10774 @item nnweb-max-hits
Dave Love <fx@gnu.org>
parents:
diff changeset
10775 @vindex nnweb-max-hits
Dave Love <fx@gnu.org>
parents:
diff changeset
10776 Advisory maximum number of hits per search to display. The default is
Dave Love <fx@gnu.org>
parents:
diff changeset
10777 100.
Dave Love <fx@gnu.org>
parents:
diff changeset
10778
Dave Love <fx@gnu.org>
parents:
diff changeset
10779 @item nnweb-type-definition
Dave Love <fx@gnu.org>
parents:
diff changeset
10780 @vindex nnweb-type-definition
Dave Love <fx@gnu.org>
parents:
diff changeset
10781 Type-to-definition alist. This alist says what @code{nnweb} should do
Dave Love <fx@gnu.org>
parents:
diff changeset
10782 with the various search engine types. The following elements must be
Dave Love <fx@gnu.org>
parents:
diff changeset
10783 present:
Dave Love <fx@gnu.org>
parents:
diff changeset
10784
Dave Love <fx@gnu.org>
parents:
diff changeset
10785 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
10786 @item article
Dave Love <fx@gnu.org>
parents:
diff changeset
10787 Function to decode the article and provide something that Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
10788 understands.
Dave Love <fx@gnu.org>
parents:
diff changeset
10789
Dave Love <fx@gnu.org>
parents:
diff changeset
10790 @item map
Dave Love <fx@gnu.org>
parents:
diff changeset
10791 Function to create an article number to message header and URL alist.
Dave Love <fx@gnu.org>
parents:
diff changeset
10792
Dave Love <fx@gnu.org>
parents:
diff changeset
10793 @item search
Dave Love <fx@gnu.org>
parents:
diff changeset
10794 Function to send the search string to the search engine.
Dave Love <fx@gnu.org>
parents:
diff changeset
10795
Dave Love <fx@gnu.org>
parents:
diff changeset
10796 @item address
Dave Love <fx@gnu.org>
parents:
diff changeset
10797 The address the aforementioned function should send the search string
Dave Love <fx@gnu.org>
parents:
diff changeset
10798 to.
Dave Love <fx@gnu.org>
parents:
diff changeset
10799
Dave Love <fx@gnu.org>
parents:
diff changeset
10800 @item id
Dave Love <fx@gnu.org>
parents:
diff changeset
10801 Format string URL to fetch an article by @code{Message-ID}.
Dave Love <fx@gnu.org>
parents:
diff changeset
10802 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
10803
Dave Love <fx@gnu.org>
parents:
diff changeset
10804 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
10805
Dave Love <fx@gnu.org>
parents:
diff changeset
10806
Dave Love <fx@gnu.org>
parents:
diff changeset
10807
Dave Love <fx@gnu.org>
parents:
diff changeset
10808 @node Mail-To-News Gateways
Dave Love <fx@gnu.org>
parents:
diff changeset
10809 @subsection Mail-To-News Gateways
Dave Love <fx@gnu.org>
parents:
diff changeset
10810 @cindex mail-to-news gateways
Dave Love <fx@gnu.org>
parents:
diff changeset
10811 @cindex gateways
Dave Love <fx@gnu.org>
parents:
diff changeset
10812
Dave Love <fx@gnu.org>
parents:
diff changeset
10813 If your local @code{nntp} server doesn't allow posting, for some reason
Dave Love <fx@gnu.org>
parents:
diff changeset
10814 or other, you can post using one of the numerous mail-to-news gateways.
Dave Love <fx@gnu.org>
parents:
diff changeset
10815 The @code{nngateway} backend provides the interface.
Dave Love <fx@gnu.org>
parents:
diff changeset
10816
Dave Love <fx@gnu.org>
parents:
diff changeset
10817 Note that you can't read anything from this backend---it can only be
Dave Love <fx@gnu.org>
parents:
diff changeset
10818 used to post with.
Dave Love <fx@gnu.org>
parents:
diff changeset
10819
Dave Love <fx@gnu.org>
parents:
diff changeset
10820 Server variables:
Dave Love <fx@gnu.org>
parents:
diff changeset
10821
Dave Love <fx@gnu.org>
parents:
diff changeset
10822 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
10823 @item nngateway-address
Dave Love <fx@gnu.org>
parents:
diff changeset
10824 @vindex nngateway-address
Dave Love <fx@gnu.org>
parents:
diff changeset
10825 This is the address of the mail-to-news gateway.
Dave Love <fx@gnu.org>
parents:
diff changeset
10826
Dave Love <fx@gnu.org>
parents:
diff changeset
10827 @item nngateway-header-transformation
Dave Love <fx@gnu.org>
parents:
diff changeset
10828 @vindex nngateway-header-transformation
Dave Love <fx@gnu.org>
parents:
diff changeset
10829 News headers often have to be transformed in some odd way or other
Dave Love <fx@gnu.org>
parents:
diff changeset
10830 for the mail-to-news gateway to accept it. This variable says what
Dave Love <fx@gnu.org>
parents:
diff changeset
10831 transformation should be called, and defaults to
Dave Love <fx@gnu.org>
parents:
diff changeset
10832 @code{nngateway-simple-header-transformation}. The function is called
Dave Love <fx@gnu.org>
parents:
diff changeset
10833 narrowed to the headers to be transformed and with one parameter---the
Dave Love <fx@gnu.org>
parents:
diff changeset
10834 gateway address.
Dave Love <fx@gnu.org>
parents:
diff changeset
10835
Dave Love <fx@gnu.org>
parents:
diff changeset
10836 This default function just inserts a new @code{To} header based on the
Dave Love <fx@gnu.org>
parents:
diff changeset
10837 @code{Newsgroups} header and the gateway address.
Dave Love <fx@gnu.org>
parents:
diff changeset
10838 For instance, an article with this @code{Newsgroups} header:
Dave Love <fx@gnu.org>
parents:
diff changeset
10839
Dave Love <fx@gnu.org>
parents:
diff changeset
10840 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
10841 Newsgroups: alt.religion.emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
10842 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
10843
Dave Love <fx@gnu.org>
parents:
diff changeset
10844 will get this @code{From} header inserted:
Dave Love <fx@gnu.org>
parents:
diff changeset
10845
Dave Love <fx@gnu.org>
parents:
diff changeset
10846 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
10847 To: alt-religion-emacs@@GATEWAY
Dave Love <fx@gnu.org>
parents:
diff changeset
10848 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
10849
Dave Love <fx@gnu.org>
parents:
diff changeset
10850 The following pre-defined functions exist:
Dave Love <fx@gnu.org>
parents:
diff changeset
10851
Dave Love <fx@gnu.org>
parents:
diff changeset
10852 @findex nngateway-simple-header-transformation
Dave Love <fx@gnu.org>
parents:
diff changeset
10853 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
10854
Dave Love <fx@gnu.org>
parents:
diff changeset
10855 @item nngateway-simple-header-transformation
Dave Love <fx@gnu.org>
parents:
diff changeset
10856 Creates a @code{To} header that looks like
Dave Love <fx@gnu.org>
parents:
diff changeset
10857 @var{newsgroup}@@@code{nngateway-address}.
Dave Love <fx@gnu.org>
parents:
diff changeset
10858
Dave Love <fx@gnu.org>
parents:
diff changeset
10859 @findex nngateway-mail2news-header-transformation
Dave Love <fx@gnu.org>
parents:
diff changeset
10860
Dave Love <fx@gnu.org>
parents:
diff changeset
10861 @item nngateway-mail2news-header-transformation
Dave Love <fx@gnu.org>
parents:
diff changeset
10862 Creates a @code{To} header that looks like
Dave Love <fx@gnu.org>
parents:
diff changeset
10863 @code{nngateway-address}.
Dave Love <fx@gnu.org>
parents:
diff changeset
10864
Dave Love <fx@gnu.org>
parents:
diff changeset
10865 Here's an example:
Dave Love <fx@gnu.org>
parents:
diff changeset
10866
Dave Love <fx@gnu.org>
parents:
diff changeset
10867 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
10868 (setq gnus-post-method
Dave Love <fx@gnu.org>
parents:
diff changeset
10869 '(nngateway "mail2news@@replay.com"
Dave Love <fx@gnu.org>
parents:
diff changeset
10870 (nngateway-header-transformation
Dave Love <fx@gnu.org>
parents:
diff changeset
10871 nngateway-mail2news-header-transformation)))
Dave Love <fx@gnu.org>
parents:
diff changeset
10872 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
10873
Dave Love <fx@gnu.org>
parents:
diff changeset
10874 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
10875
Dave Love <fx@gnu.org>
parents:
diff changeset
10876
Dave Love <fx@gnu.org>
parents:
diff changeset
10877 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
10878
Dave Love <fx@gnu.org>
parents:
diff changeset
10879 So, to use this, simply say something like:
Dave Love <fx@gnu.org>
parents:
diff changeset
10880
Dave Love <fx@gnu.org>
parents:
diff changeset
10881 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
10882 (setq gnus-post-method '(nngateway "GATEWAY.ADDRESS"))
Dave Love <fx@gnu.org>
parents:
diff changeset
10883 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
10884
Dave Love <fx@gnu.org>
parents:
diff changeset
10885
Dave Love <fx@gnu.org>
parents:
diff changeset
10886 @node Combined Groups
Dave Love <fx@gnu.org>
parents:
diff changeset
10887 @section Combined Groups
Dave Love <fx@gnu.org>
parents:
diff changeset
10888
Dave Love <fx@gnu.org>
parents:
diff changeset
10889 Gnus allows combining a mixture of all the other group types into bigger
Dave Love <fx@gnu.org>
parents:
diff changeset
10890 groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
10891
Dave Love <fx@gnu.org>
parents:
diff changeset
10892 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
10893 * Virtual Groups:: Combining articles from many groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
10894 * Kibozed Groups:: Looking through parts of the newsfeed for articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
10895 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
10896
Dave Love <fx@gnu.org>
parents:
diff changeset
10897
Dave Love <fx@gnu.org>
parents:
diff changeset
10898 @node Virtual Groups
Dave Love <fx@gnu.org>
parents:
diff changeset
10899 @subsection Virtual Groups
Dave Love <fx@gnu.org>
parents:
diff changeset
10900 @cindex nnvirtual
Dave Love <fx@gnu.org>
parents:
diff changeset
10901 @cindex virtual groups
Dave Love <fx@gnu.org>
parents:
diff changeset
10902 @cindex merging groups
Dave Love <fx@gnu.org>
parents:
diff changeset
10903
Dave Love <fx@gnu.org>
parents:
diff changeset
10904 An @dfn{nnvirtual group} is really nothing more than a collection of
Dave Love <fx@gnu.org>
parents:
diff changeset
10905 other groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
10906
Dave Love <fx@gnu.org>
parents:
diff changeset
10907 For instance, if you are tired of reading many small groups, you can
Dave Love <fx@gnu.org>
parents:
diff changeset
10908 put them all in one big group, and then grow tired of reading one
Dave Love <fx@gnu.org>
parents:
diff changeset
10909 big, unwieldy group. The joys of computing!
Dave Love <fx@gnu.org>
parents:
diff changeset
10910
Dave Love <fx@gnu.org>
parents:
diff changeset
10911 You specify @code{nnvirtual} as the method. The address should be a
Dave Love <fx@gnu.org>
parents:
diff changeset
10912 regexp to match component groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
10913
Dave Love <fx@gnu.org>
parents:
diff changeset
10914 All marks in the virtual group will stick to the articles in the
Dave Love <fx@gnu.org>
parents:
diff changeset
10915 component groups. So if you tick an article in a virtual group, the
Dave Love <fx@gnu.org>
parents:
diff changeset
10916 article will also be ticked in the component group from whence it came.
Dave Love <fx@gnu.org>
parents:
diff changeset
10917 (And vice versa---marks from the component groups will also be shown in
Dave Love <fx@gnu.org>
parents:
diff changeset
10918 the virtual group.)
Dave Love <fx@gnu.org>
parents:
diff changeset
10919
Dave Love <fx@gnu.org>
parents:
diff changeset
10920 Here's an example @code{nnvirtual} method that collects all Andrea Dworkin
Dave Love <fx@gnu.org>
parents:
diff changeset
10921 newsgroups into one, big, happy newsgroup:
Dave Love <fx@gnu.org>
parents:
diff changeset
10922
Dave Love <fx@gnu.org>
parents:
diff changeset
10923 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
10924 (nnvirtual "^alt\\.fan\\.andrea-dworkin$\\|^rec\\.dworkin.*")
Dave Love <fx@gnu.org>
parents:
diff changeset
10925 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
10926
Dave Love <fx@gnu.org>
parents:
diff changeset
10927 The component groups can be native or foreign; everything should work
Dave Love <fx@gnu.org>
parents:
diff changeset
10928 smoothly, but if your computer explodes, it was probably my fault.
Dave Love <fx@gnu.org>
parents:
diff changeset
10929
Dave Love <fx@gnu.org>
parents:
diff changeset
10930 Collecting the same group from several servers might actually be a good
Dave Love <fx@gnu.org>
parents:
diff changeset
10931 idea if users have set the Distribution header to limit distribution.
Dave Love <fx@gnu.org>
parents:
diff changeset
10932 If you would like to read @samp{soc.motss} both from a server in Japan
Dave Love <fx@gnu.org>
parents:
diff changeset
10933 and a server in Norway, you could use the following as the group regexp:
Dave Love <fx@gnu.org>
parents:
diff changeset
10934
Dave Love <fx@gnu.org>
parents:
diff changeset
10935 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
10936 "^nntp\\+server\\.jp:soc\\.motss$\\|^nntp\\+server\\.no:soc\\.motss$"
Dave Love <fx@gnu.org>
parents:
diff changeset
10937 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
10938
Dave Love <fx@gnu.org>
parents:
diff changeset
10939 (Remember, though, that if you're creating the group with @kbd{G m}, you
Dave Love <fx@gnu.org>
parents:
diff changeset
10940 shouldn't double the backslashes, and you should leave off the quote
Dave Love <fx@gnu.org>
parents:
diff changeset
10941 characters at the beginning and the end of the string.)
Dave Love <fx@gnu.org>
parents:
diff changeset
10942
Dave Love <fx@gnu.org>
parents:
diff changeset
10943 This should work kinda smoothly---all articles from both groups should
Dave Love <fx@gnu.org>
parents:
diff changeset
10944 end up in this one, and there should be no duplicates. Threading (and
Dave Love <fx@gnu.org>
parents:
diff changeset
10945 the rest) will still work as usual, but there might be problems with the
Dave Love <fx@gnu.org>
parents:
diff changeset
10946 sequence of articles. Sorting on date might be an option here
Dave Love <fx@gnu.org>
parents:
diff changeset
10947 (@pxref{Selecting a Group}).
Dave Love <fx@gnu.org>
parents:
diff changeset
10948
Dave Love <fx@gnu.org>
parents:
diff changeset
10949 One limitation, however---all groups included in a virtual
Dave Love <fx@gnu.org>
parents:
diff changeset
10950 group have to be alive (i.e., subscribed or unsubscribed). Killed or
Dave Love <fx@gnu.org>
parents:
diff changeset
10951 zombie groups can't be component groups for @code{nnvirtual} groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
10952
Dave Love <fx@gnu.org>
parents:
diff changeset
10953 @vindex nnvirtual-always-rescan
Dave Love <fx@gnu.org>
parents:
diff changeset
10954 If the @code{nnvirtual-always-rescan} is non-@code{nil},
Dave Love <fx@gnu.org>
parents:
diff changeset
10955 @code{nnvirtual} will always scan groups for unread articles when
Dave Love <fx@gnu.org>
parents:
diff changeset
10956 entering a virtual group. If this variable is @code{nil} (which is the
Dave Love <fx@gnu.org>
parents:
diff changeset
10957 default) and you read articles in a component group after the virtual
Dave Love <fx@gnu.org>
parents:
diff changeset
10958 group has been activated, the read articles from the component group
Dave Love <fx@gnu.org>
parents:
diff changeset
10959 will show up when you enter the virtual group. You'll also see this
Dave Love <fx@gnu.org>
parents:
diff changeset
10960 effect if you have two virtual groups that have a component group in
Dave Love <fx@gnu.org>
parents:
diff changeset
10961 common. If that's the case, you should set this variable to @code{t}.
Dave Love <fx@gnu.org>
parents:
diff changeset
10962 Or you can just tap @code{M-g} on the virtual group every time before
Dave Love <fx@gnu.org>
parents:
diff changeset
10963 you enter it---it'll have much the same effect.
Dave Love <fx@gnu.org>
parents:
diff changeset
10964
Dave Love <fx@gnu.org>
parents:
diff changeset
10965 @code{nnvirtual} can have both mail and news groups as component groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
10966 When responding to articles in @code{nnvirtual} groups, @code{nnvirtual}
Dave Love <fx@gnu.org>
parents:
diff changeset
10967 has to ask the backend of the component group the article comes from
Dave Love <fx@gnu.org>
parents:
diff changeset
10968 whether it is a news or mail backend. However, when you do a @kbd{^},
Dave Love <fx@gnu.org>
parents:
diff changeset
10969 there is typically no sure way for the component backend to know this,
Dave Love <fx@gnu.org>
parents:
diff changeset
10970 and in that case @code{nnvirtual} tells Gnus that the article came from a
Dave Love <fx@gnu.org>
parents:
diff changeset
10971 not-news backend. (Just to be on the safe side.)
Dave Love <fx@gnu.org>
parents:
diff changeset
10972
Dave Love <fx@gnu.org>
parents:
diff changeset
10973 @kbd{C-c C-t} in the message buffer will insert the @code{Newsgroups}
Dave Love <fx@gnu.org>
parents:
diff changeset
10974 line from the article you respond to in these cases.
Dave Love <fx@gnu.org>
parents:
diff changeset
10975
Dave Love <fx@gnu.org>
parents:
diff changeset
10976
Dave Love <fx@gnu.org>
parents:
diff changeset
10977
Dave Love <fx@gnu.org>
parents:
diff changeset
10978 @node Kibozed Groups
Dave Love <fx@gnu.org>
parents:
diff changeset
10979 @subsection Kibozed Groups
Dave Love <fx@gnu.org>
parents:
diff changeset
10980 @cindex nnkiboze
Dave Love <fx@gnu.org>
parents:
diff changeset
10981 @cindex kibozing
Dave Love <fx@gnu.org>
parents:
diff changeset
10982
Dave Love <fx@gnu.org>
parents:
diff changeset
10983 @dfn{Kibozing} is defined by @sc{oed} as ``grepping through (parts of)
Dave Love <fx@gnu.org>
parents:
diff changeset
10984 the news feed''. @code{nnkiboze} is a backend that will do this for
Dave Love <fx@gnu.org>
parents:
diff changeset
10985 you. Oh joy! Now you can grind any @sc{nntp} server down to a halt
Dave Love <fx@gnu.org>
parents:
diff changeset
10986 with useless requests! Oh happiness!
Dave Love <fx@gnu.org>
parents:
diff changeset
10987
Dave Love <fx@gnu.org>
parents:
diff changeset
10988 @kindex G k (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
10989 To create a kibozed group, use the @kbd{G k} command in the group
Dave Love <fx@gnu.org>
parents:
diff changeset
10990 buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
10991
Dave Love <fx@gnu.org>
parents:
diff changeset
10992 The address field of the @code{nnkiboze} method is, as with
Dave Love <fx@gnu.org>
parents:
diff changeset
10993 @code{nnvirtual}, a regexp to match groups to be ``included'' in the
Dave Love <fx@gnu.org>
parents:
diff changeset
10994 @code{nnkiboze} group. That's where most similarities between @code{nnkiboze}
Dave Love <fx@gnu.org>
parents:
diff changeset
10995 and @code{nnvirtual} end.
Dave Love <fx@gnu.org>
parents:
diff changeset
10996
Dave Love <fx@gnu.org>
parents:
diff changeset
10997 In addition to this regexp detailing component groups, an @code{nnkiboze} group
Dave Love <fx@gnu.org>
parents:
diff changeset
10998 must have a score file to say what articles are to be included in
Dave Love <fx@gnu.org>
parents:
diff changeset
10999 the group (@pxref{Scoring}).
Dave Love <fx@gnu.org>
parents:
diff changeset
11000
Dave Love <fx@gnu.org>
parents:
diff changeset
11001 @kindex M-x nnkiboze-generate-groups
Dave Love <fx@gnu.org>
parents:
diff changeset
11002 @findex nnkiboze-generate-groups
Dave Love <fx@gnu.org>
parents:
diff changeset
11003 You must run @kbd{M-x nnkiboze-generate-groups} after creating the
Dave Love <fx@gnu.org>
parents:
diff changeset
11004 @code{nnkiboze} groups you want to have. This command will take time. Lots of
Dave Love <fx@gnu.org>
parents:
diff changeset
11005 time. Oodles and oodles of time. Gnus has to fetch the headers from
Dave Love <fx@gnu.org>
parents:
diff changeset
11006 all the articles in all the component groups and run them through the
Dave Love <fx@gnu.org>
parents:
diff changeset
11007 scoring process to determine if there are any articles in the groups
Dave Love <fx@gnu.org>
parents:
diff changeset
11008 that are to be part of the @code{nnkiboze} groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
11009
Dave Love <fx@gnu.org>
parents:
diff changeset
11010 Please limit the number of component groups by using restrictive
Dave Love <fx@gnu.org>
parents:
diff changeset
11011 regexps. Otherwise your sysadmin may become annoyed with you, and the
Dave Love <fx@gnu.org>
parents:
diff changeset
11012 @sc{nntp} site may throw you off and never let you back in again.
Dave Love <fx@gnu.org>
parents:
diff changeset
11013 Stranger things have happened.
Dave Love <fx@gnu.org>
parents:
diff changeset
11014
Dave Love <fx@gnu.org>
parents:
diff changeset
11015 @code{nnkiboze} component groups do not have to be alive---they can be dead,
Dave Love <fx@gnu.org>
parents:
diff changeset
11016 and they can be foreign. No restrictions.
Dave Love <fx@gnu.org>
parents:
diff changeset
11017
Dave Love <fx@gnu.org>
parents:
diff changeset
11018 @vindex nnkiboze-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
11019 The generation of an @code{nnkiboze} group means writing two files in
Dave Love <fx@gnu.org>
parents:
diff changeset
11020 @code{nnkiboze-directory}, which is @file{~/News/} by default. One
Dave Love <fx@gnu.org>
parents:
diff changeset
11021 contains the @sc{nov} header lines for all the articles in the group,
Dave Love <fx@gnu.org>
parents:
diff changeset
11022 and the other is an additional @file{.newsrc} file to store information
Dave Love <fx@gnu.org>
parents:
diff changeset
11023 on what groups have been searched through to find component articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
11024
Dave Love <fx@gnu.org>
parents:
diff changeset
11025 Articles marked as read in the @code{nnkiboze} group will have
Dave Love <fx@gnu.org>
parents:
diff changeset
11026 their @sc{nov} lines removed from the @sc{nov} file.
Dave Love <fx@gnu.org>
parents:
diff changeset
11027
Dave Love <fx@gnu.org>
parents:
diff changeset
11028
Dave Love <fx@gnu.org>
parents:
diff changeset
11029 @node Gnus Unplugged
Dave Love <fx@gnu.org>
parents:
diff changeset
11030 @section Gnus Unplugged
Dave Love <fx@gnu.org>
parents:
diff changeset
11031 @cindex offline
Dave Love <fx@gnu.org>
parents:
diff changeset
11032 @cindex unplugged
Dave Love <fx@gnu.org>
parents:
diff changeset
11033 @cindex Agent
Dave Love <fx@gnu.org>
parents:
diff changeset
11034 @cindex Gnus Agent
Dave Love <fx@gnu.org>
parents:
diff changeset
11035 @cindex Gnus Unplugged
Dave Love <fx@gnu.org>
parents:
diff changeset
11036
Dave Love <fx@gnu.org>
parents:
diff changeset
11037 In olden times (ca. February '88), people used to run their newsreaders
Dave Love <fx@gnu.org>
parents:
diff changeset
11038 on big machines with permanent connections to the net. News transport
Dave Love <fx@gnu.org>
parents:
diff changeset
11039 was dealt with by news servers, and all the newsreaders had to do was to
Dave Love <fx@gnu.org>
parents:
diff changeset
11040 read news. Believe it or not.
Dave Love <fx@gnu.org>
parents:
diff changeset
11041
Dave Love <fx@gnu.org>
parents:
diff changeset
11042 Nowadays most people read news and mail at home, and use some sort of
Dave Love <fx@gnu.org>
parents:
diff changeset
11043 modem to connect to the net. To avoid running up huge phone bills, it
Dave Love <fx@gnu.org>
parents:
diff changeset
11044 would be nice to have a way to slurp down all the news and mail, hang up
Dave Love <fx@gnu.org>
parents:
diff changeset
11045 the phone, read for several hours, and then upload any responses you
Dave Love <fx@gnu.org>
parents:
diff changeset
11046 have to make. And then you repeat the procedure.
Dave Love <fx@gnu.org>
parents:
diff changeset
11047
Dave Love <fx@gnu.org>
parents:
diff changeset
11048 Of course, you can use news servers for doing this as well. I've used
Dave Love <fx@gnu.org>
parents:
diff changeset
11049 @code{inn} together with @code{slurp}, @code{pop} and @code{sendmail}
Dave Love <fx@gnu.org>
parents:
diff changeset
11050 for some years, but doing that's a bore. Moving the news server
Dave Love <fx@gnu.org>
parents:
diff changeset
11051 functionality up to the newsreader makes sense if you're the only person
Dave Love <fx@gnu.org>
parents:
diff changeset
11052 reading news on a machine.
Dave Love <fx@gnu.org>
parents:
diff changeset
11053
Dave Love <fx@gnu.org>
parents:
diff changeset
11054 Using Gnus as an ``offline'' newsreader is quite simple.
Dave Love <fx@gnu.org>
parents:
diff changeset
11055
Dave Love <fx@gnu.org>
parents:
diff changeset
11056 @itemize @bullet
Dave Love <fx@gnu.org>
parents:
diff changeset
11057 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
11058 First, set up Gnus as you would do if you were running it on a machine
Dave Love <fx@gnu.org>
parents:
diff changeset
11059 that has full connection to the net. Go ahead. I'll still be waiting
Dave Love <fx@gnu.org>
parents:
diff changeset
11060 here.
Dave Love <fx@gnu.org>
parents:
diff changeset
11061
Dave Love <fx@gnu.org>
parents:
diff changeset
11062 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
11063 Then, put the following magical incantation at the end of your
Dave Love <fx@gnu.org>
parents:
diff changeset
11064 @file{.gnus.el} file:
Dave Love <fx@gnu.org>
parents:
diff changeset
11065
Dave Love <fx@gnu.org>
parents:
diff changeset
11066 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
11067 (gnus-agentize)
Dave Love <fx@gnu.org>
parents:
diff changeset
11068 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
11069 @end itemize
Dave Love <fx@gnu.org>
parents:
diff changeset
11070
Dave Love <fx@gnu.org>
parents:
diff changeset
11071 That's it. Gnus is now an ``offline'' newsreader.
Dave Love <fx@gnu.org>
parents:
diff changeset
11072
Dave Love <fx@gnu.org>
parents:
diff changeset
11073 Of course, to use it as such, you have to learn a few new commands.
Dave Love <fx@gnu.org>
parents:
diff changeset
11074
Dave Love <fx@gnu.org>
parents:
diff changeset
11075 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
11076 * Agent Basics:: How it all is supposed to work.
Dave Love <fx@gnu.org>
parents:
diff changeset
11077 * Agent Categories:: How to tell the Gnus Agent what to download.
Dave Love <fx@gnu.org>
parents:
diff changeset
11078 * Agent Commands:: New commands for all the buffers.
Dave Love <fx@gnu.org>
parents:
diff changeset
11079 * Agent Expiry:: How to make old articles go away.
Dave Love <fx@gnu.org>
parents:
diff changeset
11080 * Outgoing Messages:: What happens when you post/mail something?
Dave Love <fx@gnu.org>
parents:
diff changeset
11081 * Agent Variables:: Customizing is fun.
Dave Love <fx@gnu.org>
parents:
diff changeset
11082 * Example Setup:: An example @file{.gnus.el} file for offline people.
Dave Love <fx@gnu.org>
parents:
diff changeset
11083 * Batching Agents:: How to fetch news from a @code{cron} job.
Dave Love <fx@gnu.org>
parents:
diff changeset
11084 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
11085
Dave Love <fx@gnu.org>
parents:
diff changeset
11086
Dave Love <fx@gnu.org>
parents:
diff changeset
11087 @node Agent Basics
Dave Love <fx@gnu.org>
parents:
diff changeset
11088 @subsection Agent Basics
Dave Love <fx@gnu.org>
parents:
diff changeset
11089
Dave Love <fx@gnu.org>
parents:
diff changeset
11090 First, let's get some terminology out of the way.
Dave Love <fx@gnu.org>
parents:
diff changeset
11091
Dave Love <fx@gnu.org>
parents:
diff changeset
11092 The Gnus Agent is said to be @dfn{unplugged} when you have severed the
Dave Love <fx@gnu.org>
parents:
diff changeset
11093 connection to the net (and notified the Agent that this is the case).
Dave Love <fx@gnu.org>
parents:
diff changeset
11094 When the connection to the net is up again (and Gnus knows this), the
Dave Love <fx@gnu.org>
parents:
diff changeset
11095 Agent is @dfn{plugged}.
Dave Love <fx@gnu.org>
parents:
diff changeset
11096
Dave Love <fx@gnu.org>
parents:
diff changeset
11097 The @dfn{local} machine is the one you're running on, and which isn't
Dave Love <fx@gnu.org>
parents:
diff changeset
11098 connected to the net continuously.
Dave Love <fx@gnu.org>
parents:
diff changeset
11099
Dave Love <fx@gnu.org>
parents:
diff changeset
11100 @dfn{Downloading} means fetching things from the net to your local
Dave Love <fx@gnu.org>
parents:
diff changeset
11101 machine. @dfn{Uploading} is doing the opposite.
Dave Love <fx@gnu.org>
parents:
diff changeset
11102
Dave Love <fx@gnu.org>
parents:
diff changeset
11103 Let's take a typical Gnus session using the Agent.
Dave Love <fx@gnu.org>
parents:
diff changeset
11104
Dave Love <fx@gnu.org>
parents:
diff changeset
11105 @itemize @bullet
Dave Love <fx@gnu.org>
parents:
diff changeset
11106
Dave Love <fx@gnu.org>
parents:
diff changeset
11107 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
11108 You start Gnus with @code{gnus-unplugged}. This brings up the Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
11109 Agent in a disconnected state. You can read all the news that you have
Dave Love <fx@gnu.org>
parents:
diff changeset
11110 already fetched while in this mode.
Dave Love <fx@gnu.org>
parents:
diff changeset
11111
Dave Love <fx@gnu.org>
parents:
diff changeset
11112 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
11113 You then decide to see whether any new news has arrived. You connect
Dave Love <fx@gnu.org>
parents:
diff changeset
11114 your machine to the net (using PPP or whatever), and then hit @kbd{J j}
Dave Love <fx@gnu.org>
parents:
diff changeset
11115 to make Gnus become @dfn{plugged}.
Dave Love <fx@gnu.org>
parents:
diff changeset
11116
Dave Love <fx@gnu.org>
parents:
diff changeset
11117 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
11118 You can then read the new news immediately, or you can download the news
Dave Love <fx@gnu.org>
parents:
diff changeset
11119 onto your local machine. If you want to do the latter, you press @kbd{J
Dave Love <fx@gnu.org>
parents:
diff changeset
11120 s} to fetch all the eligible articles in all the groups. (To let Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
11121 know which articles you want to download, @pxref{Agent Categories}.)
Dave Love <fx@gnu.org>
parents:
diff changeset
11122
Dave Love <fx@gnu.org>
parents:
diff changeset
11123 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
11124 After fetching the articles, you press @kbd{J j} to make Gnus become
Dave Love <fx@gnu.org>
parents:
diff changeset
11125 unplugged again, and you shut down the PPP thing (or whatever). And
Dave Love <fx@gnu.org>
parents:
diff changeset
11126 then you read the news offline.
Dave Love <fx@gnu.org>
parents:
diff changeset
11127
Dave Love <fx@gnu.org>
parents:
diff changeset
11128 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
11129 And then you go to step 2.
Dave Love <fx@gnu.org>
parents:
diff changeset
11130 @end itemize
Dave Love <fx@gnu.org>
parents:
diff changeset
11131
Dave Love <fx@gnu.org>
parents:
diff changeset
11132 Here are some things you should do the first time (or so) that you use
Dave Love <fx@gnu.org>
parents:
diff changeset
11133 the Agent.
Dave Love <fx@gnu.org>
parents:
diff changeset
11134
Dave Love <fx@gnu.org>
parents:
diff changeset
11135 @itemize @bullet
Dave Love <fx@gnu.org>
parents:
diff changeset
11136
Dave Love <fx@gnu.org>
parents:
diff changeset
11137 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
11138 Decide which servers should be covered by the Agent. If you have a mail
Dave Love <fx@gnu.org>
parents:
diff changeset
11139 backend, it would probably be nonsensical to have it covered by the
Dave Love <fx@gnu.org>
parents:
diff changeset
11140 Agent. Go to the server buffer (@kbd{^} in the group buffer) and press
Dave Love <fx@gnu.org>
parents:
diff changeset
11141 @kbd{J a} the server (or servers) that you wish to have covered by the
Dave Love <fx@gnu.org>
parents:
diff changeset
11142 Agent (@pxref{Server Agent Commands}). This will typically be only the
Dave Love <fx@gnu.org>
parents:
diff changeset
11143 primary select method, which is listed on the bottom in the buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
11144
Dave Love <fx@gnu.org>
parents:
diff changeset
11145 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
11146 Decide on download policy. @xref{Agent Categories}.
Dave Love <fx@gnu.org>
parents:
diff changeset
11147
Dave Love <fx@gnu.org>
parents:
diff changeset
11148 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
11149 Uhm... that's it.
Dave Love <fx@gnu.org>
parents:
diff changeset
11150 @end itemize
Dave Love <fx@gnu.org>
parents:
diff changeset
11151
Dave Love <fx@gnu.org>
parents:
diff changeset
11152
Dave Love <fx@gnu.org>
parents:
diff changeset
11153 @node Agent Categories
Dave Love <fx@gnu.org>
parents:
diff changeset
11154 @subsection Agent Categories
Dave Love <fx@gnu.org>
parents:
diff changeset
11155
Dave Love <fx@gnu.org>
parents:
diff changeset
11156 One of the main reasons to integrate the news transport layer into the
Dave Love <fx@gnu.org>
parents:
diff changeset
11157 newsreader is to allow greater control over what articles to download.
Dave Love <fx@gnu.org>
parents:
diff changeset
11158 There's not much point in downloading huge amounts of articles, just to
Dave Love <fx@gnu.org>
parents:
diff changeset
11159 find out that you're not interested in reading any of them. It's better
Dave Love <fx@gnu.org>
parents:
diff changeset
11160 to be somewhat more conservative in choosing what to download, and then
Dave Love <fx@gnu.org>
parents:
diff changeset
11161 mark the articles for downloading manually if it should turn out that
Dave Love <fx@gnu.org>
parents:
diff changeset
11162 you're interested in the articles anyway.
Dave Love <fx@gnu.org>
parents:
diff changeset
11163
Dave Love <fx@gnu.org>
parents:
diff changeset
11164 The main way to control what is to be downloaded is to create a
Dave Love <fx@gnu.org>
parents:
diff changeset
11165 @dfn{category} and then assign some (or all) groups to this category.
Dave Love <fx@gnu.org>
parents:
diff changeset
11166 Gnus has its own buffer for creating and managing categories.
Dave Love <fx@gnu.org>
parents:
diff changeset
11167
Dave Love <fx@gnu.org>
parents:
diff changeset
11168 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
11169 * Category Syntax:: What a category looks like.
Dave Love <fx@gnu.org>
parents:
diff changeset
11170 * The Category Buffer:: A buffer for maintaining categories.
Dave Love <fx@gnu.org>
parents:
diff changeset
11171 * Category Variables:: Customize'r'Us.
Dave Love <fx@gnu.org>
parents:
diff changeset
11172 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
11173
Dave Love <fx@gnu.org>
parents:
diff changeset
11174
Dave Love <fx@gnu.org>
parents:
diff changeset
11175 @node Category Syntax
Dave Love <fx@gnu.org>
parents:
diff changeset
11176 @subsubsection Category Syntax
Dave Love <fx@gnu.org>
parents:
diff changeset
11177
Dave Love <fx@gnu.org>
parents:
diff changeset
11178 A category consists of two things.
Dave Love <fx@gnu.org>
parents:
diff changeset
11179
Dave Love <fx@gnu.org>
parents:
diff changeset
11180 @enumerate
Dave Love <fx@gnu.org>
parents:
diff changeset
11181 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
11182 A predicate which (generally) gives a rough outline of which articles
Dave Love <fx@gnu.org>
parents:
diff changeset
11183 are eligible for downloading; and
Dave Love <fx@gnu.org>
parents:
diff changeset
11184
Dave Love <fx@gnu.org>
parents:
diff changeset
11185 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
11186 a score rule which (generally) gives you a finer granularity when
Dave Love <fx@gnu.org>
parents:
diff changeset
11187 deciding what articles to download. (Note that this @dfn{download
Dave Love <fx@gnu.org>
parents:
diff changeset
11188 score} is wholly unrelated to normal scores.)
Dave Love <fx@gnu.org>
parents:
diff changeset
11189 @end enumerate
Dave Love <fx@gnu.org>
parents:
diff changeset
11190
Dave Love <fx@gnu.org>
parents:
diff changeset
11191 A predicate consists of predicates with logical operators sprinkled in
Dave Love <fx@gnu.org>
parents:
diff changeset
11192 between.
Dave Love <fx@gnu.org>
parents:
diff changeset
11193
Dave Love <fx@gnu.org>
parents:
diff changeset
11194 Perhaps some examples are in order.
Dave Love <fx@gnu.org>
parents:
diff changeset
11195
Dave Love <fx@gnu.org>
parents:
diff changeset
11196 Here's a simple predicate. (It's the default predicate, in fact, used
Dave Love <fx@gnu.org>
parents:
diff changeset
11197 for all groups that don't belong to any other category.)
Dave Love <fx@gnu.org>
parents:
diff changeset
11198
Dave Love <fx@gnu.org>
parents:
diff changeset
11199 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
11200 short
Dave Love <fx@gnu.org>
parents:
diff changeset
11201 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
11202
Dave Love <fx@gnu.org>
parents:
diff changeset
11203 Quite simple, eh? This predicate is true if and only if the article is
Dave Love <fx@gnu.org>
parents:
diff changeset
11204 short (for some value of ``short'').
Dave Love <fx@gnu.org>
parents:
diff changeset
11205
Dave Love <fx@gnu.org>
parents:
diff changeset
11206 Here's a more complex predicate:
Dave Love <fx@gnu.org>
parents:
diff changeset
11207
Dave Love <fx@gnu.org>
parents:
diff changeset
11208 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
11209 (or high
Dave Love <fx@gnu.org>
parents:
diff changeset
11210 (and
Dave Love <fx@gnu.org>
parents:
diff changeset
11211 (not low)
Dave Love <fx@gnu.org>
parents:
diff changeset
11212 (not long)))
Dave Love <fx@gnu.org>
parents:
diff changeset
11213 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
11214
Dave Love <fx@gnu.org>
parents:
diff changeset
11215 This means that an article should be downloaded if it has a high score,
Dave Love <fx@gnu.org>
parents:
diff changeset
11216 or if the score is not low and the article is not long. You get the
Dave Love <fx@gnu.org>
parents:
diff changeset
11217 drift.
Dave Love <fx@gnu.org>
parents:
diff changeset
11218
Dave Love <fx@gnu.org>
parents:
diff changeset
11219 The available logical operators are @code{or}, @code{and} and
Dave Love <fx@gnu.org>
parents:
diff changeset
11220 @code{not}. (If you prefer, you can use the more ``C''-ish operators
Dave Love <fx@gnu.org>
parents:
diff changeset
11221 @samp{|}, @code{&} and @code{!} instead.)
Dave Love <fx@gnu.org>
parents:
diff changeset
11222
Dave Love <fx@gnu.org>
parents:
diff changeset
11223 The following predicates are pre-defined, but if none of these fit what
Dave Love <fx@gnu.org>
parents:
diff changeset
11224 you want to do, you can write your own.
Dave Love <fx@gnu.org>
parents:
diff changeset
11225
Dave Love <fx@gnu.org>
parents:
diff changeset
11226 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
11227 @item short
Dave Love <fx@gnu.org>
parents:
diff changeset
11228 True iff the article is shorter than @code{gnus-agent-short-article}
Dave Love <fx@gnu.org>
parents:
diff changeset
11229 lines; default 100.
Dave Love <fx@gnu.org>
parents:
diff changeset
11230
Dave Love <fx@gnu.org>
parents:
diff changeset
11231 @item long
Dave Love <fx@gnu.org>
parents:
diff changeset
11232 True iff the article is longer than @code{gnus-agent-long-article}
Dave Love <fx@gnu.org>
parents:
diff changeset
11233 lines; default 200.
Dave Love <fx@gnu.org>
parents:
diff changeset
11234
Dave Love <fx@gnu.org>
parents:
diff changeset
11235 @item low
Dave Love <fx@gnu.org>
parents:
diff changeset
11236 True iff the article has a download score less than
Dave Love <fx@gnu.org>
parents:
diff changeset
11237 @code{gnus-agent-low-score}; default 0.
Dave Love <fx@gnu.org>
parents:
diff changeset
11238
Dave Love <fx@gnu.org>
parents:
diff changeset
11239 @item high
Dave Love <fx@gnu.org>
parents:
diff changeset
11240 True iff the article has a download score greater than
Dave Love <fx@gnu.org>
parents:
diff changeset
11241 @code{gnus-agent-high-score}; default 0.
Dave Love <fx@gnu.org>
parents:
diff changeset
11242
Dave Love <fx@gnu.org>
parents:
diff changeset
11243 @item spam
Dave Love <fx@gnu.org>
parents:
diff changeset
11244 True iff the Gnus Agent guesses that the article is spam. The
Dave Love <fx@gnu.org>
parents:
diff changeset
11245 heuristics may change over time, but at present it just computes a
Dave Love <fx@gnu.org>
parents:
diff changeset
11246 checksum and sees whether articles match.
Dave Love <fx@gnu.org>
parents:
diff changeset
11247
Dave Love <fx@gnu.org>
parents:
diff changeset
11248 @item true
Dave Love <fx@gnu.org>
parents:
diff changeset
11249 Always true.
Dave Love <fx@gnu.org>
parents:
diff changeset
11250
Dave Love <fx@gnu.org>
parents:
diff changeset
11251 @item false
Dave Love <fx@gnu.org>
parents:
diff changeset
11252 Always false.
Dave Love <fx@gnu.org>
parents:
diff changeset
11253 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
11254
Dave Love <fx@gnu.org>
parents:
diff changeset
11255 If you want to create your own predicate function, here's what you have
Dave Love <fx@gnu.org>
parents:
diff changeset
11256 to know: The functions are called with no parameters, but the
Dave Love <fx@gnu.org>
parents:
diff changeset
11257 @code{gnus-headers} and @code{gnus-score} dynamic variables are bound to
Dave Love <fx@gnu.org>
parents:
diff changeset
11258 useful values.
Dave Love <fx@gnu.org>
parents:
diff changeset
11259
Dave Love <fx@gnu.org>
parents:
diff changeset
11260 Now, the syntax of the download score is the same as the syntax of
Dave Love <fx@gnu.org>
parents:
diff changeset
11261 normal score files, except that all elements that require actually
Dave Love <fx@gnu.org>
parents:
diff changeset
11262 seeing the article itself are verboten. This means that only the
Dave Love <fx@gnu.org>
parents:
diff changeset
11263 following headers can be scored on: @code{From}, @code{Subject},
Dave Love <fx@gnu.org>
parents:
diff changeset
11264 @code{Date}, @code{Xref}, @code{Lines}, @code{Chars}, @code{Message-ID},
Dave Love <fx@gnu.org>
parents:
diff changeset
11265 and @code{References}.
Dave Love <fx@gnu.org>
parents:
diff changeset
11266
Dave Love <fx@gnu.org>
parents:
diff changeset
11267
Dave Love <fx@gnu.org>
parents:
diff changeset
11268 @node The Category Buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
11269 @subsubsection The Category Buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
11270
Dave Love <fx@gnu.org>
parents:
diff changeset
11271 You'd normally do all category maintenance from the category buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
11272 When you enter it for the first time (with the @kbd{J c} command from
Dave Love <fx@gnu.org>
parents:
diff changeset
11273 the group buffer), you'll only see the @code{default} category.
Dave Love <fx@gnu.org>
parents:
diff changeset
11274
Dave Love <fx@gnu.org>
parents:
diff changeset
11275 The following commands are available in this buffer:
Dave Love <fx@gnu.org>
parents:
diff changeset
11276
Dave Love <fx@gnu.org>
parents:
diff changeset
11277 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
11278 @item q
Dave Love <fx@gnu.org>
parents:
diff changeset
11279 @kindex q (Category)
Dave Love <fx@gnu.org>
parents:
diff changeset
11280 @findex gnus-category-exit
Dave Love <fx@gnu.org>
parents:
diff changeset
11281 Return to the group buffer (@code{gnus-category-exit}).
Dave Love <fx@gnu.org>
parents:
diff changeset
11282
Dave Love <fx@gnu.org>
parents:
diff changeset
11283 @item k
Dave Love <fx@gnu.org>
parents:
diff changeset
11284 @kindex k (Category)
Dave Love <fx@gnu.org>
parents:
diff changeset
11285 @findex gnus-category-kill
Dave Love <fx@gnu.org>
parents:
diff changeset
11286 Kill the current category (@code{gnus-category-kill}).
Dave Love <fx@gnu.org>
parents:
diff changeset
11287
Dave Love <fx@gnu.org>
parents:
diff changeset
11288 @item c
Dave Love <fx@gnu.org>
parents:
diff changeset
11289 @kindex c (Category)
Dave Love <fx@gnu.org>
parents:
diff changeset
11290 @findex gnus-category-copy
Dave Love <fx@gnu.org>
parents:
diff changeset
11291 Copy the current category (@code{gnus-category-copy}).
Dave Love <fx@gnu.org>
parents:
diff changeset
11292
Dave Love <fx@gnu.org>
parents:
diff changeset
11293 @item a
Dave Love <fx@gnu.org>
parents:
diff changeset
11294 @kindex a (Category)
Dave Love <fx@gnu.org>
parents:
diff changeset
11295 @findex gnus-category-add
Dave Love <fx@gnu.org>
parents:
diff changeset
11296 Add a new category (@code{gnus-category-add}).
Dave Love <fx@gnu.org>
parents:
diff changeset
11297
Dave Love <fx@gnu.org>
parents:
diff changeset
11298 @item p
Dave Love <fx@gnu.org>
parents:
diff changeset
11299 @kindex p (Category)
Dave Love <fx@gnu.org>
parents:
diff changeset
11300 @findex gnus-category-edit-predicate
Dave Love <fx@gnu.org>
parents:
diff changeset
11301 Edit the predicate of the current category
Dave Love <fx@gnu.org>
parents:
diff changeset
11302 (@code{gnus-category-edit-predicate}).
Dave Love <fx@gnu.org>
parents:
diff changeset
11303
Dave Love <fx@gnu.org>
parents:
diff changeset
11304 @item g
Dave Love <fx@gnu.org>
parents:
diff changeset
11305 @kindex g (Category)
Dave Love <fx@gnu.org>
parents:
diff changeset
11306 @findex gnus-category-edit-groups
Dave Love <fx@gnu.org>
parents:
diff changeset
11307 Edit the list of groups belonging to the current category
Dave Love <fx@gnu.org>
parents:
diff changeset
11308 (@code{gnus-category-edit-groups}).
Dave Love <fx@gnu.org>
parents:
diff changeset
11309
Dave Love <fx@gnu.org>
parents:
diff changeset
11310 @item s
Dave Love <fx@gnu.org>
parents:
diff changeset
11311 @kindex s (Category)
Dave Love <fx@gnu.org>
parents:
diff changeset
11312 @findex gnus-category-edit-score
Dave Love <fx@gnu.org>
parents:
diff changeset
11313 Edit the download score rule of the current category
Dave Love <fx@gnu.org>
parents:
diff changeset
11314 (@code{gnus-category-edit-score}).
Dave Love <fx@gnu.org>
parents:
diff changeset
11315
Dave Love <fx@gnu.org>
parents:
diff changeset
11316 @item l
Dave Love <fx@gnu.org>
parents:
diff changeset
11317 @kindex l (Category)
Dave Love <fx@gnu.org>
parents:
diff changeset
11318 @findex gnus-category-list
Dave Love <fx@gnu.org>
parents:
diff changeset
11319 List all the categories (@code{gnus-category-list}).
Dave Love <fx@gnu.org>
parents:
diff changeset
11320 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
11321
Dave Love <fx@gnu.org>
parents:
diff changeset
11322
Dave Love <fx@gnu.org>
parents:
diff changeset
11323 @node Category Variables
Dave Love <fx@gnu.org>
parents:
diff changeset
11324 @subsubsection Category Variables
Dave Love <fx@gnu.org>
parents:
diff changeset
11325
Dave Love <fx@gnu.org>
parents:
diff changeset
11326 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
11327 @item gnus-category-mode-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
11328 @vindex gnus-category-mode-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
11329 Hook run in category buffers.
Dave Love <fx@gnu.org>
parents:
diff changeset
11330
Dave Love <fx@gnu.org>
parents:
diff changeset
11331 @item gnus-category-line-format
Dave Love <fx@gnu.org>
parents:
diff changeset
11332 @vindex gnus-category-line-format
Dave Love <fx@gnu.org>
parents:
diff changeset
11333 Format of the lines in the category buffer (@pxref{Formatting
Dave Love <fx@gnu.org>
parents:
diff changeset
11334 Variables}). Valid elements are:
Dave Love <fx@gnu.org>
parents:
diff changeset
11335
Dave Love <fx@gnu.org>
parents:
diff changeset
11336 @table @samp
Dave Love <fx@gnu.org>
parents:
diff changeset
11337 @item c
Dave Love <fx@gnu.org>
parents:
diff changeset
11338 The name of the category.
Dave Love <fx@gnu.org>
parents:
diff changeset
11339
Dave Love <fx@gnu.org>
parents:
diff changeset
11340 @item g
Dave Love <fx@gnu.org>
parents:
diff changeset
11341 The number of groups in the category.
Dave Love <fx@gnu.org>
parents:
diff changeset
11342 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
11343
Dave Love <fx@gnu.org>
parents:
diff changeset
11344 @item gnus-category-mode-line-format
Dave Love <fx@gnu.org>
parents:
diff changeset
11345 @vindex gnus-category-mode-line-format
Dave Love <fx@gnu.org>
parents:
diff changeset
11346 Format of the category mode line (@pxref{Mode Line Formatting}).
Dave Love <fx@gnu.org>
parents:
diff changeset
11347
Dave Love <fx@gnu.org>
parents:
diff changeset
11348 @item gnus-agent-short-article
Dave Love <fx@gnu.org>
parents:
diff changeset
11349 @vindex gnus-agent-short-article
Dave Love <fx@gnu.org>
parents:
diff changeset
11350 Articles that have fewer lines than this are short. Default 100.
Dave Love <fx@gnu.org>
parents:
diff changeset
11351
Dave Love <fx@gnu.org>
parents:
diff changeset
11352 @item gnus-agent-long-article
Dave Love <fx@gnu.org>
parents:
diff changeset
11353 @vindex gnus-agent-long-article
Dave Love <fx@gnu.org>
parents:
diff changeset
11354 Articles that have more lines than this are long. Default 200.
Dave Love <fx@gnu.org>
parents:
diff changeset
11355
Dave Love <fx@gnu.org>
parents:
diff changeset
11356 @item gnus-agent-low-score
Dave Love <fx@gnu.org>
parents:
diff changeset
11357 @vindex gnus-agent-low-score
Dave Love <fx@gnu.org>
parents:
diff changeset
11358 Articles that have a score lower than this have a low score. Default
Dave Love <fx@gnu.org>
parents:
diff changeset
11359 0.
Dave Love <fx@gnu.org>
parents:
diff changeset
11360
Dave Love <fx@gnu.org>
parents:
diff changeset
11361 @item gnus-agent-high-score
Dave Love <fx@gnu.org>
parents:
diff changeset
11362 @vindex gnus-agent-high-score
Dave Love <fx@gnu.org>
parents:
diff changeset
11363 Articles that have a score higher than this have a high score. Default
Dave Love <fx@gnu.org>
parents:
diff changeset
11364 0.
Dave Love <fx@gnu.org>
parents:
diff changeset
11365
Dave Love <fx@gnu.org>
parents:
diff changeset
11366 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
11367
Dave Love <fx@gnu.org>
parents:
diff changeset
11368
Dave Love <fx@gnu.org>
parents:
diff changeset
11369 @node Agent Commands
Dave Love <fx@gnu.org>
parents:
diff changeset
11370 @subsection Agent Commands
Dave Love <fx@gnu.org>
parents:
diff changeset
11371
Dave Love <fx@gnu.org>
parents:
diff changeset
11372 All the Gnus Agent commands are on the @kbd{J} submap. The @kbd{J j}
Dave Love <fx@gnu.org>
parents:
diff changeset
11373 (@code{gnus-agent-toggle-plugged} command works in all modes, and
Dave Love <fx@gnu.org>
parents:
diff changeset
11374 toggles the plugged/unplugged state of the Gnus Agent.
Dave Love <fx@gnu.org>
parents:
diff changeset
11375
Dave Love <fx@gnu.org>
parents:
diff changeset
11376
Dave Love <fx@gnu.org>
parents:
diff changeset
11377 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
11378 * Group Agent Commands::
Dave Love <fx@gnu.org>
parents:
diff changeset
11379 * Summary Agent Commands::
Dave Love <fx@gnu.org>
parents:
diff changeset
11380 * Server Agent Commands::
Dave Love <fx@gnu.org>
parents:
diff changeset
11381 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
11382
Dave Love <fx@gnu.org>
parents:
diff changeset
11383 You can run a complete batch fetch from the command line with the
Dave Love <fx@gnu.org>
parents:
diff changeset
11384 following incantation:
Dave Love <fx@gnu.org>
parents:
diff changeset
11385
Dave Love <fx@gnu.org>
parents:
diff changeset
11386 @cindex gnus-agent-batch-fetch
Dave Love <fx@gnu.org>
parents:
diff changeset
11387 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
11388 $ emacs -batch -l ~/.gnus.el -f gnus-agent-batch-fetch
Dave Love <fx@gnu.org>
parents:
diff changeset
11389 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
11390
Dave Love <fx@gnu.org>
parents:
diff changeset
11391
Dave Love <fx@gnu.org>
parents:
diff changeset
11392
Dave Love <fx@gnu.org>
parents:
diff changeset
11393 @node Group Agent Commands
Dave Love <fx@gnu.org>
parents:
diff changeset
11394 @subsubsection Group Agent Commands
Dave Love <fx@gnu.org>
parents:
diff changeset
11395
Dave Love <fx@gnu.org>
parents:
diff changeset
11396 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
11397 @item J u
Dave Love <fx@gnu.org>
parents:
diff changeset
11398 @kindex J u (Agent Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
11399 @findex gnus-agent-fetch-groups
Dave Love <fx@gnu.org>
parents:
diff changeset
11400 Fetch all eligible articles in the current group
Dave Love <fx@gnu.org>
parents:
diff changeset
11401 (@code{gnus-agent-fetch-groups}).
Dave Love <fx@gnu.org>
parents:
diff changeset
11402
Dave Love <fx@gnu.org>
parents:
diff changeset
11403 @item J c
Dave Love <fx@gnu.org>
parents:
diff changeset
11404 @kindex J c (Agent Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
11405 @findex gnus-enter-category-buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
11406 Enter the Agent category buffer (@code{gnus-enter-category-buffer}).
Dave Love <fx@gnu.org>
parents:
diff changeset
11407
Dave Love <fx@gnu.org>
parents:
diff changeset
11408 @item J s
Dave Love <fx@gnu.org>
parents:
diff changeset
11409 @kindex J s (Agent Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
11410 @findex gnus-agent-fetch-session
Dave Love <fx@gnu.org>
parents:
diff changeset
11411 Fetch all eligible articles in all groups
Dave Love <fx@gnu.org>
parents:
diff changeset
11412 (@code{gnus-agent-fetch-session}).
Dave Love <fx@gnu.org>
parents:
diff changeset
11413
Dave Love <fx@gnu.org>
parents:
diff changeset
11414 @item J S
Dave Love <fx@gnu.org>
parents:
diff changeset
11415 @kindex J S (Agent Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
11416 @findex gnus-group-send-drafts
Dave Love <fx@gnu.org>
parents:
diff changeset
11417 Send all sendable messages in the draft group
Dave Love <fx@gnu.org>
parents:
diff changeset
11418 (@code{gnus-agent-fetch-session}). @xref{Drafts}.
Dave Love <fx@gnu.org>
parents:
diff changeset
11419
Dave Love <fx@gnu.org>
parents:
diff changeset
11420 @item J a
Dave Love <fx@gnu.org>
parents:
diff changeset
11421 @kindex J a (Agent Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
11422 @findex gnus-agent-add-group
Dave Love <fx@gnu.org>
parents:
diff changeset
11423 Add the current group to an Agent category
Dave Love <fx@gnu.org>
parents:
diff changeset
11424 (@code{gnus-agent-add-group}).
Dave Love <fx@gnu.org>
parents:
diff changeset
11425
Dave Love <fx@gnu.org>
parents:
diff changeset
11426 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
11427
Dave Love <fx@gnu.org>
parents:
diff changeset
11428
Dave Love <fx@gnu.org>
parents:
diff changeset
11429 @node Summary Agent Commands
Dave Love <fx@gnu.org>
parents:
diff changeset
11430 @subsubsection Summary Agent Commands
Dave Love <fx@gnu.org>
parents:
diff changeset
11431
Dave Love <fx@gnu.org>
parents:
diff changeset
11432 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
11433 @item J #
Dave Love <fx@gnu.org>
parents:
diff changeset
11434 @kindex J # (Agent Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
11435 @findex gnus-agent-mark-article
Dave Love <fx@gnu.org>
parents:
diff changeset
11436 Mark the article for downloading (@code{gnus-agent-mark-article}).
Dave Love <fx@gnu.org>
parents:
diff changeset
11437
Dave Love <fx@gnu.org>
parents:
diff changeset
11438 @item J M-#
Dave Love <fx@gnu.org>
parents:
diff changeset
11439 @kindex J M-# (Agent Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
11440 @findex gnus-agent-unmark-article
Dave Love <fx@gnu.org>
parents:
diff changeset
11441 Remove the downloading mark from the article
Dave Love <fx@gnu.org>
parents:
diff changeset
11442 (@code{gnus-agent-unmark-article}).
Dave Love <fx@gnu.org>
parents:
diff changeset
11443
Dave Love <fx@gnu.org>
parents:
diff changeset
11444 @item @@
Dave Love <fx@gnu.org>
parents:
diff changeset
11445 @kindex @@ (Agent Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
11446 @findex gnus-agent-toggle-mark
Dave Love <fx@gnu.org>
parents:
diff changeset
11447 Toggle whether to download the article (@code{gnus-agent-toggle-mark}).
Dave Love <fx@gnu.org>
parents:
diff changeset
11448
Dave Love <fx@gnu.org>
parents:
diff changeset
11449 @item J c
Dave Love <fx@gnu.org>
parents:
diff changeset
11450 @kindex J c (Agent Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
11451 @findex gnus-agent-catchup
Dave Love <fx@gnu.org>
parents:
diff changeset
11452 Mark all undownloaded articles as read (@code{gnus-agent-catchup}).
Dave Love <fx@gnu.org>
parents:
diff changeset
11453
Dave Love <fx@gnu.org>
parents:
diff changeset
11454 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
11455
Dave Love <fx@gnu.org>
parents:
diff changeset
11456
Dave Love <fx@gnu.org>
parents:
diff changeset
11457 @node Server Agent Commands
Dave Love <fx@gnu.org>
parents:
diff changeset
11458 @subsubsection Server Agent Commands
Dave Love <fx@gnu.org>
parents:
diff changeset
11459
Dave Love <fx@gnu.org>
parents:
diff changeset
11460 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
11461 @item J a
Dave Love <fx@gnu.org>
parents:
diff changeset
11462 @kindex J a (Agent Server)
Dave Love <fx@gnu.org>
parents:
diff changeset
11463 @findex gnus-agent-add-server
Dave Love <fx@gnu.org>
parents:
diff changeset
11464 Add the current server to the list of servers covered by the Gnus Agent
Dave Love <fx@gnu.org>
parents:
diff changeset
11465 (@code{gnus-agent-add-server}).
Dave Love <fx@gnu.org>
parents:
diff changeset
11466
Dave Love <fx@gnu.org>
parents:
diff changeset
11467 @item J r
Dave Love <fx@gnu.org>
parents:
diff changeset
11468 @kindex J r (Agent Server)
Dave Love <fx@gnu.org>
parents:
diff changeset
11469 @findex gnus-agent-remove-server
Dave Love <fx@gnu.org>
parents:
diff changeset
11470 Remove the current server from the list of servers covered by the Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
11471 Agent (@code{gnus-agent-remove-server}).
Dave Love <fx@gnu.org>
parents:
diff changeset
11472
Dave Love <fx@gnu.org>
parents:
diff changeset
11473 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
11474
Dave Love <fx@gnu.org>
parents:
diff changeset
11475
Dave Love <fx@gnu.org>
parents:
diff changeset
11476 @node Agent Expiry
Dave Love <fx@gnu.org>
parents:
diff changeset
11477 @subsection Agent Expiry
Dave Love <fx@gnu.org>
parents:
diff changeset
11478
Dave Love <fx@gnu.org>
parents:
diff changeset
11479 @vindex gnus-agent-expire-days
Dave Love <fx@gnu.org>
parents:
diff changeset
11480 @findex gnus-agent-expire
Dave Love <fx@gnu.org>
parents:
diff changeset
11481 @kindex M-x gnus-agent-expire
Dave Love <fx@gnu.org>
parents:
diff changeset
11482 @cindex Agent expire
Dave Love <fx@gnu.org>
parents:
diff changeset
11483 @cindex Gnus Agent expire
Dave Love <fx@gnu.org>
parents:
diff changeset
11484 @cindex expiry
Dave Love <fx@gnu.org>
parents:
diff changeset
11485
Dave Love <fx@gnu.org>
parents:
diff changeset
11486 @code{nnagent} doesn't handle expiry. Instead, there's a special
Dave Love <fx@gnu.org>
parents:
diff changeset
11487 @code{gnus-agent-expire} command that will expire all read articles that
Dave Love <fx@gnu.org>
parents:
diff changeset
11488 are older than @code{gnus-agent-expire-days} days. It can be run
Dave Love <fx@gnu.org>
parents:
diff changeset
11489 whenever you feel that you're running out of space. It's not
Dave Love <fx@gnu.org>
parents:
diff changeset
11490 particularly fast or efficient, and it's not a particularly good idea to
Dave Love <fx@gnu.org>
parents:
diff changeset
11491 interrupt it (with @kbd{C-g} or anything else) once you've started it.
Dave Love <fx@gnu.org>
parents:
diff changeset
11492
Dave Love <fx@gnu.org>
parents:
diff changeset
11493 @vindex gnus-agent-expire-all
Dave Love <fx@gnu.org>
parents:
diff changeset
11494 if @code{gnus-agent-expire-all} is non-@code{nil}, this command will
Dave Love <fx@gnu.org>
parents:
diff changeset
11495 expire all articles---unread, read, ticked and dormant. If @code{nil}
Dave Love <fx@gnu.org>
parents:
diff changeset
11496 (which is the default), only read articles are eligible for expiry, and
Dave Love <fx@gnu.org>
parents:
diff changeset
11497 unread, ticked and dormant articles will be kept indefinitely.
Dave Love <fx@gnu.org>
parents:
diff changeset
11498
Dave Love <fx@gnu.org>
parents:
diff changeset
11499
Dave Love <fx@gnu.org>
parents:
diff changeset
11500 @node Outgoing Messages
Dave Love <fx@gnu.org>
parents:
diff changeset
11501 @subsection Outgoing Messages
Dave Love <fx@gnu.org>
parents:
diff changeset
11502
Dave Love <fx@gnu.org>
parents:
diff changeset
11503 When Gnus is unplugged, all outgoing messages (both mail and news) are
Dave Love <fx@gnu.org>
parents:
diff changeset
11504 stored in the draft groups (@pxref{Drafts}). You can view them there
Dave Love <fx@gnu.org>
parents:
diff changeset
11505 after posting, and edit them at will.
Dave Love <fx@gnu.org>
parents:
diff changeset
11506
Dave Love <fx@gnu.org>
parents:
diff changeset
11507 When Gnus is plugged again, you can send the messages either from the
Dave Love <fx@gnu.org>
parents:
diff changeset
11508 draft group with the special commands available there, or you can use
Dave Love <fx@gnu.org>
parents:
diff changeset
11509 the @kbd{J S} command in the group buffer to send all the sendable
Dave Love <fx@gnu.org>
parents:
diff changeset
11510 messages in the draft group.
Dave Love <fx@gnu.org>
parents:
diff changeset
11511
Dave Love <fx@gnu.org>
parents:
diff changeset
11512
Dave Love <fx@gnu.org>
parents:
diff changeset
11513
Dave Love <fx@gnu.org>
parents:
diff changeset
11514 @node Agent Variables
Dave Love <fx@gnu.org>
parents:
diff changeset
11515 @subsection Agent Variables
Dave Love <fx@gnu.org>
parents:
diff changeset
11516
Dave Love <fx@gnu.org>
parents:
diff changeset
11517 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
11518 @item gnus-agent-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
11519 @vindex gnus-agent-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
11520 Where the Gnus Agent will store its files. The default is
Dave Love <fx@gnu.org>
parents:
diff changeset
11521 @file{~/News/agent/}.
Dave Love <fx@gnu.org>
parents:
diff changeset
11522
Dave Love <fx@gnu.org>
parents:
diff changeset
11523 @item gnus-agent-handle-level
Dave Love <fx@gnu.org>
parents:
diff changeset
11524 @vindex gnus-agent-handle-level
Dave Love <fx@gnu.org>
parents:
diff changeset
11525 Groups on levels (@pxref{Group Levels}) higher than this variable will
Dave Love <fx@gnu.org>
parents:
diff changeset
11526 be ignored by the Agent. The default is @code{gnus-level-subscribed},
Dave Love <fx@gnu.org>
parents:
diff changeset
11527 which means that only subscribed group will be considered by the Agent
Dave Love <fx@gnu.org>
parents:
diff changeset
11528 by default.
Dave Love <fx@gnu.org>
parents:
diff changeset
11529
Dave Love <fx@gnu.org>
parents:
diff changeset
11530 @item gnus-agent-plugged-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
11531 @vindex gnus-agent-plugged-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
11532 Hook run when connecting to the network.
Dave Love <fx@gnu.org>
parents:
diff changeset
11533
Dave Love <fx@gnu.org>
parents:
diff changeset
11534 @item gnus-agent-unplugged-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
11535 @vindex gnus-agent-unplugged-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
11536 Hook run when disconnecting from the network.
Dave Love <fx@gnu.org>
parents:
diff changeset
11537
Dave Love <fx@gnu.org>
parents:
diff changeset
11538 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
11539
Dave Love <fx@gnu.org>
parents:
diff changeset
11540
Dave Love <fx@gnu.org>
parents:
diff changeset
11541 @node Example Setup
Dave Love <fx@gnu.org>
parents:
diff changeset
11542 @subsection Example Setup
Dave Love <fx@gnu.org>
parents:
diff changeset
11543
Dave Love <fx@gnu.org>
parents:
diff changeset
11544 If you don't want to read this manual, and you have a fairly standard
Dave Love <fx@gnu.org>
parents:
diff changeset
11545 setup, you may be able to use something like the following as your
Dave Love <fx@gnu.org>
parents:
diff changeset
11546 @file{.gnus.el} file to get started.
Dave Love <fx@gnu.org>
parents:
diff changeset
11547
Dave Love <fx@gnu.org>
parents:
diff changeset
11548 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
11549 ;;; Define how Gnus is to fetch news. We do this over NNTP
Dave Love <fx@gnu.org>
parents:
diff changeset
11550 ;;; from your ISP's server.
Dave Love <fx@gnu.org>
parents:
diff changeset
11551 (setq gnus-select-method '(nntp "nntp.your-isp.com"))
Dave Love <fx@gnu.org>
parents:
diff changeset
11552
Dave Love <fx@gnu.org>
parents:
diff changeset
11553 ;;; Define how Gnus is to read your mail. We read mail from
Dave Love <fx@gnu.org>
parents:
diff changeset
11554 ;;; your ISP's POP server.
Dave Love <fx@gnu.org>
parents:
diff changeset
11555 (setenv "MAILHOST" "pop.your-isp.com")
Dave Love <fx@gnu.org>
parents:
diff changeset
11556 (setq nnmail-spool-file "po:username")
Dave Love <fx@gnu.org>
parents:
diff changeset
11557
Dave Love <fx@gnu.org>
parents:
diff changeset
11558 ;;; Say how Gnus is to store the mail. We use nnml groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
11559 (setq gnus-secondary-select-methods '((nnml "")))
Dave Love <fx@gnu.org>
parents:
diff changeset
11560
Dave Love <fx@gnu.org>
parents:
diff changeset
11561 ;;; Make Gnus into an offline newsreader.
Dave Love <fx@gnu.org>
parents:
diff changeset
11562 (gnus-agentize)
Dave Love <fx@gnu.org>
parents:
diff changeset
11563 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
11564
Dave Love <fx@gnu.org>
parents:
diff changeset
11565 That should be it, basically. Put that in your @file{~/.gnus.el} file,
Dave Love <fx@gnu.org>
parents:
diff changeset
11566 edit to suit your needs, start up PPP (or whatever), and type @kbd{M-x
Dave Love <fx@gnu.org>
parents:
diff changeset
11567 gnus}.
Dave Love <fx@gnu.org>
parents:
diff changeset
11568
Dave Love <fx@gnu.org>
parents:
diff changeset
11569 If this is the first time you've run Gnus, you will be subscribed
Dave Love <fx@gnu.org>
parents:
diff changeset
11570 automatically to a few default newsgroups. You'll probably want to
Dave Love <fx@gnu.org>
parents:
diff changeset
11571 subscribe to more groups, and to do that, you have to query the
Dave Love <fx@gnu.org>
parents:
diff changeset
11572 @sc{nntp} server for a complete list of groups with the @kbd{A A}
Dave Love <fx@gnu.org>
parents:
diff changeset
11573 command. This usually takes quite a while, but you only have to do it
Dave Love <fx@gnu.org>
parents:
diff changeset
11574 once.
Dave Love <fx@gnu.org>
parents:
diff changeset
11575
Dave Love <fx@gnu.org>
parents:
diff changeset
11576 After reading and parsing a while, you'll be presented with a list of
Dave Love <fx@gnu.org>
parents:
diff changeset
11577 groups. Subscribe to the ones you want to read with the @kbd{u}
Dave Love <fx@gnu.org>
parents:
diff changeset
11578 command. @kbd{l} to make all the killed groups disappear after you've
Dave Love <fx@gnu.org>
parents:
diff changeset
11579 subscribe to all the groups you want to read. (@kbd{A k} will bring
Dave Love <fx@gnu.org>
parents:
diff changeset
11580 back all the killed groups.)
Dave Love <fx@gnu.org>
parents:
diff changeset
11581
Dave Love <fx@gnu.org>
parents:
diff changeset
11582 You can now read the groups at once, or you can download the articles
Dave Love <fx@gnu.org>
parents:
diff changeset
11583 with the @kbd{J s} command. And then read the rest of this manual to
Dave Love <fx@gnu.org>
parents:
diff changeset
11584 find out which of the other gazillion things you want to customize.
Dave Love <fx@gnu.org>
parents:
diff changeset
11585
Dave Love <fx@gnu.org>
parents:
diff changeset
11586
Dave Love <fx@gnu.org>
parents:
diff changeset
11587 @node Batching Agents
Dave Love <fx@gnu.org>
parents:
diff changeset
11588 @subsection Batching Agents
Dave Love <fx@gnu.org>
parents:
diff changeset
11589
Dave Love <fx@gnu.org>
parents:
diff changeset
11590 Having the Gnus Agent fetch articles (and post whatever messages you've
Dave Love <fx@gnu.org>
parents:
diff changeset
11591 written) is quite easy once you've gotten things set up properly. The
Dave Love <fx@gnu.org>
parents:
diff changeset
11592 following shell script will do everything that is necessary:
Dave Love <fx@gnu.org>
parents:
diff changeset
11593
Dave Love <fx@gnu.org>
parents:
diff changeset
11594 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
11595 #!/bin/sh
Dave Love <fx@gnu.org>
parents:
diff changeset
11596 emacs -batch -l ~/.emacs -f gnus-agent-batch >/dev/null
Dave Love <fx@gnu.org>
parents:
diff changeset
11597 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
11598
Dave Love <fx@gnu.org>
parents:
diff changeset
11599
Dave Love <fx@gnu.org>
parents:
diff changeset
11600
Dave Love <fx@gnu.org>
parents:
diff changeset
11601 @node Scoring
Dave Love <fx@gnu.org>
parents:
diff changeset
11602 @chapter Scoring
Dave Love <fx@gnu.org>
parents:
diff changeset
11603 @cindex scoring
Dave Love <fx@gnu.org>
parents:
diff changeset
11604
Dave Love <fx@gnu.org>
parents:
diff changeset
11605 Other people use @dfn{kill files}, but we here at Gnus Towers like
Dave Love <fx@gnu.org>
parents:
diff changeset
11606 scoring better than killing, so we'd rather switch than fight. They do
Dave Love <fx@gnu.org>
parents:
diff changeset
11607 something completely different as well, so sit up straight and pay
Dave Love <fx@gnu.org>
parents:
diff changeset
11608 attention!
Dave Love <fx@gnu.org>
parents:
diff changeset
11609
Dave Love <fx@gnu.org>
parents:
diff changeset
11610 @vindex gnus-summary-mark-below
Dave Love <fx@gnu.org>
parents:
diff changeset
11611 All articles have a default score (@code{gnus-summary-default-score}),
Dave Love <fx@gnu.org>
parents:
diff changeset
11612 which is 0 by default. This score may be raised or lowered either
Dave Love <fx@gnu.org>
parents:
diff changeset
11613 interactively or by score files. Articles that have a score lower than
Dave Love <fx@gnu.org>
parents:
diff changeset
11614 @code{gnus-summary-mark-below} are marked as read.
Dave Love <fx@gnu.org>
parents:
diff changeset
11615
Dave Love <fx@gnu.org>
parents:
diff changeset
11616 Gnus will read any @dfn{score files} that apply to the current group
Dave Love <fx@gnu.org>
parents:
diff changeset
11617 before generating the summary buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
11618
Dave Love <fx@gnu.org>
parents:
diff changeset
11619 There are several commands in the summary buffer that insert score
Dave Love <fx@gnu.org>
parents:
diff changeset
11620 entries based on the current article. You can, for instance, ask Gnus to
Dave Love <fx@gnu.org>
parents:
diff changeset
11621 lower or increase the score of all articles with a certain subject.
Dave Love <fx@gnu.org>
parents:
diff changeset
11622
Dave Love <fx@gnu.org>
parents:
diff changeset
11623 There are two sorts of scoring entries: Permanent and temporary.
Dave Love <fx@gnu.org>
parents:
diff changeset
11624 Temporary score entries are self-expiring entries. Any entries that are
Dave Love <fx@gnu.org>
parents:
diff changeset
11625 temporary and have not been used for, say, a week, will be removed
Dave Love <fx@gnu.org>
parents:
diff changeset
11626 silently to help keep the sizes of the score files down.
Dave Love <fx@gnu.org>
parents:
diff changeset
11627
Dave Love <fx@gnu.org>
parents:
diff changeset
11628 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
11629 * Summary Score Commands:: Adding score entries for the current group.
Dave Love <fx@gnu.org>
parents:
diff changeset
11630 * Group Score Commands:: General score commands.
Dave Love <fx@gnu.org>
parents:
diff changeset
11631 * Score Variables:: Customize your scoring. (My, what terminology).
Dave Love <fx@gnu.org>
parents:
diff changeset
11632 * Score File Format:: What a score file may contain.
Dave Love <fx@gnu.org>
parents:
diff changeset
11633 * Score File Editing:: You can edit score files by hand as well.
Dave Love <fx@gnu.org>
parents:
diff changeset
11634 * Adaptive Scoring:: Big Sister Gnus knows what you read.
Dave Love <fx@gnu.org>
parents:
diff changeset
11635 * Home Score File:: How to say where new score entries are to go.
Dave Love <fx@gnu.org>
parents:
diff changeset
11636 * Followups To Yourself:: Having Gnus notice when people answer you.
Dave Love <fx@gnu.org>
parents:
diff changeset
11637 * Scoring Tips:: How to score effectively.
Dave Love <fx@gnu.org>
parents:
diff changeset
11638 * Reverse Scoring:: That problem child of old is not problem.
Dave Love <fx@gnu.org>
parents:
diff changeset
11639 * Global Score Files:: Earth-spanning, ear-splitting score files.
Dave Love <fx@gnu.org>
parents:
diff changeset
11640 * Kill Files:: They are still here, but they can be ignored.
Dave Love <fx@gnu.org>
parents:
diff changeset
11641 * Converting Kill Files:: Translating kill files to score files.
Dave Love <fx@gnu.org>
parents:
diff changeset
11642 * GroupLens:: Getting predictions on what you like to read.
Dave Love <fx@gnu.org>
parents:
diff changeset
11643 * Advanced Scoring:: Using logical expressions to build score rules.
Dave Love <fx@gnu.org>
parents:
diff changeset
11644 * Score Decays:: It can be useful to let scores wither away.
Dave Love <fx@gnu.org>
parents:
diff changeset
11645 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
11646
Dave Love <fx@gnu.org>
parents:
diff changeset
11647
Dave Love <fx@gnu.org>
parents:
diff changeset
11648 @node Summary Score Commands
Dave Love <fx@gnu.org>
parents:
diff changeset
11649 @section Summary Score Commands
Dave Love <fx@gnu.org>
parents:
diff changeset
11650 @cindex score commands
Dave Love <fx@gnu.org>
parents:
diff changeset
11651
Dave Love <fx@gnu.org>
parents:
diff changeset
11652 The score commands that alter score entries do not actually modify real
Dave Love <fx@gnu.org>
parents:
diff changeset
11653 score files. That would be too inefficient. Gnus maintains a cache of
Dave Love <fx@gnu.org>
parents:
diff changeset
11654 previously loaded score files, one of which is considered the
Dave Love <fx@gnu.org>
parents:
diff changeset
11655 @dfn{current score file alist}. The score commands simply insert
Dave Love <fx@gnu.org>
parents:
diff changeset
11656 entries into this list, and upon group exit, this list is saved.
Dave Love <fx@gnu.org>
parents:
diff changeset
11657
Dave Love <fx@gnu.org>
parents:
diff changeset
11658 The current score file is by default the group's local score file, even
Dave Love <fx@gnu.org>
parents:
diff changeset
11659 if no such score file actually exists. To insert score commands into
Dave Love <fx@gnu.org>
parents:
diff changeset
11660 some other score file (e.g. @file{all.SCORE}), you must first make this
Dave Love <fx@gnu.org>
parents:
diff changeset
11661 score file the current one.
Dave Love <fx@gnu.org>
parents:
diff changeset
11662
Dave Love <fx@gnu.org>
parents:
diff changeset
11663 General score commands that don't actually change the score file:
Dave Love <fx@gnu.org>
parents:
diff changeset
11664
Dave Love <fx@gnu.org>
parents:
diff changeset
11665 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
11666
Dave Love <fx@gnu.org>
parents:
diff changeset
11667 @item V s
Dave Love <fx@gnu.org>
parents:
diff changeset
11668 @kindex V s (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
11669 @findex gnus-summary-set-score
Dave Love <fx@gnu.org>
parents:
diff changeset
11670 Set the score of the current article (@code{gnus-summary-set-score}).
Dave Love <fx@gnu.org>
parents:
diff changeset
11671
Dave Love <fx@gnu.org>
parents:
diff changeset
11672 @item V S
Dave Love <fx@gnu.org>
parents:
diff changeset
11673 @kindex V S (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
11674 @findex gnus-summary-current-score
Dave Love <fx@gnu.org>
parents:
diff changeset
11675 Display the score of the current article
Dave Love <fx@gnu.org>
parents:
diff changeset
11676 (@code{gnus-summary-current-score}).
Dave Love <fx@gnu.org>
parents:
diff changeset
11677
Dave Love <fx@gnu.org>
parents:
diff changeset
11678 @item V t
Dave Love <fx@gnu.org>
parents:
diff changeset
11679 @kindex V t (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
11680 @findex gnus-score-find-trace
Dave Love <fx@gnu.org>
parents:
diff changeset
11681 Display all score rules that have been used on the current article
Dave Love <fx@gnu.org>
parents:
diff changeset
11682 (@code{gnus-score-find-trace}).
Dave Love <fx@gnu.org>
parents:
diff changeset
11683
Dave Love <fx@gnu.org>
parents:
diff changeset
11684 @item V R
Dave Love <fx@gnu.org>
parents:
diff changeset
11685 @kindex V R (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
11686 @findex gnus-summary-rescore
Dave Love <fx@gnu.org>
parents:
diff changeset
11687 Run the current summary through the scoring process
Dave Love <fx@gnu.org>
parents:
diff changeset
11688 (@code{gnus-summary-rescore}). This might be useful if you're playing
Dave Love <fx@gnu.org>
parents:
diff changeset
11689 around with your score files behind Gnus' back and want to see the
Dave Love <fx@gnu.org>
parents:
diff changeset
11690 effect you're having.
Dave Love <fx@gnu.org>
parents:
diff changeset
11691
Dave Love <fx@gnu.org>
parents:
diff changeset
11692 @item V c
Dave Love <fx@gnu.org>
parents:
diff changeset
11693 @kindex V c (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
11694 @findex gnus-score-change-score-file
Dave Love <fx@gnu.org>
parents:
diff changeset
11695 Make a different score file the current
Dave Love <fx@gnu.org>
parents:
diff changeset
11696 (@code{gnus-score-change-score-file}).
Dave Love <fx@gnu.org>
parents:
diff changeset
11697
Dave Love <fx@gnu.org>
parents:
diff changeset
11698 @item V e
Dave Love <fx@gnu.org>
parents:
diff changeset
11699 @kindex V e (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
11700 @findex gnus-score-edit-current-scores
Dave Love <fx@gnu.org>
parents:
diff changeset
11701 Edit the current score file (@code{gnus-score-edit-current-scores}).
Dave Love <fx@gnu.org>
parents:
diff changeset
11702 You will be popped into a @code{gnus-score-mode} buffer (@pxref{Score
Dave Love <fx@gnu.org>
parents:
diff changeset
11703 File Editing}).
Dave Love <fx@gnu.org>
parents:
diff changeset
11704
Dave Love <fx@gnu.org>
parents:
diff changeset
11705 @item V f
Dave Love <fx@gnu.org>
parents:
diff changeset
11706 @kindex V f (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
11707 @findex gnus-score-edit-file
Dave Love <fx@gnu.org>
parents:
diff changeset
11708 Edit a score file and make this score file the current one
Dave Love <fx@gnu.org>
parents:
diff changeset
11709 (@code{gnus-score-edit-file}).
Dave Love <fx@gnu.org>
parents:
diff changeset
11710
Dave Love <fx@gnu.org>
parents:
diff changeset
11711 @item V F
Dave Love <fx@gnu.org>
parents:
diff changeset
11712 @kindex V F (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
11713 @findex gnus-score-flush-cache
Dave Love <fx@gnu.org>
parents:
diff changeset
11714 Flush the score cache (@code{gnus-score-flush-cache}). This is useful
Dave Love <fx@gnu.org>
parents:
diff changeset
11715 after editing score files.
Dave Love <fx@gnu.org>
parents:
diff changeset
11716
Dave Love <fx@gnu.org>
parents:
diff changeset
11717 @item V C
Dave Love <fx@gnu.org>
parents:
diff changeset
11718 @kindex V C (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
11719 @findex gnus-score-customize
Dave Love <fx@gnu.org>
parents:
diff changeset
11720 Customize a score file in a visually pleasing manner
Dave Love <fx@gnu.org>
parents:
diff changeset
11721 (@code{gnus-score-customize}).
Dave Love <fx@gnu.org>
parents:
diff changeset
11722
Dave Love <fx@gnu.org>
parents:
diff changeset
11723 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
11724
Dave Love <fx@gnu.org>
parents:
diff changeset
11725 The rest of these commands modify the local score file.
Dave Love <fx@gnu.org>
parents:
diff changeset
11726
Dave Love <fx@gnu.org>
parents:
diff changeset
11727 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
11728
Dave Love <fx@gnu.org>
parents:
diff changeset
11729 @item V m
Dave Love <fx@gnu.org>
parents:
diff changeset
11730 @kindex V m (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
11731 @findex gnus-score-set-mark-below
Dave Love <fx@gnu.org>
parents:
diff changeset
11732 Prompt for a score, and mark all articles with a score below this as
Dave Love <fx@gnu.org>
parents:
diff changeset
11733 read (@code{gnus-score-set-mark-below}).
Dave Love <fx@gnu.org>
parents:
diff changeset
11734
Dave Love <fx@gnu.org>
parents:
diff changeset
11735 @item V x
Dave Love <fx@gnu.org>
parents:
diff changeset
11736 @kindex V x (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
11737 @findex gnus-score-set-expunge-below
Dave Love <fx@gnu.org>
parents:
diff changeset
11738 Prompt for a score, and add a score rule to the current score file to
Dave Love <fx@gnu.org>
parents:
diff changeset
11739 expunge all articles below this score
Dave Love <fx@gnu.org>
parents:
diff changeset
11740 (@code{gnus-score-set-expunge-below}).
Dave Love <fx@gnu.org>
parents:
diff changeset
11741 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
11742
Dave Love <fx@gnu.org>
parents:
diff changeset
11743 The keystrokes for actually making score entries follow a very regular
Dave Love <fx@gnu.org>
parents:
diff changeset
11744 pattern, so there's no need to list all the commands. (Hundreds of
Dave Love <fx@gnu.org>
parents:
diff changeset
11745 them.)
Dave Love <fx@gnu.org>
parents:
diff changeset
11746
Dave Love <fx@gnu.org>
parents:
diff changeset
11747 @findex gnus-summary-increase-score
Dave Love <fx@gnu.org>
parents:
diff changeset
11748 @findex gnus-summary-lower-score
Dave Love <fx@gnu.org>
parents:
diff changeset
11749
Dave Love <fx@gnu.org>
parents:
diff changeset
11750 @enumerate
Dave Love <fx@gnu.org>
parents:
diff changeset
11751 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
11752 The first key is either @kbd{I} (upper case i) for increasing the score
Dave Love <fx@gnu.org>
parents:
diff changeset
11753 or @kbd{L} for lowering the score.
Dave Love <fx@gnu.org>
parents:
diff changeset
11754 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
11755 The second key says what header you want to score on. The following
Dave Love <fx@gnu.org>
parents:
diff changeset
11756 keys are available:
Dave Love <fx@gnu.org>
parents:
diff changeset
11757 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
11758
Dave Love <fx@gnu.org>
parents:
diff changeset
11759 @item a
Dave Love <fx@gnu.org>
parents:
diff changeset
11760 Score on the author name.
Dave Love <fx@gnu.org>
parents:
diff changeset
11761
Dave Love <fx@gnu.org>
parents:
diff changeset
11762 @item s
Dave Love <fx@gnu.org>
parents:
diff changeset
11763 Score on the subject line.
Dave Love <fx@gnu.org>
parents:
diff changeset
11764
Dave Love <fx@gnu.org>
parents:
diff changeset
11765 @item x
Dave Love <fx@gnu.org>
parents:
diff changeset
11766 Score on the Xref line---i.e., the cross-posting line.
Dave Love <fx@gnu.org>
parents:
diff changeset
11767
Dave Love <fx@gnu.org>
parents:
diff changeset
11768 @item r
Dave Love <fx@gnu.org>
parents:
diff changeset
11769 Score on the References line.
Dave Love <fx@gnu.org>
parents:
diff changeset
11770
Dave Love <fx@gnu.org>
parents:
diff changeset
11771 @item d
Dave Love <fx@gnu.org>
parents:
diff changeset
11772 Score on the date.
Dave Love <fx@gnu.org>
parents:
diff changeset
11773
Dave Love <fx@gnu.org>
parents:
diff changeset
11774 @item l
Dave Love <fx@gnu.org>
parents:
diff changeset
11775 Score on the number of lines.
Dave Love <fx@gnu.org>
parents:
diff changeset
11776
Dave Love <fx@gnu.org>
parents:
diff changeset
11777 @item i
Dave Love <fx@gnu.org>
parents:
diff changeset
11778 Score on the Message-ID.
Dave Love <fx@gnu.org>
parents:
diff changeset
11779
Dave Love <fx@gnu.org>
parents:
diff changeset
11780 @item f
Dave Love <fx@gnu.org>
parents:
diff changeset
11781 Score on followups.
Dave Love <fx@gnu.org>
parents:
diff changeset
11782
Dave Love <fx@gnu.org>
parents:
diff changeset
11783 @item b
Dave Love <fx@gnu.org>
parents:
diff changeset
11784 Score on the body.
Dave Love <fx@gnu.org>
parents:
diff changeset
11785
Dave Love <fx@gnu.org>
parents:
diff changeset
11786 @item h
Dave Love <fx@gnu.org>
parents:
diff changeset
11787 Score on the head.
Dave Love <fx@gnu.org>
parents:
diff changeset
11788
Dave Love <fx@gnu.org>
parents:
diff changeset
11789 @item t
Dave Love <fx@gnu.org>
parents:
diff changeset
11790 Score on thead.
Dave Love <fx@gnu.org>
parents:
diff changeset
11791
Dave Love <fx@gnu.org>
parents:
diff changeset
11792 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
11793
Dave Love <fx@gnu.org>
parents:
diff changeset
11794 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
11795 The third key is the match type. Which match types are valid depends on
Dave Love <fx@gnu.org>
parents:
diff changeset
11796 what headers you are scoring on.
Dave Love <fx@gnu.org>
parents:
diff changeset
11797
Dave Love <fx@gnu.org>
parents:
diff changeset
11798 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
11799
Dave Love <fx@gnu.org>
parents:
diff changeset
11800 @item strings
Dave Love <fx@gnu.org>
parents:
diff changeset
11801
Dave Love <fx@gnu.org>
parents:
diff changeset
11802 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
11803
Dave Love <fx@gnu.org>
parents:
diff changeset
11804 @item e
Dave Love <fx@gnu.org>
parents:
diff changeset
11805 Exact matching.
Dave Love <fx@gnu.org>
parents:
diff changeset
11806
Dave Love <fx@gnu.org>
parents:
diff changeset
11807 @item s
Dave Love <fx@gnu.org>
parents:
diff changeset
11808 Substring matching.
Dave Love <fx@gnu.org>
parents:
diff changeset
11809
Dave Love <fx@gnu.org>
parents:
diff changeset
11810 @item f
Dave Love <fx@gnu.org>
parents:
diff changeset
11811 Fuzzy matching (@pxref{Fuzzy Matching}).
Dave Love <fx@gnu.org>
parents:
diff changeset
11812
Dave Love <fx@gnu.org>
parents:
diff changeset
11813 @item r
Dave Love <fx@gnu.org>
parents:
diff changeset
11814 Regexp matching
Dave Love <fx@gnu.org>
parents:
diff changeset
11815 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
11816
Dave Love <fx@gnu.org>
parents:
diff changeset
11817 @item date
Dave Love <fx@gnu.org>
parents:
diff changeset
11818 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
11819
Dave Love <fx@gnu.org>
parents:
diff changeset
11820 @item b
Dave Love <fx@gnu.org>
parents:
diff changeset
11821 Before date.
Dave Love <fx@gnu.org>
parents:
diff changeset
11822
Dave Love <fx@gnu.org>
parents:
diff changeset
11823 @item a
Dave Love <fx@gnu.org>
parents:
diff changeset
11824 After date.
Dave Love <fx@gnu.org>
parents:
diff changeset
11825
Dave Love <fx@gnu.org>
parents:
diff changeset
11826 @item n
Dave Love <fx@gnu.org>
parents:
diff changeset
11827 This date.
Dave Love <fx@gnu.org>
parents:
diff changeset
11828 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
11829
Dave Love <fx@gnu.org>
parents:
diff changeset
11830 @item number
Dave Love <fx@gnu.org>
parents:
diff changeset
11831 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
11832
Dave Love <fx@gnu.org>
parents:
diff changeset
11833 @item <
Dave Love <fx@gnu.org>
parents:
diff changeset
11834 Less than number.
Dave Love <fx@gnu.org>
parents:
diff changeset
11835
Dave Love <fx@gnu.org>
parents:
diff changeset
11836 @item =
Dave Love <fx@gnu.org>
parents:
diff changeset
11837 Equal to number.
Dave Love <fx@gnu.org>
parents:
diff changeset
11838
Dave Love <fx@gnu.org>
parents:
diff changeset
11839 @item >
Dave Love <fx@gnu.org>
parents:
diff changeset
11840 Greater than number.
Dave Love <fx@gnu.org>
parents:
diff changeset
11841 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
11842 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
11843
Dave Love <fx@gnu.org>
parents:
diff changeset
11844 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
11845 The fourth and final key says whether this is a temporary (i.e., expiring)
Dave Love <fx@gnu.org>
parents:
diff changeset
11846 score entry, or a permanent (i.e., non-expiring) score entry, or whether
Dave Love <fx@gnu.org>
parents:
diff changeset
11847 it is to be done immediately, without adding to the score file.
Dave Love <fx@gnu.org>
parents:
diff changeset
11848 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
11849
Dave Love <fx@gnu.org>
parents:
diff changeset
11850 @item t
Dave Love <fx@gnu.org>
parents:
diff changeset
11851 Temporary score entry.
Dave Love <fx@gnu.org>
parents:
diff changeset
11852
Dave Love <fx@gnu.org>
parents:
diff changeset
11853 @item p
Dave Love <fx@gnu.org>
parents:
diff changeset
11854 Permanent score entry.
Dave Love <fx@gnu.org>
parents:
diff changeset
11855
Dave Love <fx@gnu.org>
parents:
diff changeset
11856 @item i
Dave Love <fx@gnu.org>
parents:
diff changeset
11857 Immediately scoring.
Dave Love <fx@gnu.org>
parents:
diff changeset
11858 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
11859
Dave Love <fx@gnu.org>
parents:
diff changeset
11860 @end enumerate
Dave Love <fx@gnu.org>
parents:
diff changeset
11861
Dave Love <fx@gnu.org>
parents:
diff changeset
11862 So, let's say you want to increase the score on the current author with
Dave Love <fx@gnu.org>
parents:
diff changeset
11863 exact matching permanently: @kbd{I a e p}. If you want to lower the
Dave Love <fx@gnu.org>
parents:
diff changeset
11864 score based on the subject line, using substring matching, and make a
Dave Love <fx@gnu.org>
parents:
diff changeset
11865 temporary score entry: @kbd{L s s t}. Pretty easy.
Dave Love <fx@gnu.org>
parents:
diff changeset
11866
Dave Love <fx@gnu.org>
parents:
diff changeset
11867 To make things a bit more complicated, there are shortcuts. If you use
Dave Love <fx@gnu.org>
parents:
diff changeset
11868 a capital letter on either the second or third keys, Gnus will use
Dave Love <fx@gnu.org>
parents:
diff changeset
11869 defaults for the remaining one or two keystrokes. The defaults are
Dave Love <fx@gnu.org>
parents:
diff changeset
11870 ``substring'' and ``temporary''. So @kbd{I A} is the same as @kbd{I a s
Dave Love <fx@gnu.org>
parents:
diff changeset
11871 t}, and @kbd{I a R} is the same as @kbd{I a r t}.
Dave Love <fx@gnu.org>
parents:
diff changeset
11872
Dave Love <fx@gnu.org>
parents:
diff changeset
11873 These functions take both the numerical prefix and the symbolic prefix
Dave Love <fx@gnu.org>
parents:
diff changeset
11874 (@pxref{Symbolic Prefixes}). A numerical prefix says how much to lower
Dave Love <fx@gnu.org>
parents:
diff changeset
11875 (or increase) the score of the article. A symbolic prefix of @code{a}
Dave Love <fx@gnu.org>
parents:
diff changeset
11876 says to use the @file{all.SCORE} file for the command instead of the
Dave Love <fx@gnu.org>
parents:
diff changeset
11877 current score file.
Dave Love <fx@gnu.org>
parents:
diff changeset
11878
Dave Love <fx@gnu.org>
parents:
diff changeset
11879 @vindex gnus-score-mimic-keymap
Dave Love <fx@gnu.org>
parents:
diff changeset
11880 The @code{gnus-score-mimic-keymap} says whether these commands will
Dave Love <fx@gnu.org>
parents:
diff changeset
11881 pretend they are keymaps or not.
Dave Love <fx@gnu.org>
parents:
diff changeset
11882
Dave Love <fx@gnu.org>
parents:
diff changeset
11883
Dave Love <fx@gnu.org>
parents:
diff changeset
11884 @node Group Score Commands
Dave Love <fx@gnu.org>
parents:
diff changeset
11885 @section Group Score Commands
Dave Love <fx@gnu.org>
parents:
diff changeset
11886 @cindex group score commands
Dave Love <fx@gnu.org>
parents:
diff changeset
11887
Dave Love <fx@gnu.org>
parents:
diff changeset
11888 There aren't many of these as yet, I'm afraid.
Dave Love <fx@gnu.org>
parents:
diff changeset
11889
Dave Love <fx@gnu.org>
parents:
diff changeset
11890 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
11891
Dave Love <fx@gnu.org>
parents:
diff changeset
11892 @item W f
Dave Love <fx@gnu.org>
parents:
diff changeset
11893 @kindex W f (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
11894 @findex gnus-score-flush-cache
Dave Love <fx@gnu.org>
parents:
diff changeset
11895 Gnus maintains a cache of score alists to avoid having to reload them
Dave Love <fx@gnu.org>
parents:
diff changeset
11896 all the time. This command will flush the cache
Dave Love <fx@gnu.org>
parents:
diff changeset
11897 (@code{gnus-score-flush-cache}).
Dave Love <fx@gnu.org>
parents:
diff changeset
11898
Dave Love <fx@gnu.org>
parents:
diff changeset
11899 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
11900
Dave Love <fx@gnu.org>
parents:
diff changeset
11901 You can do scoring from the command line by saying something like:
Dave Love <fx@gnu.org>
parents:
diff changeset
11902
Dave Love <fx@gnu.org>
parents:
diff changeset
11903 @findex gnus-batch-score
Dave Love <fx@gnu.org>
parents:
diff changeset
11904 @cindex batch scoring
Dave Love <fx@gnu.org>
parents:
diff changeset
11905 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
11906 $ emacs -batch -l ~/.emacs -l gnus -f gnus-batch-score
Dave Love <fx@gnu.org>
parents:
diff changeset
11907 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
11908
Dave Love <fx@gnu.org>
parents:
diff changeset
11909
Dave Love <fx@gnu.org>
parents:
diff changeset
11910 @node Score Variables
Dave Love <fx@gnu.org>
parents:
diff changeset
11911 @section Score Variables
Dave Love <fx@gnu.org>
parents:
diff changeset
11912 @cindex score variables
Dave Love <fx@gnu.org>
parents:
diff changeset
11913
Dave Love <fx@gnu.org>
parents:
diff changeset
11914 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
11915
Dave Love <fx@gnu.org>
parents:
diff changeset
11916 @item gnus-use-scoring
Dave Love <fx@gnu.org>
parents:
diff changeset
11917 @vindex gnus-use-scoring
Dave Love <fx@gnu.org>
parents:
diff changeset
11918 If @code{nil}, Gnus will not check for score files, and will not, in
Dave Love <fx@gnu.org>
parents:
diff changeset
11919 general, do any score-related work. This is @code{t} by default.
Dave Love <fx@gnu.org>
parents:
diff changeset
11920
Dave Love <fx@gnu.org>
parents:
diff changeset
11921 @item gnus-kill-killed
Dave Love <fx@gnu.org>
parents:
diff changeset
11922 @vindex gnus-kill-killed
Dave Love <fx@gnu.org>
parents:
diff changeset
11923 If this variable is @code{nil}, Gnus will never apply score files to
Dave Love <fx@gnu.org>
parents:
diff changeset
11924 articles that have already been through the kill process. While this
Dave Love <fx@gnu.org>
parents:
diff changeset
11925 may save you lots of time, it also means that if you apply a kill file
Dave Love <fx@gnu.org>
parents:
diff changeset
11926 to a group, and then change the kill file and want to run it over you
Dave Love <fx@gnu.org>
parents:
diff changeset
11927 group again to kill more articles, it won't work. You have to set this
Dave Love <fx@gnu.org>
parents:
diff changeset
11928 variable to @code{t} to do that. (It is @code{t} by default.)
Dave Love <fx@gnu.org>
parents:
diff changeset
11929
Dave Love <fx@gnu.org>
parents:
diff changeset
11930 @item gnus-kill-files-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
11931 @vindex gnus-kill-files-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
11932 All kill and score files will be stored in this directory, which is
Dave Love <fx@gnu.org>
parents:
diff changeset
11933 initialized from the @code{SAVEDIR} environment variable by default.
Dave Love <fx@gnu.org>
parents:
diff changeset
11934 This is @file{~/News/} by default.
Dave Love <fx@gnu.org>
parents:
diff changeset
11935
Dave Love <fx@gnu.org>
parents:
diff changeset
11936 @item gnus-score-file-suffix
Dave Love <fx@gnu.org>
parents:
diff changeset
11937 @vindex gnus-score-file-suffix
Dave Love <fx@gnu.org>
parents:
diff changeset
11938 Suffix to add to the group name to arrive at the score file name
Dave Love <fx@gnu.org>
parents:
diff changeset
11939 (@samp{SCORE} by default.)
Dave Love <fx@gnu.org>
parents:
diff changeset
11940
Dave Love <fx@gnu.org>
parents:
diff changeset
11941 @item gnus-score-uncacheable-files
Dave Love <fx@gnu.org>
parents:
diff changeset
11942 @vindex gnus-score-uncacheable-files
Dave Love <fx@gnu.org>
parents:
diff changeset
11943 @cindex score cache
Dave Love <fx@gnu.org>
parents:
diff changeset
11944 All score files are normally cached to avoid excessive re-loading of
Dave Love <fx@gnu.org>
parents:
diff changeset
11945 score files. However, if this might make you Emacs grow big and
Dave Love <fx@gnu.org>
parents:
diff changeset
11946 bloated, so this regexp can be used to weed out score files unlikely to be needed again. It would be a bad idea to deny caching of
Dave Love <fx@gnu.org>
parents:
diff changeset
11947 @file{all.SCORE}, while it might be a good idea to not cache
Dave Love <fx@gnu.org>
parents:
diff changeset
11948 @file{comp.infosystems.www.authoring.misc.ADAPT}. In fact, this
Dave Love <fx@gnu.org>
parents:
diff changeset
11949 variable is @samp{ADAPT$} by default, so no adaptive score files will
Dave Love <fx@gnu.org>
parents:
diff changeset
11950 be cached.
Dave Love <fx@gnu.org>
parents:
diff changeset
11951
Dave Love <fx@gnu.org>
parents:
diff changeset
11952 @item gnus-save-score
Dave Love <fx@gnu.org>
parents:
diff changeset
11953 @vindex gnus-save-score
Dave Love <fx@gnu.org>
parents:
diff changeset
11954 If you have really complicated score files, and do lots of batch
Dave Love <fx@gnu.org>
parents:
diff changeset
11955 scoring, then you might set this variable to @code{t}. This will make
Dave Love <fx@gnu.org>
parents:
diff changeset
11956 Gnus save the scores into the @file{.newsrc.eld} file.
Dave Love <fx@gnu.org>
parents:
diff changeset
11957
Dave Love <fx@gnu.org>
parents:
diff changeset
11958 @item gnus-score-interactive-default-score
Dave Love <fx@gnu.org>
parents:
diff changeset
11959 @vindex gnus-score-interactive-default-score
Dave Love <fx@gnu.org>
parents:
diff changeset
11960 Score used by all the interactive raise/lower commands to raise/lower
Dave Love <fx@gnu.org>
parents:
diff changeset
11961 score with. Default is 1000, which may seem excessive, but this is to
Dave Love <fx@gnu.org>
parents:
diff changeset
11962 ensure that the adaptive scoring scheme gets enough room to play with.
Dave Love <fx@gnu.org>
parents:
diff changeset
11963 We don't want the small changes from the adaptive scoring to overwrite
Dave Love <fx@gnu.org>
parents:
diff changeset
11964 manually entered data.
Dave Love <fx@gnu.org>
parents:
diff changeset
11965
Dave Love <fx@gnu.org>
parents:
diff changeset
11966 @item gnus-summary-default-score
Dave Love <fx@gnu.org>
parents:
diff changeset
11967 @vindex gnus-summary-default-score
Dave Love <fx@gnu.org>
parents:
diff changeset
11968 Default score of an article, which is 0 by default.
Dave Love <fx@gnu.org>
parents:
diff changeset
11969
Dave Love <fx@gnu.org>
parents:
diff changeset
11970 @item gnus-summary-expunge-below
Dave Love <fx@gnu.org>
parents:
diff changeset
11971 @vindex gnus-summary-expunge-below
Dave Love <fx@gnu.org>
parents:
diff changeset
11972 Don't display the summary lines of articles that have scores lower than
Dave Love <fx@gnu.org>
parents:
diff changeset
11973 this variable. This is @code{nil} by default, which means that no
Dave Love <fx@gnu.org>
parents:
diff changeset
11974 articles will be hidden. This variable is local to the summary buffers,
Dave Love <fx@gnu.org>
parents:
diff changeset
11975 and has to be set from @code{gnus-summary-mode-hook}.
Dave Love <fx@gnu.org>
parents:
diff changeset
11976
Dave Love <fx@gnu.org>
parents:
diff changeset
11977 @item gnus-score-over-mark
Dave Love <fx@gnu.org>
parents:
diff changeset
11978 @vindex gnus-score-over-mark
Dave Love <fx@gnu.org>
parents:
diff changeset
11979 Mark (in the third column) used for articles with a score over the
Dave Love <fx@gnu.org>
parents:
diff changeset
11980 default. Default is @samp{+}.
Dave Love <fx@gnu.org>
parents:
diff changeset
11981
Dave Love <fx@gnu.org>
parents:
diff changeset
11982 @item gnus-score-below-mark
Dave Love <fx@gnu.org>
parents:
diff changeset
11983 @vindex gnus-score-below-mark
Dave Love <fx@gnu.org>
parents:
diff changeset
11984 Mark (in the third column) used for articles with a score below the
Dave Love <fx@gnu.org>
parents:
diff changeset
11985 default. Default is @samp{-}.
Dave Love <fx@gnu.org>
parents:
diff changeset
11986
Dave Love <fx@gnu.org>
parents:
diff changeset
11987 @item gnus-score-find-score-files-function
Dave Love <fx@gnu.org>
parents:
diff changeset
11988 @vindex gnus-score-find-score-files-function
Dave Love <fx@gnu.org>
parents:
diff changeset
11989 Function used to find score files for the current group. This function
Dave Love <fx@gnu.org>
parents:
diff changeset
11990 is called with the name of the group as the argument.
Dave Love <fx@gnu.org>
parents:
diff changeset
11991
Dave Love <fx@gnu.org>
parents:
diff changeset
11992 Predefined functions available are:
Dave Love <fx@gnu.org>
parents:
diff changeset
11993 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
11994
Dave Love <fx@gnu.org>
parents:
diff changeset
11995 @item gnus-score-find-single
Dave Love <fx@gnu.org>
parents:
diff changeset
11996 @findex gnus-score-find-single
Dave Love <fx@gnu.org>
parents:
diff changeset
11997 Only apply the group's own score file.
Dave Love <fx@gnu.org>
parents:
diff changeset
11998
Dave Love <fx@gnu.org>
parents:
diff changeset
11999 @item gnus-score-find-bnews
Dave Love <fx@gnu.org>
parents:
diff changeset
12000 @findex gnus-score-find-bnews
Dave Love <fx@gnu.org>
parents:
diff changeset
12001 Apply all score files that match, using bnews syntax. This is the
Dave Love <fx@gnu.org>
parents:
diff changeset
12002 default. If the current group is @samp{gnu.emacs.gnus}, for instance,
Dave Love <fx@gnu.org>
parents:
diff changeset
12003 @file{all.emacs.all.SCORE}, @file{not.alt.all.SCORE} and
Dave Love <fx@gnu.org>
parents:
diff changeset
12004 @file{gnu.all.SCORE} would all apply. In short, the instances of
Dave Love <fx@gnu.org>
parents:
diff changeset
12005 @samp{all} in the score file names are translated into @samp{.*}, and
Dave Love <fx@gnu.org>
parents:
diff changeset
12006 then a regexp match is done.
Dave Love <fx@gnu.org>
parents:
diff changeset
12007
Dave Love <fx@gnu.org>
parents:
diff changeset
12008 This means that if you have some score entries that you want to apply to
Dave Love <fx@gnu.org>
parents:
diff changeset
12009 all groups, then you put those entries in the @file{all.SCORE} file.
Dave Love <fx@gnu.org>
parents:
diff changeset
12010
Dave Love <fx@gnu.org>
parents:
diff changeset
12011 The score files are applied in a semi-random order, although Gnus will
Dave Love <fx@gnu.org>
parents:
diff changeset
12012 try to apply the more general score files before the more specific score
Dave Love <fx@gnu.org>
parents:
diff changeset
12013 files. It does this by looking at the number of elements in the score
Dave Love <fx@gnu.org>
parents:
diff changeset
12014 file names---discarding the @samp{all} elements.
Dave Love <fx@gnu.org>
parents:
diff changeset
12015
Dave Love <fx@gnu.org>
parents:
diff changeset
12016 @item gnus-score-find-hierarchical
Dave Love <fx@gnu.org>
parents:
diff changeset
12017 @findex gnus-score-find-hierarchical
Dave Love <fx@gnu.org>
parents:
diff changeset
12018 Apply all score files from all the parent groups. This means that you
Dave Love <fx@gnu.org>
parents:
diff changeset
12019 can't have score files like @file{all.SCORE}, but you can have
Dave Love <fx@gnu.org>
parents:
diff changeset
12020 @file{SCORE}, @file{comp.SCORE} and @file{comp.emacs.SCORE}.
Dave Love <fx@gnu.org>
parents:
diff changeset
12021
Dave Love <fx@gnu.org>
parents:
diff changeset
12022 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
12023 This variable can also be a list of functions. In that case, all these
Dave Love <fx@gnu.org>
parents:
diff changeset
12024 functions will be called, and all the returned lists of score files will
Dave Love <fx@gnu.org>
parents:
diff changeset
12025 be applied. These functions can also return lists of score alists
Dave Love <fx@gnu.org>
parents:
diff changeset
12026 directly. In that case, the functions that return these non-file score
Dave Love <fx@gnu.org>
parents:
diff changeset
12027 alists should probably be placed before the ``real'' score file
Dave Love <fx@gnu.org>
parents:
diff changeset
12028 functions, to ensure that the last score file returned is the local
Dave Love <fx@gnu.org>
parents:
diff changeset
12029 score file. Phu.
Dave Love <fx@gnu.org>
parents:
diff changeset
12030
Dave Love <fx@gnu.org>
parents:
diff changeset
12031 @item gnus-score-expiry-days
Dave Love <fx@gnu.org>
parents:
diff changeset
12032 @vindex gnus-score-expiry-days
Dave Love <fx@gnu.org>
parents:
diff changeset
12033 This variable says how many days should pass before an unused score file
Dave Love <fx@gnu.org>
parents:
diff changeset
12034 entry is expired. If this variable is @code{nil}, no score file entries
Dave Love <fx@gnu.org>
parents:
diff changeset
12035 are expired. It's 7 by default.
Dave Love <fx@gnu.org>
parents:
diff changeset
12036
Dave Love <fx@gnu.org>
parents:
diff changeset
12037 @item gnus-update-score-entry-dates
Dave Love <fx@gnu.org>
parents:
diff changeset
12038 @vindex gnus-update-score-entry-dates
Dave Love <fx@gnu.org>
parents:
diff changeset
12039 If this variable is non-@code{nil}, matching score entries will have
Dave Love <fx@gnu.org>
parents:
diff changeset
12040 their dates updated. (This is how Gnus controls expiry---all
Dave Love <fx@gnu.org>
parents:
diff changeset
12041 non-matching entries will become too old while matching entries will
Dave Love <fx@gnu.org>
parents:
diff changeset
12042 stay fresh and young.) However, if you set this variable to @code{nil},
Dave Love <fx@gnu.org>
parents:
diff changeset
12043 even matching entries will grow old and will have to face that oh-so
Dave Love <fx@gnu.org>
parents:
diff changeset
12044 grim reaper.
Dave Love <fx@gnu.org>
parents:
diff changeset
12045
Dave Love <fx@gnu.org>
parents:
diff changeset
12046 @item gnus-score-after-write-file-function
Dave Love <fx@gnu.org>
parents:
diff changeset
12047 @vindex gnus-score-after-write-file-function
Dave Love <fx@gnu.org>
parents:
diff changeset
12048 Function called with the name of the score file just written.
Dave Love <fx@gnu.org>
parents:
diff changeset
12049
Dave Love <fx@gnu.org>
parents:
diff changeset
12050 @item gnus-score-thread-simplify
Dave Love <fx@gnu.org>
parents:
diff changeset
12051 @vindex gnus-score-thread-simplify
Dave Love <fx@gnu.org>
parents:
diff changeset
12052 If this variable is non-@code{nil}, article subjects will be simplified
Dave Love <fx@gnu.org>
parents:
diff changeset
12053 for subject scoring purposes in the same manner as with
Dave Love <fx@gnu.org>
parents:
diff changeset
12054 threading---according to the current value of
Dave Love <fx@gnu.org>
parents:
diff changeset
12055 gnus-simplify-subject-functions. If the scoring entry uses
Dave Love <fx@gnu.org>
parents:
diff changeset
12056 @code{substring} or @code{exact} matching, the match will also be
Dave Love <fx@gnu.org>
parents:
diff changeset
12057 simplified in this manner.
Dave Love <fx@gnu.org>
parents:
diff changeset
12058
Dave Love <fx@gnu.org>
parents:
diff changeset
12059 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
12060
Dave Love <fx@gnu.org>
parents:
diff changeset
12061
Dave Love <fx@gnu.org>
parents:
diff changeset
12062 @node Score File Format
Dave Love <fx@gnu.org>
parents:
diff changeset
12063 @section Score File Format
Dave Love <fx@gnu.org>
parents:
diff changeset
12064 @cindex score file format
Dave Love <fx@gnu.org>
parents:
diff changeset
12065
Dave Love <fx@gnu.org>
parents:
diff changeset
12066 A score file is an @code{emacs-lisp} file that normally contains just a
Dave Love <fx@gnu.org>
parents:
diff changeset
12067 single form. Casual users are not expected to edit these files;
Dave Love <fx@gnu.org>
parents:
diff changeset
12068 everything can be changed from the summary buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
12069
Dave Love <fx@gnu.org>
parents:
diff changeset
12070 Anyway, if you'd like to dig into it yourself, here's an example:
Dave Love <fx@gnu.org>
parents:
diff changeset
12071
Dave Love <fx@gnu.org>
parents:
diff changeset
12072 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
12073 (("from"
Dave Love <fx@gnu.org>
parents:
diff changeset
12074 ("Lars Ingebrigtsen" -10000)
Dave Love <fx@gnu.org>
parents:
diff changeset
12075 ("Per Abrahamsen")
Dave Love <fx@gnu.org>
parents:
diff changeset
12076 ("larsi\\|lmi" -50000 nil R))
Dave Love <fx@gnu.org>
parents:
diff changeset
12077 ("subject"
Dave Love <fx@gnu.org>
parents:
diff changeset
12078 ("Ding is Badd" nil 728373))
Dave Love <fx@gnu.org>
parents:
diff changeset
12079 ("xref"
Dave Love <fx@gnu.org>
parents:
diff changeset
12080 ("alt.politics" -1000 728372 s))
Dave Love <fx@gnu.org>
parents:
diff changeset
12081 ("lines"
Dave Love <fx@gnu.org>
parents:
diff changeset
12082 (2 -100 nil <))
Dave Love <fx@gnu.org>
parents:
diff changeset
12083 (mark 0)
Dave Love <fx@gnu.org>
parents:
diff changeset
12084 (expunge -1000)
Dave Love <fx@gnu.org>
parents:
diff changeset
12085 (mark-and-expunge -10)
Dave Love <fx@gnu.org>
parents:
diff changeset
12086 (read-only nil)
Dave Love <fx@gnu.org>
parents:
diff changeset
12087 (orphan -10)
Dave Love <fx@gnu.org>
parents:
diff changeset
12088 (adapt t)
Dave Love <fx@gnu.org>
parents:
diff changeset
12089 (files "/hom/larsi/News/gnu.SCORE")
Dave Love <fx@gnu.org>
parents:
diff changeset
12090 (exclude-files "all.SCORE")
Dave Love <fx@gnu.org>
parents:
diff changeset
12091 (local (gnus-newsgroup-auto-expire t)
Dave Love <fx@gnu.org>
parents:
diff changeset
12092 (gnus-summary-make-false-root empty))
Dave Love <fx@gnu.org>
parents:
diff changeset
12093 (eval (ding)))
Dave Love <fx@gnu.org>
parents:
diff changeset
12094 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
12095
Dave Love <fx@gnu.org>
parents:
diff changeset
12096 This example demonstrates most score file elements. For a different
Dave Love <fx@gnu.org>
parents:
diff changeset
12097 approach, see @pxref{Advanced Scoring}.
Dave Love <fx@gnu.org>
parents:
diff changeset
12098
Dave Love <fx@gnu.org>
parents:
diff changeset
12099 Even though this looks much like lisp code, nothing here is actually
Dave Love <fx@gnu.org>
parents:
diff changeset
12100 @code{eval}ed. The lisp reader is used to read this form, though, so it
Dave Love <fx@gnu.org>
parents:
diff changeset
12101 has to be valid syntactically, if not semantically.
Dave Love <fx@gnu.org>
parents:
diff changeset
12102
Dave Love <fx@gnu.org>
parents:
diff changeset
12103 Six keys are supported by this alist:
Dave Love <fx@gnu.org>
parents:
diff changeset
12104
Dave Love <fx@gnu.org>
parents:
diff changeset
12105 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
12106
Dave Love <fx@gnu.org>
parents:
diff changeset
12107 @item STRING
Dave Love <fx@gnu.org>
parents:
diff changeset
12108 If the key is a string, it is the name of the header to perform the
Dave Love <fx@gnu.org>
parents:
diff changeset
12109 match on. Scoring can only be performed on these eight headers:
Dave Love <fx@gnu.org>
parents:
diff changeset
12110 @code{From}, @code{Subject}, @code{References}, @code{Message-ID},
Dave Love <fx@gnu.org>
parents:
diff changeset
12111 @code{Xref}, @code{Lines}, @code{Chars} and @code{Date}. In addition to
Dave Love <fx@gnu.org>
parents:
diff changeset
12112 these headers, there are three strings to tell Gnus to fetch the entire
Dave Love <fx@gnu.org>
parents:
diff changeset
12113 article and do the match on larger parts of the article: @code{Body}
Dave Love <fx@gnu.org>
parents:
diff changeset
12114 will perform the match on the body of the article, @code{Head} will
Dave Love <fx@gnu.org>
parents:
diff changeset
12115 perform the match on the head of the article, and @code{All} will
Dave Love <fx@gnu.org>
parents:
diff changeset
12116 perform the match on the entire article. Note that using any of these
Dave Love <fx@gnu.org>
parents:
diff changeset
12117 last three keys will slow down group entry @emph{considerably}. The
Dave Love <fx@gnu.org>
parents:
diff changeset
12118 final ``header'' you can score on is @code{Followup}. These score
Dave Love <fx@gnu.org>
parents:
diff changeset
12119 entries will result in new score entries being added for all follow-ups
Dave Love <fx@gnu.org>
parents:
diff changeset
12120 to articles that matches these score entries.
Dave Love <fx@gnu.org>
parents:
diff changeset
12121
Dave Love <fx@gnu.org>
parents:
diff changeset
12122 Following this key is a arbitrary number of score entries, where each
Dave Love <fx@gnu.org>
parents:
diff changeset
12123 score entry has one to four elements.
Dave Love <fx@gnu.org>
parents:
diff changeset
12124 @enumerate
Dave Love <fx@gnu.org>
parents:
diff changeset
12125
Dave Love <fx@gnu.org>
parents:
diff changeset
12126 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
12127 The first element is the @dfn{match element}. On most headers this will
Dave Love <fx@gnu.org>
parents:
diff changeset
12128 be a string, but on the Lines and Chars headers, this must be an
Dave Love <fx@gnu.org>
parents:
diff changeset
12129 integer.
Dave Love <fx@gnu.org>
parents:
diff changeset
12130
Dave Love <fx@gnu.org>
parents:
diff changeset
12131 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
12132 If the second element is present, it should be a number---the @dfn{score
Dave Love <fx@gnu.org>
parents:
diff changeset
12133 element}. This number should be an integer in the neginf to posinf
Dave Love <fx@gnu.org>
parents:
diff changeset
12134 interval. This number is added to the score of the article if the match
Dave Love <fx@gnu.org>
parents:
diff changeset
12135 is successful. If this element is not present, the
Dave Love <fx@gnu.org>
parents:
diff changeset
12136 @code{gnus-score-interactive-default-score} number will be used
Dave Love <fx@gnu.org>
parents:
diff changeset
12137 instead. This is 1000 by default.
Dave Love <fx@gnu.org>
parents:
diff changeset
12138
Dave Love <fx@gnu.org>
parents:
diff changeset
12139 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
12140 If the third element is present, it should be a number---the @dfn{date
Dave Love <fx@gnu.org>
parents:
diff changeset
12141 element}. This date says when the last time this score entry matched,
Dave Love <fx@gnu.org>
parents:
diff changeset
12142 which provides a mechanism for expiring the score entries. It this
Dave Love <fx@gnu.org>
parents:
diff changeset
12143 element is not present, the score entry is permanent. The date is
Dave Love <fx@gnu.org>
parents:
diff changeset
12144 represented by the number of days since December 31, 1 BCE.
Dave Love <fx@gnu.org>
parents:
diff changeset
12145
Dave Love <fx@gnu.org>
parents:
diff changeset
12146 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
12147 If the fourth element is present, it should be a symbol---the @dfn{type
Dave Love <fx@gnu.org>
parents:
diff changeset
12148 element}. This element specifies what function should be used to see
Dave Love <fx@gnu.org>
parents:
diff changeset
12149 whether this score entry matches the article. What match types that can
Dave Love <fx@gnu.org>
parents:
diff changeset
12150 be used depends on what header you wish to perform the match on.
Dave Love <fx@gnu.org>
parents:
diff changeset
12151 @table @dfn
Dave Love <fx@gnu.org>
parents:
diff changeset
12152
Dave Love <fx@gnu.org>
parents:
diff changeset
12153 @item From, Subject, References, Xref, Message-ID
Dave Love <fx@gnu.org>
parents:
diff changeset
12154 For most header types, there are the @code{r} and @code{R} (regexp), as
Dave Love <fx@gnu.org>
parents:
diff changeset
12155 well as @code{s} and @code{S} (substring) types, and @code{e} and
Dave Love <fx@gnu.org>
parents:
diff changeset
12156 @code{E} (exact match), and @code{w} (word match) types. If this
Dave Love <fx@gnu.org>
parents:
diff changeset
12157 element is not present, Gnus will assume that substring matching should
Dave Love <fx@gnu.org>
parents:
diff changeset
12158 be used. @code{R}, @code{S}, and @code{E} differ from the others in
Dave Love <fx@gnu.org>
parents:
diff changeset
12159 that the matches will be done in a case-sensitive manner. All these
Dave Love <fx@gnu.org>
parents:
diff changeset
12160 one-letter types are really just abbreviations for the @code{regexp},
Dave Love <fx@gnu.org>
parents:
diff changeset
12161 @code{string}, @code{exact}, and @code{word} types, which you can use
Dave Love <fx@gnu.org>
parents:
diff changeset
12162 instead, if you feel like.
Dave Love <fx@gnu.org>
parents:
diff changeset
12163
Dave Love <fx@gnu.org>
parents:
diff changeset
12164 @item Lines, Chars
Dave Love <fx@gnu.org>
parents:
diff changeset
12165 These two headers use different match types: @code{<}, @code{>},
Dave Love <fx@gnu.org>
parents:
diff changeset
12166 @code{=}, @code{>=} and @code{<=}.
Dave Love <fx@gnu.org>
parents:
diff changeset
12167
Dave Love <fx@gnu.org>
parents:
diff changeset
12168 These predicates are true if
Dave Love <fx@gnu.org>
parents:
diff changeset
12169
Dave Love <fx@gnu.org>
parents:
diff changeset
12170 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
12171 (PREDICATE HEADER MATCH)
Dave Love <fx@gnu.org>
parents:
diff changeset
12172 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
12173
Dave Love <fx@gnu.org>
parents:
diff changeset
12174 evaluates to non-@code{nil}. For instance, the advanced match
Dave Love <fx@gnu.org>
parents:
diff changeset
12175 @code{("lines" 4 <)} (@pxref{Advanced Scoring}) will result in the
Dave Love <fx@gnu.org>
parents:
diff changeset
12176 following form:
Dave Love <fx@gnu.org>
parents:
diff changeset
12177
Dave Love <fx@gnu.org>
parents:
diff changeset
12178 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
12179 (< header-value 4)
Dave Love <fx@gnu.org>
parents:
diff changeset
12180 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
12181
Dave Love <fx@gnu.org>
parents:
diff changeset
12182 Or to put it another way: When using @code{<} on @code{Lines} with 4 as
Dave Love <fx@gnu.org>
parents:
diff changeset
12183 the match, we get the score added if the article has less than 4 lines.
Dave Love <fx@gnu.org>
parents:
diff changeset
12184 (It's easy to get confused and think it's the other way around. But
Dave Love <fx@gnu.org>
parents:
diff changeset
12185 it's not. I think.)
Dave Love <fx@gnu.org>
parents:
diff changeset
12186
Dave Love <fx@gnu.org>
parents:
diff changeset
12187 When matching on @code{Lines}, be careful because some backends (like
Dave Love <fx@gnu.org>
parents:
diff changeset
12188 @code{nndir}) do not generate @code{Lines} header, so every article ends
Dave Love <fx@gnu.org>
parents:
diff changeset
12189 up being marked as having 0 lines. This can lead to strange results if
Dave Love <fx@gnu.org>
parents:
diff changeset
12190 you happen to lower score of the articles with few lines.
Dave Love <fx@gnu.org>
parents:
diff changeset
12191
Dave Love <fx@gnu.org>
parents:
diff changeset
12192 @item Date
Dave Love <fx@gnu.org>
parents:
diff changeset
12193 For the Date header we have three kinda silly match types:
Dave Love <fx@gnu.org>
parents:
diff changeset
12194 @code{before}, @code{at} and @code{after}. I can't really imagine this
Dave Love <fx@gnu.org>
parents:
diff changeset
12195 ever being useful, but, like, it would feel kinda silly not to provide
Dave Love <fx@gnu.org>
parents:
diff changeset
12196 this function. Just in case. You never know. Better safe than sorry.
Dave Love <fx@gnu.org>
parents:
diff changeset
12197 Once burnt, twice shy. Don't judge a book by its cover. Never not have
Dave Love <fx@gnu.org>
parents:
diff changeset
12198 sex on a first date. (I have been told that at least one person, and I
Dave Love <fx@gnu.org>
parents:
diff changeset
12199 quote, ``found this function indispensable'', however.)
Dave Love <fx@gnu.org>
parents:
diff changeset
12200
Dave Love <fx@gnu.org>
parents:
diff changeset
12201 @cindex ISO8601
Dave Love <fx@gnu.org>
parents:
diff changeset
12202 @cindex date
Dave Love <fx@gnu.org>
parents:
diff changeset
12203 A more useful match type is @code{regexp}. With it, you can match the
Dave Love <fx@gnu.org>
parents:
diff changeset
12204 date string using a regular expression. The date is normalized to
Dave Love <fx@gnu.org>
parents:
diff changeset
12205 ISO8601 compact format first---@var{YYYYMMDD}@code{T}@var{HHMMSS}. If
Dave Love <fx@gnu.org>
parents:
diff changeset
12206 you want to match all articles that have been posted on April 1st in
Dave Love <fx@gnu.org>
parents:
diff changeset
12207 every year, you could use @samp{....0401.........} as a match string,
Dave Love <fx@gnu.org>
parents:
diff changeset
12208 for instance. (Note that the date is kept in its original time zone, so
Dave Love <fx@gnu.org>
parents:
diff changeset
12209 this will match articles that were posted when it was April 1st where
Dave Love <fx@gnu.org>
parents:
diff changeset
12210 the article was posted from. Time zones are such wholesome fun for the
Dave Love <fx@gnu.org>
parents:
diff changeset
12211 whole family, eh?)
Dave Love <fx@gnu.org>
parents:
diff changeset
12212
Dave Love <fx@gnu.org>
parents:
diff changeset
12213 @item Head, Body, All
Dave Love <fx@gnu.org>
parents:
diff changeset
12214 These three match keys use the same match types as the @code{From} (etc)
Dave Love <fx@gnu.org>
parents:
diff changeset
12215 header uses.
Dave Love <fx@gnu.org>
parents:
diff changeset
12216
Dave Love <fx@gnu.org>
parents:
diff changeset
12217 @item Followup
Dave Love <fx@gnu.org>
parents:
diff changeset
12218 This match key is somewhat special, in that it will match the
Dave Love <fx@gnu.org>
parents:
diff changeset
12219 @code{From} header, and affect the score of not only the matching
Dave Love <fx@gnu.org>
parents:
diff changeset
12220 articles, but also all followups to the matching articles. This allows
Dave Love <fx@gnu.org>
parents:
diff changeset
12221 you e.g. increase the score of followups to your own articles, or
Dave Love <fx@gnu.org>
parents:
diff changeset
12222 decrease the score of followups to the articles of some known
Dave Love <fx@gnu.org>
parents:
diff changeset
12223 trouble-maker. Uses the same match types as the @code{From} header
Dave Love <fx@gnu.org>
parents:
diff changeset
12224 uses. (Using this match key will lead to creation of @file{ADAPT}
Dave Love <fx@gnu.org>
parents:
diff changeset
12225 files.)
Dave Love <fx@gnu.org>
parents:
diff changeset
12226
Dave Love <fx@gnu.org>
parents:
diff changeset
12227 @item Thread
Dave Love <fx@gnu.org>
parents:
diff changeset
12228 This match key works along the same lines as the @code{Followup} match
Dave Love <fx@gnu.org>
parents:
diff changeset
12229 key. If you say that you want to score on a (sub-)thread started by an article with a @code{Message-ID} @var{X}, then you add a
Dave Love <fx@gnu.org>
parents:
diff changeset
12230 @samp{thread} match. This will add a new @samp{thread} match for each
Dave Love <fx@gnu.org>
parents:
diff changeset
12231 article that has @var{X} in its @code{References} header. (These new
Dave Love <fx@gnu.org>
parents:
diff changeset
12232 @samp{thread} matches will use the @code{Message-ID}s of these matching
Dave Love <fx@gnu.org>
parents:
diff changeset
12233 articles.) This will ensure that you can raise/lower the score of an
Dave Love <fx@gnu.org>
parents:
diff changeset
12234 entire thread, even though some articles in the thread may not have
Dave Love <fx@gnu.org>
parents:
diff changeset
12235 complete @code{References} headers. Note that using this may lead to
Dave Love <fx@gnu.org>
parents:
diff changeset
12236 undeterministic scores of the articles in the thread. (Using this match
Dave Love <fx@gnu.org>
parents:
diff changeset
12237 key will lead to creation of @file{ADAPT} files.)
Dave Love <fx@gnu.org>
parents:
diff changeset
12238 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
12239 @end enumerate
Dave Love <fx@gnu.org>
parents:
diff changeset
12240
Dave Love <fx@gnu.org>
parents:
diff changeset
12241 @cindex Score File Atoms
Dave Love <fx@gnu.org>
parents:
diff changeset
12242 @item mark
Dave Love <fx@gnu.org>
parents:
diff changeset
12243 The value of this entry should be a number. Any articles with a score
Dave Love <fx@gnu.org>
parents:
diff changeset
12244 lower than this number will be marked as read.
Dave Love <fx@gnu.org>
parents:
diff changeset
12245
Dave Love <fx@gnu.org>
parents:
diff changeset
12246 @item expunge
Dave Love <fx@gnu.org>
parents:
diff changeset
12247 The value of this entry should be a number. Any articles with a score
Dave Love <fx@gnu.org>
parents:
diff changeset
12248 lower than this number will be removed from the summary buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
12249
Dave Love <fx@gnu.org>
parents:
diff changeset
12250 @item mark-and-expunge
Dave Love <fx@gnu.org>
parents:
diff changeset
12251 The value of this entry should be a number. Any articles with a score
Dave Love <fx@gnu.org>
parents:
diff changeset
12252 lower than this number will be marked as read and removed from the
Dave Love <fx@gnu.org>
parents:
diff changeset
12253 summary buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
12254
Dave Love <fx@gnu.org>
parents:
diff changeset
12255 @item thread-mark-and-expunge
Dave Love <fx@gnu.org>
parents:
diff changeset
12256 The value of this entry should be a number. All articles that belong to
Dave Love <fx@gnu.org>
parents:
diff changeset
12257 a thread that has a total score below this number will be marked as read
Dave Love <fx@gnu.org>
parents:
diff changeset
12258 and removed from the summary buffer. @code{gnus-thread-score-function}
Dave Love <fx@gnu.org>
parents:
diff changeset
12259 says how to compute the total score for a thread.
Dave Love <fx@gnu.org>
parents:
diff changeset
12260
Dave Love <fx@gnu.org>
parents:
diff changeset
12261 @item files
Dave Love <fx@gnu.org>
parents:
diff changeset
12262 The value of this entry should be any number of file names. These files
Dave Love <fx@gnu.org>
parents:
diff changeset
12263 are assumed to be score files as well, and will be loaded the same way
Dave Love <fx@gnu.org>
parents:
diff changeset
12264 this one was.
Dave Love <fx@gnu.org>
parents:
diff changeset
12265
Dave Love <fx@gnu.org>
parents:
diff changeset
12266 @item exclude-files
Dave Love <fx@gnu.org>
parents:
diff changeset
12267 The clue of this entry should be any number of files. These files will
Dave Love <fx@gnu.org>
parents:
diff changeset
12268 not be loaded, even though they would normally be so, for some reason or
Dave Love <fx@gnu.org>
parents:
diff changeset
12269 other.
Dave Love <fx@gnu.org>
parents:
diff changeset
12270
Dave Love <fx@gnu.org>
parents:
diff changeset
12271 @item eval
Dave Love <fx@gnu.org>
parents:
diff changeset
12272 The value of this entry will be @code{eval}el. This element will be
Dave Love <fx@gnu.org>
parents:
diff changeset
12273 ignored when handling global score files.
Dave Love <fx@gnu.org>
parents:
diff changeset
12274
Dave Love <fx@gnu.org>
parents:
diff changeset
12275 @item read-only
Dave Love <fx@gnu.org>
parents:
diff changeset
12276 Read-only score files will not be updated or saved. Global score files
Dave Love <fx@gnu.org>
parents:
diff changeset
12277 should feature this atom (@pxref{Global Score Files}). (Note:
Dave Love <fx@gnu.org>
parents:
diff changeset
12278 @dfn{Global} here really means @dfn{global}; not your personal
Dave Love <fx@gnu.org>
parents:
diff changeset
12279 apply-to-all-groups score files.)
Dave Love <fx@gnu.org>
parents:
diff changeset
12280
Dave Love <fx@gnu.org>
parents:
diff changeset
12281 @item orphan
Dave Love <fx@gnu.org>
parents:
diff changeset
12282 The value of this entry should be a number. Articles that do not have
Dave Love <fx@gnu.org>
parents:
diff changeset
12283 parents will get this number added to their scores. Imagine you follow
Dave Love <fx@gnu.org>
parents:
diff changeset
12284 some high-volume newsgroup, like @samp{comp.lang.c}. Most likely you
Dave Love <fx@gnu.org>
parents:
diff changeset
12285 will only follow a few of the threads, also want to see any new threads.
Dave Love <fx@gnu.org>
parents:
diff changeset
12286
Dave Love <fx@gnu.org>
parents:
diff changeset
12287 You can do this with the following two score file entries:
Dave Love <fx@gnu.org>
parents:
diff changeset
12288
Dave Love <fx@gnu.org>
parents:
diff changeset
12289 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
12290 (orphan -500)
Dave Love <fx@gnu.org>
parents:
diff changeset
12291 (mark-and-expunge -100)
Dave Love <fx@gnu.org>
parents:
diff changeset
12292 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
12293
Dave Love <fx@gnu.org>
parents:
diff changeset
12294 When you enter the group the first time, you will only see the new
Dave Love <fx@gnu.org>
parents:
diff changeset
12295 threads. You then raise the score of the threads that you find
Dave Love <fx@gnu.org>
parents:
diff changeset
12296 interesting (with @kbd{I T} or @kbd{I S}), and ignore (@kbd{C y}) the
Dave Love <fx@gnu.org>
parents:
diff changeset
12297 rest. Next time you enter the group, you will see new articles in the
Dave Love <fx@gnu.org>
parents:
diff changeset
12298 interesting threads, plus any new threads.
Dave Love <fx@gnu.org>
parents:
diff changeset
12299
Dave Love <fx@gnu.org>
parents:
diff changeset
12300 I.e.---the orphan score atom is for high-volume groups where there
Dave Love <fx@gnu.org>
parents:
diff changeset
12301 exist a few interesting threads which can't be found automatically by
Dave Love <fx@gnu.org>
parents:
diff changeset
12302 ordinary scoring rules.
Dave Love <fx@gnu.org>
parents:
diff changeset
12303
Dave Love <fx@gnu.org>
parents:
diff changeset
12304 @item adapt
Dave Love <fx@gnu.org>
parents:
diff changeset
12305 This entry controls the adaptive scoring. If it is @code{t}, the
Dave Love <fx@gnu.org>
parents:
diff changeset
12306 default adaptive scoring rules will be used. If it is @code{ignore}, no
Dave Love <fx@gnu.org>
parents:
diff changeset
12307 adaptive scoring will be performed on this group. If it is a list, this
Dave Love <fx@gnu.org>
parents:
diff changeset
12308 list will be used as the adaptive scoring rules. If it isn't present,
Dave Love <fx@gnu.org>
parents:
diff changeset
12309 or is something other than @code{t} or @code{ignore}, the default
Dave Love <fx@gnu.org>
parents:
diff changeset
12310 adaptive scoring rules will be used. If you want to use adaptive
Dave Love <fx@gnu.org>
parents:
diff changeset
12311 scoring on most groups, you'd set @code{gnus-use-adaptive-scoring} to
Dave Love <fx@gnu.org>
parents:
diff changeset
12312 @code{t}, and insert an @code{(adapt ignore)} in the groups where you do
Dave Love <fx@gnu.org>
parents:
diff changeset
12313 not want adaptive scoring. If you only want adaptive scoring in a few
Dave Love <fx@gnu.org>
parents:
diff changeset
12314 groups, you'd set @code{gnus-use-adaptive-scoring} to @code{nil}, and
Dave Love <fx@gnu.org>
parents:
diff changeset
12315 insert @code{(adapt t)} in the score files of the groups where you want
Dave Love <fx@gnu.org>
parents:
diff changeset
12316 it.
Dave Love <fx@gnu.org>
parents:
diff changeset
12317
Dave Love <fx@gnu.org>
parents:
diff changeset
12318 @item adapt-file
Dave Love <fx@gnu.org>
parents:
diff changeset
12319 All adaptive score entries will go to the file named by this entry. It
Dave Love <fx@gnu.org>
parents:
diff changeset
12320 will also be applied when entering the group. This atom might be handy
Dave Love <fx@gnu.org>
parents:
diff changeset
12321 if you want to adapt on several groups at once, using the same adaptive
Dave Love <fx@gnu.org>
parents:
diff changeset
12322 file for a number of groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
12323
Dave Love <fx@gnu.org>
parents:
diff changeset
12324 @item local
Dave Love <fx@gnu.org>
parents:
diff changeset
12325 @cindex local variables
Dave Love <fx@gnu.org>
parents:
diff changeset
12326 The value of this entry should be a list of @code{(VAR VALUE)} pairs.
Dave Love <fx@gnu.org>
parents:
diff changeset
12327 Each @var{var} will be made buffer-local to the current summary buffer,
Dave Love <fx@gnu.org>
parents:
diff changeset
12328 and set to the value specified. This is a convenient, if somewhat
Dave Love <fx@gnu.org>
parents:
diff changeset
12329 strange, way of setting variables in some groups if you don't like hooks
Dave Love <fx@gnu.org>
parents:
diff changeset
12330 much. Note that the @var{value} won't be evaluated.
Dave Love <fx@gnu.org>
parents:
diff changeset
12331 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
12332
Dave Love <fx@gnu.org>
parents:
diff changeset
12333
Dave Love <fx@gnu.org>
parents:
diff changeset
12334 @node Score File Editing
Dave Love <fx@gnu.org>
parents:
diff changeset
12335 @section Score File Editing
Dave Love <fx@gnu.org>
parents:
diff changeset
12336
Dave Love <fx@gnu.org>
parents:
diff changeset
12337 You normally enter all scoring commands from the summary buffer, but you
Dave Love <fx@gnu.org>
parents:
diff changeset
12338 might feel the urge to edit them by hand as well, so we've supplied you
Dave Love <fx@gnu.org>
parents:
diff changeset
12339 with a mode for that.
Dave Love <fx@gnu.org>
parents:
diff changeset
12340
Dave Love <fx@gnu.org>
parents:
diff changeset
12341 It's simply a slightly customized @code{emacs-lisp} mode, with these
Dave Love <fx@gnu.org>
parents:
diff changeset
12342 additional commands:
Dave Love <fx@gnu.org>
parents:
diff changeset
12343
Dave Love <fx@gnu.org>
parents:
diff changeset
12344 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
12345
Dave Love <fx@gnu.org>
parents:
diff changeset
12346 @item C-c C-c
Dave Love <fx@gnu.org>
parents:
diff changeset
12347 @kindex C-c C-c (Score)
Dave Love <fx@gnu.org>
parents:
diff changeset
12348 @findex gnus-score-edit-done
Dave Love <fx@gnu.org>
parents:
diff changeset
12349 Save the changes you have made and return to the summary buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
12350 (@code{gnus-score-edit-done}).
Dave Love <fx@gnu.org>
parents:
diff changeset
12351
Dave Love <fx@gnu.org>
parents:
diff changeset
12352 @item C-c C-d
Dave Love <fx@gnu.org>
parents:
diff changeset
12353 @kindex C-c C-d (Score)
Dave Love <fx@gnu.org>
parents:
diff changeset
12354 @findex gnus-score-edit-insert-date
Dave Love <fx@gnu.org>
parents:
diff changeset
12355 Insert the current date in numerical format
Dave Love <fx@gnu.org>
parents:
diff changeset
12356 (@code{gnus-score-edit-insert-date}). This is really the day number, if
Dave Love <fx@gnu.org>
parents:
diff changeset
12357 you were wondering.
Dave Love <fx@gnu.org>
parents:
diff changeset
12358
Dave Love <fx@gnu.org>
parents:
diff changeset
12359 @item C-c C-p
Dave Love <fx@gnu.org>
parents:
diff changeset
12360 @kindex C-c C-p (Score)
Dave Love <fx@gnu.org>
parents:
diff changeset
12361 @findex gnus-score-pretty-print
Dave Love <fx@gnu.org>
parents:
diff changeset
12362 The adaptive score files are saved in an unformatted fashion. If you
Dave Love <fx@gnu.org>
parents:
diff changeset
12363 intend to read one of these files, you want to @dfn{pretty print} it
Dave Love <fx@gnu.org>
parents:
diff changeset
12364 first. This command (@code{gnus-score-pretty-print}) does that for
Dave Love <fx@gnu.org>
parents:
diff changeset
12365 you.
Dave Love <fx@gnu.org>
parents:
diff changeset
12366
Dave Love <fx@gnu.org>
parents:
diff changeset
12367 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
12368
Dave Love <fx@gnu.org>
parents:
diff changeset
12369 Type @kbd{M-x gnus-score-mode} to use this mode.
Dave Love <fx@gnu.org>
parents:
diff changeset
12370
Dave Love <fx@gnu.org>
parents:
diff changeset
12371 @vindex gnus-score-mode-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
12372 @code{gnus-score-menu-hook} is run in score mode buffers.
Dave Love <fx@gnu.org>
parents:
diff changeset
12373
Dave Love <fx@gnu.org>
parents:
diff changeset
12374 In the summary buffer you can use commands like @kbd{V f} and @kbd{V
Dave Love <fx@gnu.org>
parents:
diff changeset
12375 e} to begin editing score files.
Dave Love <fx@gnu.org>
parents:
diff changeset
12376
Dave Love <fx@gnu.org>
parents:
diff changeset
12377
Dave Love <fx@gnu.org>
parents:
diff changeset
12378 @node Adaptive Scoring
Dave Love <fx@gnu.org>
parents:
diff changeset
12379 @section Adaptive Scoring
Dave Love <fx@gnu.org>
parents:
diff changeset
12380 @cindex adaptive scoring
Dave Love <fx@gnu.org>
parents:
diff changeset
12381
Dave Love <fx@gnu.org>
parents:
diff changeset
12382 If all this scoring is getting you down, Gnus has a way of making it all
Dave Love <fx@gnu.org>
parents:
diff changeset
12383 happen automatically---as if by magic. Or rather, as if by artificial
Dave Love <fx@gnu.org>
parents:
diff changeset
12384 stupidity, to be precise.
Dave Love <fx@gnu.org>
parents:
diff changeset
12385
Dave Love <fx@gnu.org>
parents:
diff changeset
12386 @vindex gnus-use-adaptive-scoring
Dave Love <fx@gnu.org>
parents:
diff changeset
12387 When you read an article, or mark an article as read, or kill an
Dave Love <fx@gnu.org>
parents:
diff changeset
12388 article, you leave marks behind. On exit from the group, Gnus can sniff
Dave Love <fx@gnu.org>
parents:
diff changeset
12389 these marks and add score elements depending on what marks it finds.
Dave Love <fx@gnu.org>
parents:
diff changeset
12390 You turn on this ability by setting @code{gnus-use-adaptive-scoring} to
Dave Love <fx@gnu.org>
parents:
diff changeset
12391 @code{t} or @code{(line)}. If you want score adaptively on separate
Dave Love <fx@gnu.org>
parents:
diff changeset
12392 words appearing in the subjects, you should set this variable to
Dave Love <fx@gnu.org>
parents:
diff changeset
12393 @code{(word)}. If you want to use both adaptive methods, set this
Dave Love <fx@gnu.org>
parents:
diff changeset
12394 variable to @code{(word line)}.
Dave Love <fx@gnu.org>
parents:
diff changeset
12395
Dave Love <fx@gnu.org>
parents:
diff changeset
12396 @vindex gnus-default-adaptive-score-alist
Dave Love <fx@gnu.org>
parents:
diff changeset
12397 To give you complete control over the scoring process, you can customize
Dave Love <fx@gnu.org>
parents:
diff changeset
12398 the @code{gnus-default-adaptive-score-alist} variable. For instance, it
Dave Love <fx@gnu.org>
parents:
diff changeset
12399 might look something like this:
Dave Love <fx@gnu.org>
parents:
diff changeset
12400
Dave Love <fx@gnu.org>
parents:
diff changeset
12401 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
12402 (defvar gnus-default-adaptive-score-alist
Dave Love <fx@gnu.org>
parents:
diff changeset
12403 '((gnus-unread-mark)
Dave Love <fx@gnu.org>
parents:
diff changeset
12404 (gnus-ticked-mark (from 4))
Dave Love <fx@gnu.org>
parents:
diff changeset
12405 (gnus-dormant-mark (from 5))
Dave Love <fx@gnu.org>
parents:
diff changeset
12406 (gnus-del-mark (from -4) (subject -1))
Dave Love <fx@gnu.org>
parents:
diff changeset
12407 (gnus-read-mark (from 4) (subject 2))
Dave Love <fx@gnu.org>
parents:
diff changeset
12408 (gnus-expirable-mark (from -1) (subject -1))
Dave Love <fx@gnu.org>
parents:
diff changeset
12409 (gnus-killed-mark (from -1) (subject -3))
Dave Love <fx@gnu.org>
parents:
diff changeset
12410 (gnus-kill-file-mark)
Dave Love <fx@gnu.org>
parents:
diff changeset
12411 (gnus-ancient-mark)
Dave Love <fx@gnu.org>
parents:
diff changeset
12412 (gnus-low-score-mark)
Dave Love <fx@gnu.org>
parents:
diff changeset
12413 (gnus-catchup-mark (from -1) (subject -1))))
Dave Love <fx@gnu.org>
parents:
diff changeset
12414 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
12415
Dave Love <fx@gnu.org>
parents:
diff changeset
12416 As you see, each element in this alist has a mark as a key (either a
Dave Love <fx@gnu.org>
parents:
diff changeset
12417 variable name or a ``real'' mark---a character). Following this key is
Dave Love <fx@gnu.org>
parents:
diff changeset
12418 a arbitrary number of header/score pairs. If there are no header/score
Dave Love <fx@gnu.org>
parents:
diff changeset
12419 pairs following the key, no adaptive scoring will be done on articles
Dave Love <fx@gnu.org>
parents:
diff changeset
12420 that have that key as the article mark. For instance, articles with
Dave Love <fx@gnu.org>
parents:
diff changeset
12421 @code{gnus-unread-mark} in the example above will not get adaptive score
Dave Love <fx@gnu.org>
parents:
diff changeset
12422 entries.
Dave Love <fx@gnu.org>
parents:
diff changeset
12423
Dave Love <fx@gnu.org>
parents:
diff changeset
12424 Each article can have only one mark, so just a single of these rules
Dave Love <fx@gnu.org>
parents:
diff changeset
12425 will be applied to each article.
Dave Love <fx@gnu.org>
parents:
diff changeset
12426
Dave Love <fx@gnu.org>
parents:
diff changeset
12427 To take @code{gnus-del-mark} as an example---this alist says that all
Dave Love <fx@gnu.org>
parents:
diff changeset
12428 articles that have that mark (i.e., are marked with @samp{D}) will have a
Dave Love <fx@gnu.org>
parents:
diff changeset
12429 score entry added to lower based on the @code{From} header by -4, and
Dave Love <fx@gnu.org>
parents:
diff changeset
12430 lowered by @code{Subject} by -1. Change this to fit your prejudices.
Dave Love <fx@gnu.org>
parents:
diff changeset
12431
Dave Love <fx@gnu.org>
parents:
diff changeset
12432 If you have marked 10 articles with the same subject with
Dave Love <fx@gnu.org>
parents:
diff changeset
12433 @code{gnus-del-mark}, the rule for that mark will be applied ten times.
Dave Love <fx@gnu.org>
parents:
diff changeset
12434 That means that that subject will get a score of ten times -1, which
Dave Love <fx@gnu.org>
parents:
diff changeset
12435 should be, unless I'm much mistaken, -10.
Dave Love <fx@gnu.org>
parents:
diff changeset
12436
Dave Love <fx@gnu.org>
parents:
diff changeset
12437 If you have auto-expirable (mail) groups (@pxref{Expiring Mail}), all
Dave Love <fx@gnu.org>
parents:
diff changeset
12438 the read articles will be marked with the @samp{E} mark. This'll
Dave Love <fx@gnu.org>
parents:
diff changeset
12439 probably make adaptive scoring slightly impossible, so auto-expiring and
Dave Love <fx@gnu.org>
parents:
diff changeset
12440 adaptive scoring doesn't really mix very well.
Dave Love <fx@gnu.org>
parents:
diff changeset
12441
Dave Love <fx@gnu.org>
parents:
diff changeset
12442 The headers you can score on are @code{from}, @code{subject},
Dave Love <fx@gnu.org>
parents:
diff changeset
12443 @code{message-id}, @code{references}, @code{xref}, @code{lines},
Dave Love <fx@gnu.org>
parents:
diff changeset
12444 @code{chars} and @code{date}. In addition, you can score on
Dave Love <fx@gnu.org>
parents:
diff changeset
12445 @code{followup}, which will create an adaptive score entry that matches
Dave Love <fx@gnu.org>
parents:
diff changeset
12446 on the @code{References} header using the @code{Message-ID} of the
Dave Love <fx@gnu.org>
parents:
diff changeset
12447 current article, thereby matching the following thread.
Dave Love <fx@gnu.org>
parents:
diff changeset
12448
Dave Love <fx@gnu.org>
parents:
diff changeset
12449 You can also score on @code{thread}, which will try to score all
Dave Love <fx@gnu.org>
parents:
diff changeset
12450 articles that appear in a thread. @code{thread} matches uses a
Dave Love <fx@gnu.org>
parents:
diff changeset
12451 @code{Message-ID} to match on the @code{References} header of the
Dave Love <fx@gnu.org>
parents:
diff changeset
12452 article. If the match is made, the @code{Message-ID} of the article is
Dave Love <fx@gnu.org>
parents:
diff changeset
12453 added to the @code{thread} rule. (Think about it. I'd recommend two
Dave Love <fx@gnu.org>
parents:
diff changeset
12454 aspirins afterwards.)
Dave Love <fx@gnu.org>
parents:
diff changeset
12455
Dave Love <fx@gnu.org>
parents:
diff changeset
12456 If you use this scheme, you should set the score file atom @code{mark}
Dave Love <fx@gnu.org>
parents:
diff changeset
12457 to something small---like -300, perhaps, to avoid having small random
Dave Love <fx@gnu.org>
parents:
diff changeset
12458 changes result in articles getting marked as read.
Dave Love <fx@gnu.org>
parents:
diff changeset
12459
Dave Love <fx@gnu.org>
parents:
diff changeset
12460 After using adaptive scoring for a week or so, Gnus should start to
Dave Love <fx@gnu.org>
parents:
diff changeset
12461 become properly trained and enhance the authors you like best, and kill
Dave Love <fx@gnu.org>
parents:
diff changeset
12462 the authors you like least, without you having to say so explicitly.
Dave Love <fx@gnu.org>
parents:
diff changeset
12463
Dave Love <fx@gnu.org>
parents:
diff changeset
12464 You can control what groups the adaptive scoring is to be performed on
Dave Love <fx@gnu.org>
parents:
diff changeset
12465 by using the score files (@pxref{Score File Format}). This will also
Dave Love <fx@gnu.org>
parents:
diff changeset
12466 let you use different rules in different groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
12467
Dave Love <fx@gnu.org>
parents:
diff changeset
12468 @vindex gnus-adaptive-file-suffix
Dave Love <fx@gnu.org>
parents:
diff changeset
12469 The adaptive score entries will be put into a file where the name is the
Dave Love <fx@gnu.org>
parents:
diff changeset
12470 group name with @code{gnus-adaptive-file-suffix} appended. The default
Dave Love <fx@gnu.org>
parents:
diff changeset
12471 is @samp{ADAPT}.
Dave Love <fx@gnu.org>
parents:
diff changeset
12472
Dave Love <fx@gnu.org>
parents:
diff changeset
12473 @vindex gnus-score-exact-adapt-limit
Dave Love <fx@gnu.org>
parents:
diff changeset
12474 When doing adaptive scoring, substring or fuzzy matching would probably
Dave Love <fx@gnu.org>
parents:
diff changeset
12475 give you the best results in most cases. However, if the header one
Dave Love <fx@gnu.org>
parents:
diff changeset
12476 matches is short, the possibility for false positives is great, so if
Dave Love <fx@gnu.org>
parents:
diff changeset
12477 the length of the match is less than
Dave Love <fx@gnu.org>
parents:
diff changeset
12478 @code{gnus-score-exact-adapt-limit}, exact matching will be used. If
Dave Love <fx@gnu.org>
parents:
diff changeset
12479 this variable is @code{nil}, exact matching will always be used to avoid
Dave Love <fx@gnu.org>
parents:
diff changeset
12480 this problem.
Dave Love <fx@gnu.org>
parents:
diff changeset
12481
Dave Love <fx@gnu.org>
parents:
diff changeset
12482 @vindex gnus-default-adaptive-word-score-alist
Dave Love <fx@gnu.org>
parents:
diff changeset
12483 As mentioned above, you can adapt either on individual words or entire
Dave Love <fx@gnu.org>
parents:
diff changeset
12484 headers. If you adapt on words, the
Dave Love <fx@gnu.org>
parents:
diff changeset
12485 @code{gnus-default-adaptive-word-score-alist} variable says what score
Dave Love <fx@gnu.org>
parents:
diff changeset
12486 each instance of a word should add given a mark.
Dave Love <fx@gnu.org>
parents:
diff changeset
12487
Dave Love <fx@gnu.org>
parents:
diff changeset
12488 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
12489 (setq gnus-default-adaptive-word-score-alist
Dave Love <fx@gnu.org>
parents:
diff changeset
12490 `((,gnus-read-mark . 30)
Dave Love <fx@gnu.org>
parents:
diff changeset
12491 (,gnus-catchup-mark . -10)
Dave Love <fx@gnu.org>
parents:
diff changeset
12492 (,gnus-killed-mark . -20)
Dave Love <fx@gnu.org>
parents:
diff changeset
12493 (,gnus-del-mark . -15)))
Dave Love <fx@gnu.org>
parents:
diff changeset
12494 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
12495
Dave Love <fx@gnu.org>
parents:
diff changeset
12496 This is the default value. If you have adaption on words enabled, every
Dave Love <fx@gnu.org>
parents:
diff changeset
12497 word that appears in subjects of articles marked with
Dave Love <fx@gnu.org>
parents:
diff changeset
12498 @code{gnus-read-mark} will result in a score rule that increase the
Dave Love <fx@gnu.org>
parents:
diff changeset
12499 score with 30 points.
Dave Love <fx@gnu.org>
parents:
diff changeset
12500
Dave Love <fx@gnu.org>
parents:
diff changeset
12501 @vindex gnus-default-ignored-adaptive-words
Dave Love <fx@gnu.org>
parents:
diff changeset
12502 @vindex gnus-ignored-adaptive-words
Dave Love <fx@gnu.org>
parents:
diff changeset
12503 Words that appear in the @code{gnus-default-ignored-adaptive-words} list
Dave Love <fx@gnu.org>
parents:
diff changeset
12504 will be ignored. If you wish to add more words to be ignored, use the
Dave Love <fx@gnu.org>
parents:
diff changeset
12505 @code{gnus-ignored-adaptive-words} list instead.
Dave Love <fx@gnu.org>
parents:
diff changeset
12506
Dave Love <fx@gnu.org>
parents:
diff changeset
12507 @vindex gnus-adaptive-word-syntax-table
Dave Love <fx@gnu.org>
parents:
diff changeset
12508 When the scoring is done, @code{gnus-adaptive-word-syntax-table} is the
Dave Love <fx@gnu.org>
parents:
diff changeset
12509 syntax table in effect. It is similar to the standard syntax table, but
Dave Love <fx@gnu.org>
parents:
diff changeset
12510 it considers numbers to be non-word-constituent characters.
Dave Love <fx@gnu.org>
parents:
diff changeset
12511
Dave Love <fx@gnu.org>
parents:
diff changeset
12512 @vindex gnus-adaptive-word-minimum
Dave Love <fx@gnu.org>
parents:
diff changeset
12513 If @code{gnus-adaptive-word-minimum} is set to a number, the adaptive
Dave Love <fx@gnu.org>
parents:
diff changeset
12514 word scoring process will never bring down the score of an article to
Dave Love <fx@gnu.org>
parents:
diff changeset
12515 below this number. The default is @code{nil}.
Dave Love <fx@gnu.org>
parents:
diff changeset
12516
Dave Love <fx@gnu.org>
parents:
diff changeset
12517 After using this scheme for a while, it might be nice to write a
Dave Love <fx@gnu.org>
parents:
diff changeset
12518 @code{gnus-psychoanalyze-user} command to go through the rules and see
Dave Love <fx@gnu.org>
parents:
diff changeset
12519 what words you like and what words you don't like. Or perhaps not.
Dave Love <fx@gnu.org>
parents:
diff changeset
12520
Dave Love <fx@gnu.org>
parents:
diff changeset
12521 Note that the adaptive word scoring thing is highly experimental and is
Dave Love <fx@gnu.org>
parents:
diff changeset
12522 likely to change in the future. Initial impressions seem to indicate
Dave Love <fx@gnu.org>
parents:
diff changeset
12523 that it's totally useless as it stands. Some more work (involving more
Dave Love <fx@gnu.org>
parents:
diff changeset
12524 rigorous statistical methods) will have to be done to make this useful.
Dave Love <fx@gnu.org>
parents:
diff changeset
12525
Dave Love <fx@gnu.org>
parents:
diff changeset
12526
Dave Love <fx@gnu.org>
parents:
diff changeset
12527 @node Home Score File
Dave Love <fx@gnu.org>
parents:
diff changeset
12528 @section Home Score File
Dave Love <fx@gnu.org>
parents:
diff changeset
12529
Dave Love <fx@gnu.org>
parents:
diff changeset
12530 The score file where new score file entries will go is called the
Dave Love <fx@gnu.org>
parents:
diff changeset
12531 @dfn{home score file}. This is normally (and by default) the score file
Dave Love <fx@gnu.org>
parents:
diff changeset
12532 for the group itself. For instance, the home score file for
Dave Love <fx@gnu.org>
parents:
diff changeset
12533 @samp{gnu.emacs.gnus} is @file{gnu.emacs.gnus.SCORE}.
Dave Love <fx@gnu.org>
parents:
diff changeset
12534
Dave Love <fx@gnu.org>
parents:
diff changeset
12535 However, this may not be what you want. It is often convenient to share
Dave Love <fx@gnu.org>
parents:
diff changeset
12536 a common home score file among many groups---all @samp{emacs} groups
Dave Love <fx@gnu.org>
parents:
diff changeset
12537 could perhaps use the same home score file.
Dave Love <fx@gnu.org>
parents:
diff changeset
12538
Dave Love <fx@gnu.org>
parents:
diff changeset
12539 @vindex gnus-home-score-file
Dave Love <fx@gnu.org>
parents:
diff changeset
12540 The variable that controls this is @code{gnus-home-score-file}. It can
Dave Love <fx@gnu.org>
parents:
diff changeset
12541 be:
Dave Love <fx@gnu.org>
parents:
diff changeset
12542
Dave Love <fx@gnu.org>
parents:
diff changeset
12543 @enumerate
Dave Love <fx@gnu.org>
parents:
diff changeset
12544 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
12545 A string. Then this file will be used as the home score file for all
Dave Love <fx@gnu.org>
parents:
diff changeset
12546 groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
12547
Dave Love <fx@gnu.org>
parents:
diff changeset
12548 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
12549 A function. The result of this function will be used as the home score
Dave Love <fx@gnu.org>
parents:
diff changeset
12550 file. The function will be called with the name of the group as the
Dave Love <fx@gnu.org>
parents:
diff changeset
12551 parameter.
Dave Love <fx@gnu.org>
parents:
diff changeset
12552
Dave Love <fx@gnu.org>
parents:
diff changeset
12553 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
12554 A list. The elements in this list can be:
Dave Love <fx@gnu.org>
parents:
diff changeset
12555
Dave Love <fx@gnu.org>
parents:
diff changeset
12556 @enumerate
Dave Love <fx@gnu.org>
parents:
diff changeset
12557 @item
26290
df10644e22b5 Fix complaints from makeinfo 4.0.
Dave Love <fx@gnu.org>
parents: 25829
diff changeset
12558 @code{(@var{regexp} @var{file-name})}. If the @var{regexp} matches the group name,
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
12559 the @var{file-name} will will be used as the home score file.
Dave Love <fx@gnu.org>
parents:
diff changeset
12560
Dave Love <fx@gnu.org>
parents:
diff changeset
12561 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
12562 A function. If the function returns non-nil, the result will be used as
Dave Love <fx@gnu.org>
parents:
diff changeset
12563 the home score file.
Dave Love <fx@gnu.org>
parents:
diff changeset
12564
Dave Love <fx@gnu.org>
parents:
diff changeset
12565 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
12566 A string. Use the string as the home score file.
Dave Love <fx@gnu.org>
parents:
diff changeset
12567 @end enumerate
Dave Love <fx@gnu.org>
parents:
diff changeset
12568
Dave Love <fx@gnu.org>
parents:
diff changeset
12569 The list will be traversed from the beginning towards the end looking
Dave Love <fx@gnu.org>
parents:
diff changeset
12570 for matches.
Dave Love <fx@gnu.org>
parents:
diff changeset
12571
Dave Love <fx@gnu.org>
parents:
diff changeset
12572 @end enumerate
Dave Love <fx@gnu.org>
parents:
diff changeset
12573
Dave Love <fx@gnu.org>
parents:
diff changeset
12574 So, if you want to use just a single score file, you could say:
Dave Love <fx@gnu.org>
parents:
diff changeset
12575
Dave Love <fx@gnu.org>
parents:
diff changeset
12576 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
12577 (setq gnus-home-score-file
Dave Love <fx@gnu.org>
parents:
diff changeset
12578 "my-total-score-file.SCORE")
Dave Love <fx@gnu.org>
parents:
diff changeset
12579 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
12580
Dave Love <fx@gnu.org>
parents:
diff changeset
12581 If you want to use @file{gnu.SCORE} for all @samp{gnu} groups and
Dave Love <fx@gnu.org>
parents:
diff changeset
12582 @file{rec.SCORE} for all @samp{rec} groups (and so on), you can say:
Dave Love <fx@gnu.org>
parents:
diff changeset
12583
Dave Love <fx@gnu.org>
parents:
diff changeset
12584 @findex gnus-hierarchial-home-score-file
Dave Love <fx@gnu.org>
parents:
diff changeset
12585 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
12586 (setq gnus-home-score-file
Dave Love <fx@gnu.org>
parents:
diff changeset
12587 'gnus-hierarchial-home-score-file)
Dave Love <fx@gnu.org>
parents:
diff changeset
12588 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
12589
Dave Love <fx@gnu.org>
parents:
diff changeset
12590 This is a ready-made function provided for your convenience.
Dave Love <fx@gnu.org>
parents:
diff changeset
12591 Other functions include
Dave Love <fx@gnu.org>
parents:
diff changeset
12592
Dave Love <fx@gnu.org>
parents:
diff changeset
12593 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
12594 @item gnus-current-home-score-file
Dave Love <fx@gnu.org>
parents:
diff changeset
12595 @findex gnus-current-home-score-file
Dave Love <fx@gnu.org>
parents:
diff changeset
12596 Return the ``current'' regular score file. This will make scoring
Dave Love <fx@gnu.org>
parents:
diff changeset
12597 commands add entry to the ``innermost'' matching score file.
Dave Love <fx@gnu.org>
parents:
diff changeset
12598
Dave Love <fx@gnu.org>
parents:
diff changeset
12599 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
12600
Dave Love <fx@gnu.org>
parents:
diff changeset
12601 If you want to have one score file for the @samp{emacs} groups and
Dave Love <fx@gnu.org>
parents:
diff changeset
12602 another for the @samp{comp} groups, while letting all other groups use
Dave Love <fx@gnu.org>
parents:
diff changeset
12603 their own home score files:
Dave Love <fx@gnu.org>
parents:
diff changeset
12604
Dave Love <fx@gnu.org>
parents:
diff changeset
12605 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
12606 (setq gnus-home-score-file
Dave Love <fx@gnu.org>
parents:
diff changeset
12607 ;; All groups that match the regexp "\\.emacs"
Dave Love <fx@gnu.org>
parents:
diff changeset
12608 '(("\\.emacs" "emacs.SCORE")
Dave Love <fx@gnu.org>
parents:
diff changeset
12609 ;; All the comp groups in one score file
Dave Love <fx@gnu.org>
parents:
diff changeset
12610 ("^comp" "comp.SCORE")))
Dave Love <fx@gnu.org>
parents:
diff changeset
12611 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
12612
Dave Love <fx@gnu.org>
parents:
diff changeset
12613 @vindex gnus-home-adapt-file
Dave Love <fx@gnu.org>
parents:
diff changeset
12614 @code{gnus-home-adapt-file} works exactly the same way as
Dave Love <fx@gnu.org>
parents:
diff changeset
12615 @code{gnus-home-score-file}, but says what the home adaptive score file
Dave Love <fx@gnu.org>
parents:
diff changeset
12616 is instead. All new adaptive file entries will go into the file
Dave Love <fx@gnu.org>
parents:
diff changeset
12617 specified by this variable, and the same syntax is allowed.
Dave Love <fx@gnu.org>
parents:
diff changeset
12618
Dave Love <fx@gnu.org>
parents:
diff changeset
12619 In addition to using @code{gnus-home-score-file} and
Dave Love <fx@gnu.org>
parents:
diff changeset
12620 @code{gnus-home-adapt-file}, you can also use group parameters
Dave Love <fx@gnu.org>
parents:
diff changeset
12621 (@pxref{Group Parameters}) and topic parameters (@pxref{Topic
Dave Love <fx@gnu.org>
parents:
diff changeset
12622 Parameters}) to achieve much the same. Group and topic parameters take
Dave Love <fx@gnu.org>
parents:
diff changeset
12623 precedence over this variable.
Dave Love <fx@gnu.org>
parents:
diff changeset
12624
Dave Love <fx@gnu.org>
parents:
diff changeset
12625
Dave Love <fx@gnu.org>
parents:
diff changeset
12626 @node Followups To Yourself
Dave Love <fx@gnu.org>
parents:
diff changeset
12627 @section Followups To Yourself
Dave Love <fx@gnu.org>
parents:
diff changeset
12628
Dave Love <fx@gnu.org>
parents:
diff changeset
12629 Gnus offers two commands for picking out the @code{Message-ID} header in
Dave Love <fx@gnu.org>
parents:
diff changeset
12630 the current buffer. Gnus will then add a score rule that scores using
Dave Love <fx@gnu.org>
parents:
diff changeset
12631 this @code{Message-ID} on the @code{References} header of other
Dave Love <fx@gnu.org>
parents:
diff changeset
12632 articles. This will, in effect, increase the score of all articles that
Dave Love <fx@gnu.org>
parents:
diff changeset
12633 respond to the article in the current buffer. Quite useful if you want
Dave Love <fx@gnu.org>
parents:
diff changeset
12634 to easily note when people answer what you've said.
Dave Love <fx@gnu.org>
parents:
diff changeset
12635
Dave Love <fx@gnu.org>
parents:
diff changeset
12636 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
12637
Dave Love <fx@gnu.org>
parents:
diff changeset
12638 @item gnus-score-followup-article
Dave Love <fx@gnu.org>
parents:
diff changeset
12639 @findex gnus-score-followup-article
Dave Love <fx@gnu.org>
parents:
diff changeset
12640 This will add a score to articles that directly follow up your own
Dave Love <fx@gnu.org>
parents:
diff changeset
12641 article.
Dave Love <fx@gnu.org>
parents:
diff changeset
12642
Dave Love <fx@gnu.org>
parents:
diff changeset
12643 @item gnus-score-followup-thread
Dave Love <fx@gnu.org>
parents:
diff changeset
12644 @findex gnus-score-followup-thread
Dave Love <fx@gnu.org>
parents:
diff changeset
12645 This will add a score to all articles that appear in a thread ``below''
Dave Love <fx@gnu.org>
parents:
diff changeset
12646 your own article.
Dave Love <fx@gnu.org>
parents:
diff changeset
12647 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
12648
Dave Love <fx@gnu.org>
parents:
diff changeset
12649 @vindex message-sent-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
12650 These two functions are both primarily meant to be used in hooks like
Dave Love <fx@gnu.org>
parents:
diff changeset
12651 @code{message-sent-hook}.
Dave Love <fx@gnu.org>
parents:
diff changeset
12652
Dave Love <fx@gnu.org>
parents:
diff changeset
12653 If you look closely at your own @code{Message-ID}, you'll notice that
Dave Love <fx@gnu.org>
parents:
diff changeset
12654 the first two or three characters are always the same. Here's two of
Dave Love <fx@gnu.org>
parents:
diff changeset
12655 mine:
Dave Love <fx@gnu.org>
parents:
diff changeset
12656
Dave Love <fx@gnu.org>
parents:
diff changeset
12657 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
12658 <x6u3u47icf.fsf@@eyesore.no>
Dave Love <fx@gnu.org>
parents:
diff changeset
12659 <x6sp9o7ibw.fsf@@eyesore.no>
Dave Love <fx@gnu.org>
parents:
diff changeset
12660 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
12661
Dave Love <fx@gnu.org>
parents:
diff changeset
12662 So ``my'' ident on this machine is @samp{x6}. This can be
Dave Love <fx@gnu.org>
parents:
diff changeset
12663 exploited---the following rule will raise the score on all followups to
Dave Love <fx@gnu.org>
parents:
diff changeset
12664 myself:
Dave Love <fx@gnu.org>
parents:
diff changeset
12665
Dave Love <fx@gnu.org>
parents:
diff changeset
12666 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
12667 ("references"
Dave Love <fx@gnu.org>
parents:
diff changeset
12668 ("<x6[0-9a-z]+\\.fsf\\(_-_\\)?@@.*eyesore.no>"
Dave Love <fx@gnu.org>
parents:
diff changeset
12669 1000 nil r))
Dave Love <fx@gnu.org>
parents:
diff changeset
12670 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
12671
Dave Love <fx@gnu.org>
parents:
diff changeset
12672 Whether it's the first two or first three characters that are ``yours''
Dave Love <fx@gnu.org>
parents:
diff changeset
12673 is system-dependent.
Dave Love <fx@gnu.org>
parents:
diff changeset
12674
Dave Love <fx@gnu.org>
parents:
diff changeset
12675
Dave Love <fx@gnu.org>
parents:
diff changeset
12676 @node Scoring Tips
Dave Love <fx@gnu.org>
parents:
diff changeset
12677 @section Scoring Tips
Dave Love <fx@gnu.org>
parents:
diff changeset
12678 @cindex scoring tips
Dave Love <fx@gnu.org>
parents:
diff changeset
12679
Dave Love <fx@gnu.org>
parents:
diff changeset
12680 @table @dfn
Dave Love <fx@gnu.org>
parents:
diff changeset
12681
Dave Love <fx@gnu.org>
parents:
diff changeset
12682 @item Crossposts
Dave Love <fx@gnu.org>
parents:
diff changeset
12683 @cindex crossposts
Dave Love <fx@gnu.org>
parents:
diff changeset
12684 @cindex scoring crossposts
Dave Love <fx@gnu.org>
parents:
diff changeset
12685 If you want to lower the score of crossposts, the line to match on is
Dave Love <fx@gnu.org>
parents:
diff changeset
12686 the @code{Xref} header.
Dave Love <fx@gnu.org>
parents:
diff changeset
12687 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
12688 ("xref" (" talk.politics.misc:" -1000))
Dave Love <fx@gnu.org>
parents:
diff changeset
12689 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
12690
Dave Love <fx@gnu.org>
parents:
diff changeset
12691 @item Multiple crossposts
Dave Love <fx@gnu.org>
parents:
diff changeset
12692 If you want to lower the score of articles that have been crossposted to
Dave Love <fx@gnu.org>
parents:
diff changeset
12693 more than, say, 3 groups:
Dave Love <fx@gnu.org>
parents:
diff changeset
12694 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
12695 ("xref" ("[^:\n]+:[0-9]+ +[^:\n]+:[0-9]+ +[^:\n]+:[0-9]+" -1000 nil r))
Dave Love <fx@gnu.org>
parents:
diff changeset
12696 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
12697
Dave Love <fx@gnu.org>
parents:
diff changeset
12698 @item Matching on the body
Dave Love <fx@gnu.org>
parents:
diff changeset
12699 This is generally not a very good idea---it takes a very long time.
Dave Love <fx@gnu.org>
parents:
diff changeset
12700 Gnus actually has to fetch each individual article from the server. But
Dave Love <fx@gnu.org>
parents:
diff changeset
12701 you might want to anyway, I guess. Even though there are three match
Dave Love <fx@gnu.org>
parents:
diff changeset
12702 keys (@code{Head}, @code{Body} and @code{All}), you should choose one
Dave Love <fx@gnu.org>
parents:
diff changeset
12703 and stick with it in each score file. If you use any two, each article
Dave Love <fx@gnu.org>
parents:
diff changeset
12704 will be fetched @emph{twice}. If you want to match a bit on the
Dave Love <fx@gnu.org>
parents:
diff changeset
12705 @code{Head} and a bit on the @code{Body}, just use @code{All} for all
Dave Love <fx@gnu.org>
parents:
diff changeset
12706 the matches.
Dave Love <fx@gnu.org>
parents:
diff changeset
12707
Dave Love <fx@gnu.org>
parents:
diff changeset
12708 @item Marking as read
Dave Love <fx@gnu.org>
parents:
diff changeset
12709 You will probably want to mark articles that has a score below a certain
Dave Love <fx@gnu.org>
parents:
diff changeset
12710 number as read. This is most easily achieved by putting the following
Dave Love <fx@gnu.org>
parents:
diff changeset
12711 in your @file{all.SCORE} file:
Dave Love <fx@gnu.org>
parents:
diff changeset
12712 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
12713 ((mark -100))
Dave Love <fx@gnu.org>
parents:
diff changeset
12714 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
12715 You may also consider doing something similar with @code{expunge}.
Dave Love <fx@gnu.org>
parents:
diff changeset
12716
Dave Love <fx@gnu.org>
parents:
diff changeset
12717 @item Negated character classes
Dave Love <fx@gnu.org>
parents:
diff changeset
12718 If you say stuff like @code{[^abcd]*}, you may get unexpected results.
Dave Love <fx@gnu.org>
parents:
diff changeset
12719 That will match newlines, which might lead to, well, The Unknown. Say
Dave Love <fx@gnu.org>
parents:
diff changeset
12720 @code{[^abcd\n]*} instead.
Dave Love <fx@gnu.org>
parents:
diff changeset
12721 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
12722
Dave Love <fx@gnu.org>
parents:
diff changeset
12723
Dave Love <fx@gnu.org>
parents:
diff changeset
12724 @node Reverse Scoring
Dave Love <fx@gnu.org>
parents:
diff changeset
12725 @section Reverse Scoring
Dave Love <fx@gnu.org>
parents:
diff changeset
12726 @cindex reverse scoring
Dave Love <fx@gnu.org>
parents:
diff changeset
12727
Dave Love <fx@gnu.org>
parents:
diff changeset
12728 If you want to keep just articles that have @samp{Sex with Emacs} in the
Dave Love <fx@gnu.org>
parents:
diff changeset
12729 subject header, and expunge all other articles, you could put something
Dave Love <fx@gnu.org>
parents:
diff changeset
12730 like this in your score file:
Dave Love <fx@gnu.org>
parents:
diff changeset
12731
Dave Love <fx@gnu.org>
parents:
diff changeset
12732 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
12733 (("subject"
Dave Love <fx@gnu.org>
parents:
diff changeset
12734 ("Sex with Emacs" 2))
Dave Love <fx@gnu.org>
parents:
diff changeset
12735 (mark 1)
Dave Love <fx@gnu.org>
parents:
diff changeset
12736 (expunge 1))
Dave Love <fx@gnu.org>
parents:
diff changeset
12737 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
12738
Dave Love <fx@gnu.org>
parents:
diff changeset
12739 So, you raise all articles that match @samp{Sex with Emacs} and mark the
Dave Love <fx@gnu.org>
parents:
diff changeset
12740 rest as read, and expunge them to boot.
Dave Love <fx@gnu.org>
parents:
diff changeset
12741
Dave Love <fx@gnu.org>
parents:
diff changeset
12742
Dave Love <fx@gnu.org>
parents:
diff changeset
12743 @node Global Score Files
Dave Love <fx@gnu.org>
parents:
diff changeset
12744 @section Global Score Files
Dave Love <fx@gnu.org>
parents:
diff changeset
12745 @cindex global score files
Dave Love <fx@gnu.org>
parents:
diff changeset
12746
Dave Love <fx@gnu.org>
parents:
diff changeset
12747 Sure, other newsreaders have ``global kill files''. These are usually
Dave Love <fx@gnu.org>
parents:
diff changeset
12748 nothing more than a single kill file that applies to all groups, stored
Dave Love <fx@gnu.org>
parents:
diff changeset
12749 in the user's home directory. Bah! Puny, weak newsreaders!
Dave Love <fx@gnu.org>
parents:
diff changeset
12750
Dave Love <fx@gnu.org>
parents:
diff changeset
12751 What I'm talking about here are Global Score Files. Score files from
Dave Love <fx@gnu.org>
parents:
diff changeset
12752 all over the world, from users everywhere, uniting all nations in one
Dave Love <fx@gnu.org>
parents:
diff changeset
12753 big, happy score file union! Ange-score! New and untested!
Dave Love <fx@gnu.org>
parents:
diff changeset
12754
Dave Love <fx@gnu.org>
parents:
diff changeset
12755 @vindex gnus-global-score-files
Dave Love <fx@gnu.org>
parents:
diff changeset
12756 All you have to do to use other people's score files is to set the
Dave Love <fx@gnu.org>
parents:
diff changeset
12757 @code{gnus-global-score-files} variable. One entry for each score file,
Dave Love <fx@gnu.org>
parents:
diff changeset
12758 or each score file directory. Gnus will decide by itself what score
Dave Love <fx@gnu.org>
parents:
diff changeset
12759 files are applicable to which group.
Dave Love <fx@gnu.org>
parents:
diff changeset
12760
Dave Love <fx@gnu.org>
parents:
diff changeset
12761 Say you want to use the score file
Dave Love <fx@gnu.org>
parents:
diff changeset
12762 @file{/ftp@@ftp.gnus.org:/pub/larsi/ding/score/soc.motss.SCORE} and
Dave Love <fx@gnu.org>
parents:
diff changeset
12763 all score files in the @file{/ftp@@ftp.some-where:/pub/score} directory:
Dave Love <fx@gnu.org>
parents:
diff changeset
12764
Dave Love <fx@gnu.org>
parents:
diff changeset
12765 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
12766 (setq gnus-global-score-files
Dave Love <fx@gnu.org>
parents:
diff changeset
12767 '("/ftp@@ftp.gnus.org:/pub/larsi/ding/score/soc.motss.SCORE"
Dave Love <fx@gnu.org>
parents:
diff changeset
12768 "/ftp@@ftp.some-where:/pub/score/"))
Dave Love <fx@gnu.org>
parents:
diff changeset
12769 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
12770
Dave Love <fx@gnu.org>
parents:
diff changeset
12771 @findex gnus-score-search-global-directories
Dave Love <fx@gnu.org>
parents:
diff changeset
12772 Simple, eh? Directory names must end with a @samp{/}. These
Dave Love <fx@gnu.org>
parents:
diff changeset
12773 directories are typically scanned only once during each Gnus session.
Dave Love <fx@gnu.org>
parents:
diff changeset
12774 If you feel the need to manually re-scan the remote directories, you can
Dave Love <fx@gnu.org>
parents:
diff changeset
12775 use the @code{gnus-score-search-global-directories} command.
Dave Love <fx@gnu.org>
parents:
diff changeset
12776
Dave Love <fx@gnu.org>
parents:
diff changeset
12777 Note that, at present, using this option will slow down group entry
Dave Love <fx@gnu.org>
parents:
diff changeset
12778 somewhat. (That is---a lot.)
Dave Love <fx@gnu.org>
parents:
diff changeset
12779
Dave Love <fx@gnu.org>
parents:
diff changeset
12780 If you want to start maintaining score files for other people to use,
Dave Love <fx@gnu.org>
parents:
diff changeset
12781 just put your score file up for anonymous ftp and announce it to the
Dave Love <fx@gnu.org>
parents:
diff changeset
12782 world. Become a retro-moderator! Participate in the retro-moderator
Dave Love <fx@gnu.org>
parents:
diff changeset
12783 wars sure to ensue, where retro-moderators battle it out for the
Dave Love <fx@gnu.org>
parents:
diff changeset
12784 sympathy of the people, luring them to use their score files on false
Dave Love <fx@gnu.org>
parents:
diff changeset
12785 premises! Yay! The net is saved!
Dave Love <fx@gnu.org>
parents:
diff changeset
12786
Dave Love <fx@gnu.org>
parents:
diff changeset
12787 Here are some tips for the would-be retro-moderator, off the top of my
Dave Love <fx@gnu.org>
parents:
diff changeset
12788 head:
Dave Love <fx@gnu.org>
parents:
diff changeset
12789
Dave Love <fx@gnu.org>
parents:
diff changeset
12790 @itemize @bullet
Dave Love <fx@gnu.org>
parents:
diff changeset
12791
Dave Love <fx@gnu.org>
parents:
diff changeset
12792 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
12793 Articles heavily crossposted are probably junk.
Dave Love <fx@gnu.org>
parents:
diff changeset
12794 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
12795 To lower a single inappropriate article, lower by @code{Message-ID}.
Dave Love <fx@gnu.org>
parents:
diff changeset
12796 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
12797 Particularly brilliant authors can be raised on a permanent basis.
Dave Love <fx@gnu.org>
parents:
diff changeset
12798 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
12799 Authors that repeatedly post off-charter for the group can safely be
Dave Love <fx@gnu.org>
parents:
diff changeset
12800 lowered out of existence.
Dave Love <fx@gnu.org>
parents:
diff changeset
12801 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
12802 Set the @code{mark} and @code{expunge} atoms to obliterate the nastiest
Dave Love <fx@gnu.org>
parents:
diff changeset
12803 articles completely.
Dave Love <fx@gnu.org>
parents:
diff changeset
12804
Dave Love <fx@gnu.org>
parents:
diff changeset
12805 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
12806 Use expiring score entries to keep the size of the file down. You
Dave Love <fx@gnu.org>
parents:
diff changeset
12807 should probably have a long expiry period, though, as some sites keep
Dave Love <fx@gnu.org>
parents:
diff changeset
12808 old articles for a long time.
Dave Love <fx@gnu.org>
parents:
diff changeset
12809 @end itemize
Dave Love <fx@gnu.org>
parents:
diff changeset
12810
Dave Love <fx@gnu.org>
parents:
diff changeset
12811 ... I wonder whether other newsreaders will support global score files
Dave Love <fx@gnu.org>
parents:
diff changeset
12812 in the future. @emph{Snicker}. Yup, any day now, newsreaders like Blue
Dave Love <fx@gnu.org>
parents:
diff changeset
12813 Wave, xrn and 1stReader are bound to implement scoring. Should we start
Dave Love <fx@gnu.org>
parents:
diff changeset
12814 holding our breath yet?
Dave Love <fx@gnu.org>
parents:
diff changeset
12815
Dave Love <fx@gnu.org>
parents:
diff changeset
12816
Dave Love <fx@gnu.org>
parents:
diff changeset
12817 @node Kill Files
Dave Love <fx@gnu.org>
parents:
diff changeset
12818 @section Kill Files
Dave Love <fx@gnu.org>
parents:
diff changeset
12819 @cindex kill files
Dave Love <fx@gnu.org>
parents:
diff changeset
12820
Dave Love <fx@gnu.org>
parents:
diff changeset
12821 Gnus still supports those pesky old kill files. In fact, the kill file
Dave Love <fx@gnu.org>
parents:
diff changeset
12822 entries can now be expiring, which is something I wrote before Daniel
Dave Love <fx@gnu.org>
parents:
diff changeset
12823 Quinlan thought of doing score files, so I've left the code in there.
Dave Love <fx@gnu.org>
parents:
diff changeset
12824
Dave Love <fx@gnu.org>
parents:
diff changeset
12825 In short, kill processing is a lot slower (and I do mean @emph{a lot})
Dave Love <fx@gnu.org>
parents:
diff changeset
12826 than score processing, so it might be a good idea to rewrite your kill
Dave Love <fx@gnu.org>
parents:
diff changeset
12827 files into score files.
Dave Love <fx@gnu.org>
parents:
diff changeset
12828
Dave Love <fx@gnu.org>
parents:
diff changeset
12829 Anyway, a kill file is a normal @code{emacs-lisp} file. You can put any
Dave Love <fx@gnu.org>
parents:
diff changeset
12830 forms into this file, which means that you can use kill files as some
Dave Love <fx@gnu.org>
parents:
diff changeset
12831 sort of primitive hook function to be run on group entry, even though
Dave Love <fx@gnu.org>
parents:
diff changeset
12832 that isn't a very good idea.
Dave Love <fx@gnu.org>
parents:
diff changeset
12833
Dave Love <fx@gnu.org>
parents:
diff changeset
12834 Normal kill files look like this:
Dave Love <fx@gnu.org>
parents:
diff changeset
12835
Dave Love <fx@gnu.org>
parents:
diff changeset
12836 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
12837 (gnus-kill "From" "Lars Ingebrigtsen")
Dave Love <fx@gnu.org>
parents:
diff changeset
12838 (gnus-kill "Subject" "ding")
Dave Love <fx@gnu.org>
parents:
diff changeset
12839 (gnus-expunge "X")
Dave Love <fx@gnu.org>
parents:
diff changeset
12840 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
12841
Dave Love <fx@gnu.org>
parents:
diff changeset
12842 This will mark every article written by me as read, and remove the
Dave Love <fx@gnu.org>
parents:
diff changeset
12843 marked articles from the summary buffer. Very useful, you'll agree.
Dave Love <fx@gnu.org>
parents:
diff changeset
12844
Dave Love <fx@gnu.org>
parents:
diff changeset
12845 Other programs use a totally different kill file syntax. If Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
12846 encounters what looks like a @code{rn} kill file, it will take a stab at
Dave Love <fx@gnu.org>
parents:
diff changeset
12847 interpreting it.
Dave Love <fx@gnu.org>
parents:
diff changeset
12848
Dave Love <fx@gnu.org>
parents:
diff changeset
12849 Two summary functions for editing a GNUS kill file:
Dave Love <fx@gnu.org>
parents:
diff changeset
12850
Dave Love <fx@gnu.org>
parents:
diff changeset
12851 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
12852
Dave Love <fx@gnu.org>
parents:
diff changeset
12853 @item M-k
Dave Love <fx@gnu.org>
parents:
diff changeset
12854 @kindex M-k (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
12855 @findex gnus-summary-edit-local-kill
Dave Love <fx@gnu.org>
parents:
diff changeset
12856 Edit this group's kill file (@code{gnus-summary-edit-local-kill}).
Dave Love <fx@gnu.org>
parents:
diff changeset
12857
Dave Love <fx@gnu.org>
parents:
diff changeset
12858 @item M-K
Dave Love <fx@gnu.org>
parents:
diff changeset
12859 @kindex M-K (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
12860 @findex gnus-summary-edit-global-kill
Dave Love <fx@gnu.org>
parents:
diff changeset
12861 Edit the general kill file (@code{gnus-summary-edit-global-kill}).
Dave Love <fx@gnu.org>
parents:
diff changeset
12862 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
12863
Dave Love <fx@gnu.org>
parents:
diff changeset
12864 Two group mode functions for editing the kill files:
Dave Love <fx@gnu.org>
parents:
diff changeset
12865
Dave Love <fx@gnu.org>
parents:
diff changeset
12866 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
12867
Dave Love <fx@gnu.org>
parents:
diff changeset
12868 @item M-k
Dave Love <fx@gnu.org>
parents:
diff changeset
12869 @kindex M-k (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
12870 @findex gnus-group-edit-local-kill
Dave Love <fx@gnu.org>
parents:
diff changeset
12871 Edit this group's kill file (@code{gnus-group-edit-local-kill}).
Dave Love <fx@gnu.org>
parents:
diff changeset
12872
Dave Love <fx@gnu.org>
parents:
diff changeset
12873 @item M-K
Dave Love <fx@gnu.org>
parents:
diff changeset
12874 @kindex M-K (Group)
Dave Love <fx@gnu.org>
parents:
diff changeset
12875 @findex gnus-group-edit-global-kill
Dave Love <fx@gnu.org>
parents:
diff changeset
12876 Edit the general kill file (@code{gnus-group-edit-global-kill}).
Dave Love <fx@gnu.org>
parents:
diff changeset
12877 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
12878
Dave Love <fx@gnu.org>
parents:
diff changeset
12879 Kill file variables:
Dave Love <fx@gnu.org>
parents:
diff changeset
12880
Dave Love <fx@gnu.org>
parents:
diff changeset
12881 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
12882 @item gnus-kill-file-name
Dave Love <fx@gnu.org>
parents:
diff changeset
12883 @vindex gnus-kill-file-name
Dave Love <fx@gnu.org>
parents:
diff changeset
12884 A kill file for the group @samp{soc.motss} is normally called
Dave Love <fx@gnu.org>
parents:
diff changeset
12885 @file{soc.motss.KILL}. The suffix appended to the group name to get
Dave Love <fx@gnu.org>
parents:
diff changeset
12886 this file name is detailed by the @code{gnus-kill-file-name} variable.
Dave Love <fx@gnu.org>
parents:
diff changeset
12887 The ``global'' kill file (not in the score file sense of ``global'', of
Dave Love <fx@gnu.org>
parents:
diff changeset
12888 course) is just called @file{KILL}.
Dave Love <fx@gnu.org>
parents:
diff changeset
12889
Dave Love <fx@gnu.org>
parents:
diff changeset
12890 @vindex gnus-kill-save-kill-file
Dave Love <fx@gnu.org>
parents:
diff changeset
12891 @item gnus-kill-save-kill-file
Dave Love <fx@gnu.org>
parents:
diff changeset
12892 If this variable is non-@code{nil}, Gnus will save the
Dave Love <fx@gnu.org>
parents:
diff changeset
12893 kill file after processing, which is necessary if you use expiring
Dave Love <fx@gnu.org>
parents:
diff changeset
12894 kills.
Dave Love <fx@gnu.org>
parents:
diff changeset
12895
Dave Love <fx@gnu.org>
parents:
diff changeset
12896 @item gnus-apply-kill-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
12897 @vindex gnus-apply-kill-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
12898 @findex gnus-apply-kill-file-unless-scored
Dave Love <fx@gnu.org>
parents:
diff changeset
12899 @findex gnus-apply-kill-file
Dave Love <fx@gnu.org>
parents:
diff changeset
12900 A hook called to apply kill files to a group. It is
Dave Love <fx@gnu.org>
parents:
diff changeset
12901 @code{(gnus-apply-kill-file)} by default. If you want to ignore the
Dave Love <fx@gnu.org>
parents:
diff changeset
12902 kill file if you have a score file for the same group, you can set this
Dave Love <fx@gnu.org>
parents:
diff changeset
12903 hook to @code{(gnus-apply-kill-file-unless-scored)}. If you don't want
Dave Love <fx@gnu.org>
parents:
diff changeset
12904 kill files to be processed, you should set this variable to @code{nil}.
Dave Love <fx@gnu.org>
parents:
diff changeset
12905
Dave Love <fx@gnu.org>
parents:
diff changeset
12906 @item gnus-kill-file-mode-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
12907 @vindex gnus-kill-file-mode-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
12908 A hook called in kill-file mode buffers.
Dave Love <fx@gnu.org>
parents:
diff changeset
12909
Dave Love <fx@gnu.org>
parents:
diff changeset
12910 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
12911
Dave Love <fx@gnu.org>
parents:
diff changeset
12912
Dave Love <fx@gnu.org>
parents:
diff changeset
12913 @node Converting Kill Files
Dave Love <fx@gnu.org>
parents:
diff changeset
12914 @section Converting Kill Files
Dave Love <fx@gnu.org>
parents:
diff changeset
12915 @cindex kill files
Dave Love <fx@gnu.org>
parents:
diff changeset
12916 @cindex converting kill files
Dave Love <fx@gnu.org>
parents:
diff changeset
12917
Dave Love <fx@gnu.org>
parents:
diff changeset
12918 If you have loads of old kill files, you may want to convert them into
Dave Love <fx@gnu.org>
parents:
diff changeset
12919 score files. If they are ``regular'', you can use
Dave Love <fx@gnu.org>
parents:
diff changeset
12920 the @file{gnus-kill-to-score.el} package; if not, you'll have to do it
Dave Love <fx@gnu.org>
parents:
diff changeset
12921 by hand.
Dave Love <fx@gnu.org>
parents:
diff changeset
12922
Dave Love <fx@gnu.org>
parents:
diff changeset
12923 The kill to score conversion package isn't included in Gnus by default.
Dave Love <fx@gnu.org>
parents:
diff changeset
12924 You can fetch it from
Dave Love <fx@gnu.org>
parents:
diff changeset
12925 @file{http://www.stud.ifi.uio.no/~larsi/ding-other/gnus-kill-to-score}.
Dave Love <fx@gnu.org>
parents:
diff changeset
12926
Dave Love <fx@gnu.org>
parents:
diff changeset
12927 If your old kill files are very complex---if they contain more
Dave Love <fx@gnu.org>
parents:
diff changeset
12928 non-@code{gnus-kill} forms than not, you'll have to convert them by
Dave Love <fx@gnu.org>
parents:
diff changeset
12929 hand. Or just let them be as they are. Gnus will still use them as
Dave Love <fx@gnu.org>
parents:
diff changeset
12930 before.
Dave Love <fx@gnu.org>
parents:
diff changeset
12931
Dave Love <fx@gnu.org>
parents:
diff changeset
12932
Dave Love <fx@gnu.org>
parents:
diff changeset
12933 @node GroupLens
Dave Love <fx@gnu.org>
parents:
diff changeset
12934 @section GroupLens
Dave Love <fx@gnu.org>
parents:
diff changeset
12935 @cindex GroupLens
Dave Love <fx@gnu.org>
parents:
diff changeset
12936
Dave Love <fx@gnu.org>
parents:
diff changeset
12937 GroupLens is a collaborative filtering system that helps you work
Dave Love <fx@gnu.org>
parents:
diff changeset
12938 together with other people to find the quality news articles out of the
Dave Love <fx@gnu.org>
parents:
diff changeset
12939 huge volume of news articles generated every day.
Dave Love <fx@gnu.org>
parents:
diff changeset
12940
Dave Love <fx@gnu.org>
parents:
diff changeset
12941 To accomplish this the GroupLens system combines your opinions about
Dave Love <fx@gnu.org>
parents:
diff changeset
12942 articles you have already read with the opinions of others who have done
Dave Love <fx@gnu.org>
parents:
diff changeset
12943 likewise and gives you a personalized prediction for each unread news
Dave Love <fx@gnu.org>
parents:
diff changeset
12944 article. Think of GroupLens as a matchmaker. GroupLens watches how you
Dave Love <fx@gnu.org>
parents:
diff changeset
12945 rate articles, and finds other people that rate articles the same way.
Dave Love <fx@gnu.org>
parents:
diff changeset
12946 Once it has found some people you agree with it tells you, in the form
Dave Love <fx@gnu.org>
parents:
diff changeset
12947 of a prediction, what they thought of the article. You can use this
Dave Love <fx@gnu.org>
parents:
diff changeset
12948 prediction to help you decide whether or not you want to read the
Dave Love <fx@gnu.org>
parents:
diff changeset
12949 article.
Dave Love <fx@gnu.org>
parents:
diff changeset
12950
Dave Love <fx@gnu.org>
parents:
diff changeset
12951 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
12952 * Using GroupLens:: How to make Gnus use GroupLens.
Dave Love <fx@gnu.org>
parents:
diff changeset
12953 * Rating Articles:: Letting GroupLens know how you rate articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
12954 * Displaying Predictions:: Displaying predictions given by GroupLens.
Dave Love <fx@gnu.org>
parents:
diff changeset
12955 * GroupLens Variables:: Customizing GroupLens.
Dave Love <fx@gnu.org>
parents:
diff changeset
12956 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
12957
Dave Love <fx@gnu.org>
parents:
diff changeset
12958
Dave Love <fx@gnu.org>
parents:
diff changeset
12959 @node Using GroupLens
Dave Love <fx@gnu.org>
parents:
diff changeset
12960 @subsection Using GroupLens
Dave Love <fx@gnu.org>
parents:
diff changeset
12961
Dave Love <fx@gnu.org>
parents:
diff changeset
12962 To use GroupLens you must register a pseudonym with your local Better
Dave Love <fx@gnu.org>
parents:
diff changeset
12963 Bit Bureau (BBB).
Dave Love <fx@gnu.org>
parents:
diff changeset
12964 @samp{http://www.cs.umn.edu/Research/GroupLens/bbb.html} is the only
Dave Love <fx@gnu.org>
parents:
diff changeset
12965 better bit in town at the moment.
Dave Love <fx@gnu.org>
parents:
diff changeset
12966
Dave Love <fx@gnu.org>
parents:
diff changeset
12967 Once you have registered you'll need to set a couple of variables.
Dave Love <fx@gnu.org>
parents:
diff changeset
12968
Dave Love <fx@gnu.org>
parents:
diff changeset
12969 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
12970
Dave Love <fx@gnu.org>
parents:
diff changeset
12971 @item gnus-use-grouplens
Dave Love <fx@gnu.org>
parents:
diff changeset
12972 @vindex gnus-use-grouplens
Dave Love <fx@gnu.org>
parents:
diff changeset
12973 Setting this variable to a non-@code{nil} value will make Gnus hook into
Dave Love <fx@gnu.org>
parents:
diff changeset
12974 all the relevant GroupLens functions.
Dave Love <fx@gnu.org>
parents:
diff changeset
12975
Dave Love <fx@gnu.org>
parents:
diff changeset
12976 @item grouplens-pseudonym
Dave Love <fx@gnu.org>
parents:
diff changeset
12977 @vindex grouplens-pseudonym
Dave Love <fx@gnu.org>
parents:
diff changeset
12978 This variable should be set to the pseudonym you got when registering
Dave Love <fx@gnu.org>
parents:
diff changeset
12979 with the Better Bit Bureau.
Dave Love <fx@gnu.org>
parents:
diff changeset
12980
Dave Love <fx@gnu.org>
parents:
diff changeset
12981 @item grouplens-newsgroups
Dave Love <fx@gnu.org>
parents:
diff changeset
12982 @vindex grouplens-newsgroups
Dave Love <fx@gnu.org>
parents:
diff changeset
12983 A list of groups that you want to get GroupLens predictions for.
Dave Love <fx@gnu.org>
parents:
diff changeset
12984
Dave Love <fx@gnu.org>
parents:
diff changeset
12985 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
12986
Dave Love <fx@gnu.org>
parents:
diff changeset
12987 That's the minimum of what you need to get up and running with GroupLens.
Dave Love <fx@gnu.org>
parents:
diff changeset
12988 Once you've registered, GroupLens will start giving you scores for
Dave Love <fx@gnu.org>
parents:
diff changeset
12989 articles based on the average of what other people think. But, to get
Dave Love <fx@gnu.org>
parents:
diff changeset
12990 the real benefit of GroupLens you need to start rating articles
Dave Love <fx@gnu.org>
parents:
diff changeset
12991 yourself. Then the scores GroupLens gives you will be personalized for
Dave Love <fx@gnu.org>
parents:
diff changeset
12992 you, based on how the people you usually agree with have already rated.
Dave Love <fx@gnu.org>
parents:
diff changeset
12993
Dave Love <fx@gnu.org>
parents:
diff changeset
12994
Dave Love <fx@gnu.org>
parents:
diff changeset
12995 @node Rating Articles
Dave Love <fx@gnu.org>
parents:
diff changeset
12996 @subsection Rating Articles
Dave Love <fx@gnu.org>
parents:
diff changeset
12997
Dave Love <fx@gnu.org>
parents:
diff changeset
12998 In GroupLens, an article is rated on a scale from 1 to 5, inclusive.
Dave Love <fx@gnu.org>
parents:
diff changeset
12999 Where 1 means something like this article is a waste of bandwidth and 5
Dave Love <fx@gnu.org>
parents:
diff changeset
13000 means that the article was really good. The basic question to ask
Dave Love <fx@gnu.org>
parents:
diff changeset
13001 yourself is, "on a scale from 1 to 5 would I like to see more articles
Dave Love <fx@gnu.org>
parents:
diff changeset
13002 like this one?"
Dave Love <fx@gnu.org>
parents:
diff changeset
13003
Dave Love <fx@gnu.org>
parents:
diff changeset
13004 There are four ways to enter a rating for an article in GroupLens.
Dave Love <fx@gnu.org>
parents:
diff changeset
13005
Dave Love <fx@gnu.org>
parents:
diff changeset
13006 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
13007
Dave Love <fx@gnu.org>
parents:
diff changeset
13008 @item r
Dave Love <fx@gnu.org>
parents:
diff changeset
13009 @kindex r (GroupLens)
Dave Love <fx@gnu.org>
parents:
diff changeset
13010 @findex bbb-summary-rate-article
Dave Love <fx@gnu.org>
parents:
diff changeset
13011 This function will prompt you for a rating on a scale of one to five.
Dave Love <fx@gnu.org>
parents:
diff changeset
13012
Dave Love <fx@gnu.org>
parents:
diff changeset
13013 @item k
Dave Love <fx@gnu.org>
parents:
diff changeset
13014 @kindex k (GroupLens)
Dave Love <fx@gnu.org>
parents:
diff changeset
13015 @findex grouplens-score-thread
Dave Love <fx@gnu.org>
parents:
diff changeset
13016 This function will prompt you for a rating, and rate all the articles in
Dave Love <fx@gnu.org>
parents:
diff changeset
13017 the thread. This is really useful for some of those long running giant
Dave Love <fx@gnu.org>
parents:
diff changeset
13018 threads in rec.humor.
Dave Love <fx@gnu.org>
parents:
diff changeset
13019
Dave Love <fx@gnu.org>
parents:
diff changeset
13020 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
13021
Dave Love <fx@gnu.org>
parents:
diff changeset
13022 The next two commands, @kbd{n} and @kbd{,} take a numerical prefix to be
Dave Love <fx@gnu.org>
parents:
diff changeset
13023 the score of the article you're reading.
Dave Love <fx@gnu.org>
parents:
diff changeset
13024
Dave Love <fx@gnu.org>
parents:
diff changeset
13025 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
13026
Dave Love <fx@gnu.org>
parents:
diff changeset
13027 @item 1-5 n
Dave Love <fx@gnu.org>
parents:
diff changeset
13028 @kindex n (GroupLens)
Dave Love <fx@gnu.org>
parents:
diff changeset
13029 @findex grouplens-next-unread-article
Dave Love <fx@gnu.org>
parents:
diff changeset
13030 Rate the article and go to the next unread article.
Dave Love <fx@gnu.org>
parents:
diff changeset
13031
Dave Love <fx@gnu.org>
parents:
diff changeset
13032 @item 1-5 ,
Dave Love <fx@gnu.org>
parents:
diff changeset
13033 @kindex , (GroupLens)
Dave Love <fx@gnu.org>
parents:
diff changeset
13034 @findex grouplens-best-unread-article
Dave Love <fx@gnu.org>
parents:
diff changeset
13035 Rate the article and go to the next unread article with the highest score.
Dave Love <fx@gnu.org>
parents:
diff changeset
13036
Dave Love <fx@gnu.org>
parents:
diff changeset
13037 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
13038
Dave Love <fx@gnu.org>
parents:
diff changeset
13039 If you want to give the current article a score of 4 and then go to the
Dave Love <fx@gnu.org>
parents:
diff changeset
13040 next article, just type @kbd{4 n}.
Dave Love <fx@gnu.org>
parents:
diff changeset
13041
Dave Love <fx@gnu.org>
parents:
diff changeset
13042
Dave Love <fx@gnu.org>
parents:
diff changeset
13043 @node Displaying Predictions
Dave Love <fx@gnu.org>
parents:
diff changeset
13044 @subsection Displaying Predictions
Dave Love <fx@gnu.org>
parents:
diff changeset
13045
Dave Love <fx@gnu.org>
parents:
diff changeset
13046 GroupLens makes a prediction for you about how much you will like a
Dave Love <fx@gnu.org>
parents:
diff changeset
13047 news article. The predictions from GroupLens are on a scale from 1 to
Dave Love <fx@gnu.org>
parents:
diff changeset
13048 5, where 1 is the worst and 5 is the best. You can use the predictions
Dave Love <fx@gnu.org>
parents:
diff changeset
13049 from GroupLens in one of three ways controlled by the variable
Dave Love <fx@gnu.org>
parents:
diff changeset
13050 @code{gnus-grouplens-override-scoring}.
Dave Love <fx@gnu.org>
parents:
diff changeset
13051
Dave Love <fx@gnu.org>
parents:
diff changeset
13052 @vindex gnus-grouplens-override-scoring
Dave Love <fx@gnu.org>
parents:
diff changeset
13053 There are three ways to display predictions in grouplens. You may
Dave Love <fx@gnu.org>
parents:
diff changeset
13054 choose to have the GroupLens scores contribute to, or override the
Dave Love <fx@gnu.org>
parents:
diff changeset
13055 regular gnus scoring mechanism. override is the default; however, some
Dave Love <fx@gnu.org>
parents:
diff changeset
13056 people prefer to see the Gnus scores plus the grouplens scores. To get
Dave Love <fx@gnu.org>
parents:
diff changeset
13057 the separate scoring behavior you need to set
Dave Love <fx@gnu.org>
parents:
diff changeset
13058 @code{gnus-grouplens-override-scoring} to @code{'separate}. To have the
Dave Love <fx@gnu.org>
parents:
diff changeset
13059 GroupLens predictions combined with the grouplens scores set it to
Dave Love <fx@gnu.org>
parents:
diff changeset
13060 @code{'override} and to combine the scores set
Dave Love <fx@gnu.org>
parents:
diff changeset
13061 @code{gnus-grouplens-override-scoring} to @code{'combine}. When you use
Dave Love <fx@gnu.org>
parents:
diff changeset
13062 the combine option you will also want to set the values for
Dave Love <fx@gnu.org>
parents:
diff changeset
13063 @code{grouplens-prediction-offset} and
Dave Love <fx@gnu.org>
parents:
diff changeset
13064 @code{grouplens-score-scale-factor}.
Dave Love <fx@gnu.org>
parents:
diff changeset
13065
Dave Love <fx@gnu.org>
parents:
diff changeset
13066 @vindex grouplens-prediction-display
Dave Love <fx@gnu.org>
parents:
diff changeset
13067 In either case, GroupLens gives you a few choices for how you would like
Dave Love <fx@gnu.org>
parents:
diff changeset
13068 to see your predictions displayed. The display of predictions is
Dave Love <fx@gnu.org>
parents:
diff changeset
13069 controlled by the @code{grouplens-prediction-display} variable.
Dave Love <fx@gnu.org>
parents:
diff changeset
13070
Dave Love <fx@gnu.org>
parents:
diff changeset
13071 The following are valid values for that variable.
Dave Love <fx@gnu.org>
parents:
diff changeset
13072
Dave Love <fx@gnu.org>
parents:
diff changeset
13073 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
13074 @item prediction-spot
Dave Love <fx@gnu.org>
parents:
diff changeset
13075 The higher the prediction, the further to the right an @samp{*} is
Dave Love <fx@gnu.org>
parents:
diff changeset
13076 displayed.
Dave Love <fx@gnu.org>
parents:
diff changeset
13077
Dave Love <fx@gnu.org>
parents:
diff changeset
13078 @item confidence-interval
Dave Love <fx@gnu.org>
parents:
diff changeset
13079 A numeric confidence interval.
Dave Love <fx@gnu.org>
parents:
diff changeset
13080
Dave Love <fx@gnu.org>
parents:
diff changeset
13081 @item prediction-bar
Dave Love <fx@gnu.org>
parents:
diff changeset
13082 The higher the prediction, the longer the bar.
Dave Love <fx@gnu.org>
parents:
diff changeset
13083
Dave Love <fx@gnu.org>
parents:
diff changeset
13084 @item confidence-bar
Dave Love <fx@gnu.org>
parents:
diff changeset
13085 Numerical confidence.
Dave Love <fx@gnu.org>
parents:
diff changeset
13086
Dave Love <fx@gnu.org>
parents:
diff changeset
13087 @item confidence-spot
Dave Love <fx@gnu.org>
parents:
diff changeset
13088 The spot gets bigger with more confidence.
Dave Love <fx@gnu.org>
parents:
diff changeset
13089
Dave Love <fx@gnu.org>
parents:
diff changeset
13090 @item prediction-num
Dave Love <fx@gnu.org>
parents:
diff changeset
13091 Plain-old numeric value.
Dave Love <fx@gnu.org>
parents:
diff changeset
13092
Dave Love <fx@gnu.org>
parents:
diff changeset
13093 @item confidence-plus-minus
Dave Love <fx@gnu.org>
parents:
diff changeset
13094 Prediction +/- confidence.
Dave Love <fx@gnu.org>
parents:
diff changeset
13095
Dave Love <fx@gnu.org>
parents:
diff changeset
13096 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
13097
Dave Love <fx@gnu.org>
parents:
diff changeset
13098
Dave Love <fx@gnu.org>
parents:
diff changeset
13099 @node GroupLens Variables
Dave Love <fx@gnu.org>
parents:
diff changeset
13100 @subsection GroupLens Variables
Dave Love <fx@gnu.org>
parents:
diff changeset
13101
Dave Love <fx@gnu.org>
parents:
diff changeset
13102 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
13103
Dave Love <fx@gnu.org>
parents:
diff changeset
13104 @item gnus-summary-grouplens-line-format
Dave Love <fx@gnu.org>
parents:
diff changeset
13105 The summary line format used in GroupLens-enhanced summary buffers. It
Dave Love <fx@gnu.org>
parents:
diff changeset
13106 accepts the same specs as the normal summary line format (@pxref{Summary
Dave Love <fx@gnu.org>
parents:
diff changeset
13107 Buffer Lines}). The default is @samp{%U%R%z%l%I%(%[%4L: %-20,20n%]%)
Dave Love <fx@gnu.org>
parents:
diff changeset
13108 %s\n}.
Dave Love <fx@gnu.org>
parents:
diff changeset
13109
Dave Love <fx@gnu.org>
parents:
diff changeset
13110 @item grouplens-bbb-host
Dave Love <fx@gnu.org>
parents:
diff changeset
13111 Host running the bbbd server. @samp{grouplens.cs.umn.edu} is the
Dave Love <fx@gnu.org>
parents:
diff changeset
13112 default.
Dave Love <fx@gnu.org>
parents:
diff changeset
13113
Dave Love <fx@gnu.org>
parents:
diff changeset
13114 @item grouplens-bbb-port
Dave Love <fx@gnu.org>
parents:
diff changeset
13115 Port of the host running the bbbd server. The default is 9000.
Dave Love <fx@gnu.org>
parents:
diff changeset
13116
Dave Love <fx@gnu.org>
parents:
diff changeset
13117 @item grouplens-score-offset
Dave Love <fx@gnu.org>
parents:
diff changeset
13118 Offset the prediction by this value. In other words, subtract the
Dave Love <fx@gnu.org>
parents:
diff changeset
13119 prediction value by this number to arrive at the effective score. The
Dave Love <fx@gnu.org>
parents:
diff changeset
13120 default is 0.
Dave Love <fx@gnu.org>
parents:
diff changeset
13121
Dave Love <fx@gnu.org>
parents:
diff changeset
13122 @item grouplens-score-scale-factor
Dave Love <fx@gnu.org>
parents:
diff changeset
13123 This variable allows the user to magnify the effect of GroupLens scores.
Dave Love <fx@gnu.org>
parents:
diff changeset
13124 The scale factor is applied after the offset. The default is 1.
Dave Love <fx@gnu.org>
parents:
diff changeset
13125
Dave Love <fx@gnu.org>
parents:
diff changeset
13126 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
13127
Dave Love <fx@gnu.org>
parents:
diff changeset
13128
Dave Love <fx@gnu.org>
parents:
diff changeset
13129 @node Advanced Scoring
Dave Love <fx@gnu.org>
parents:
diff changeset
13130 @section Advanced Scoring
Dave Love <fx@gnu.org>
parents:
diff changeset
13131
Dave Love <fx@gnu.org>
parents:
diff changeset
13132 Scoring on Subjects and From headers is nice enough, but what if you're
Dave Love <fx@gnu.org>
parents:
diff changeset
13133 really interested in what a person has to say only when she's talking
Dave Love <fx@gnu.org>
parents:
diff changeset
13134 about a particular subject? Or what if you really don't want to
Dave Love <fx@gnu.org>
parents:
diff changeset
13135 read what person A has to say when she's following up to person B, but
Dave Love <fx@gnu.org>
parents:
diff changeset
13136 want to read what she says when she's following up to person C?
Dave Love <fx@gnu.org>
parents:
diff changeset
13137
Dave Love <fx@gnu.org>
parents:
diff changeset
13138 By using advanced scoring rules you may create arbitrarily complex
Dave Love <fx@gnu.org>
parents:
diff changeset
13139 scoring patterns.
Dave Love <fx@gnu.org>
parents:
diff changeset
13140
Dave Love <fx@gnu.org>
parents:
diff changeset
13141 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
13142 * Advanced Scoring Syntax:: A definition.
Dave Love <fx@gnu.org>
parents:
diff changeset
13143 * Advanced Scoring Examples:: What they look like.
Dave Love <fx@gnu.org>
parents:
diff changeset
13144 * Advanced Scoring Tips:: Getting the most out of it.
Dave Love <fx@gnu.org>
parents:
diff changeset
13145 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
13146
Dave Love <fx@gnu.org>
parents:
diff changeset
13147
Dave Love <fx@gnu.org>
parents:
diff changeset
13148 @node Advanced Scoring Syntax
Dave Love <fx@gnu.org>
parents:
diff changeset
13149 @subsection Advanced Scoring Syntax
Dave Love <fx@gnu.org>
parents:
diff changeset
13150
Dave Love <fx@gnu.org>
parents:
diff changeset
13151 Ordinary scoring rules have a string as the first element in the rule.
Dave Love <fx@gnu.org>
parents:
diff changeset
13152 Advanced scoring rules have a list as the first element. The second
Dave Love <fx@gnu.org>
parents:
diff changeset
13153 element is the score to be applied if the first element evaluated to a
Dave Love <fx@gnu.org>
parents:
diff changeset
13154 non-@code{nil} value.
Dave Love <fx@gnu.org>
parents:
diff changeset
13155
Dave Love <fx@gnu.org>
parents:
diff changeset
13156 These lists may consist of three logical operators, one redirection
Dave Love <fx@gnu.org>
parents:
diff changeset
13157 operator, and various match operators.
Dave Love <fx@gnu.org>
parents:
diff changeset
13158
Dave Love <fx@gnu.org>
parents:
diff changeset
13159 Logical operators:
Dave Love <fx@gnu.org>
parents:
diff changeset
13160
Dave Love <fx@gnu.org>
parents:
diff changeset
13161 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
13162 @item &
Dave Love <fx@gnu.org>
parents:
diff changeset
13163 @itemx and
Dave Love <fx@gnu.org>
parents:
diff changeset
13164 This logical operator will evaluate each of its arguments until it finds
Dave Love <fx@gnu.org>
parents:
diff changeset
13165 one that evaluates to @code{false}, and then it'll stop. If all arguments
Dave Love <fx@gnu.org>
parents:
diff changeset
13166 evaluate to @code{true} values, then this operator will return
Dave Love <fx@gnu.org>
parents:
diff changeset
13167 @code{true}.
Dave Love <fx@gnu.org>
parents:
diff changeset
13168
Dave Love <fx@gnu.org>
parents:
diff changeset
13169 @item |
Dave Love <fx@gnu.org>
parents:
diff changeset
13170 @itemx or
Dave Love <fx@gnu.org>
parents:
diff changeset
13171 This logical operator will evaluate each of its arguments until it finds
Dave Love <fx@gnu.org>
parents:
diff changeset
13172 one that evaluates to @code{true}. If no arguments are @code{true},
Dave Love <fx@gnu.org>
parents:
diff changeset
13173 then this operator will return @code{false}.
Dave Love <fx@gnu.org>
parents:
diff changeset
13174
Dave Love <fx@gnu.org>
parents:
diff changeset
13175 @item !
Dave Love <fx@gnu.org>
parents:
diff changeset
13176 @itemx not
Dave Love <fx@gnu.org>
parents:
diff changeset
13177 @itemx ¬
Dave Love <fx@gnu.org>
parents:
diff changeset
13178 This logical operator only takes a single argument. It returns the
Dave Love <fx@gnu.org>
parents:
diff changeset
13179 logical negation of the value of its argument.
Dave Love <fx@gnu.org>
parents:
diff changeset
13180
Dave Love <fx@gnu.org>
parents:
diff changeset
13181 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
13182
Dave Love <fx@gnu.org>
parents:
diff changeset
13183 There is an @dfn{indirection operator} that will make its arguments
Dave Love <fx@gnu.org>
parents:
diff changeset
13184 apply to the ancestors of the current article being scored. For
Dave Love <fx@gnu.org>
parents:
diff changeset
13185 instance, @code{1-} will make score rules apply to the parent of the
Dave Love <fx@gnu.org>
parents:
diff changeset
13186 current article. @code{2-} will make score rules apply to the
Dave Love <fx@gnu.org>
parents:
diff changeset
13187 grandparent of the current article. Alternatively, you can write
Dave Love <fx@gnu.org>
parents:
diff changeset
13188 @code{^^}, where the number of @code{^}s (carets) says how far back into
Dave Love <fx@gnu.org>
parents:
diff changeset
13189 the ancestry you want to go.
Dave Love <fx@gnu.org>
parents:
diff changeset
13190
Dave Love <fx@gnu.org>
parents:
diff changeset
13191 Finally, we have the match operators. These are the ones that do the
Dave Love <fx@gnu.org>
parents:
diff changeset
13192 real work. Match operators are header name strings followed by a match
Dave Love <fx@gnu.org>
parents:
diff changeset
13193 and a match type. A typical match operator looks like @samp{("from"
Dave Love <fx@gnu.org>
parents:
diff changeset
13194 "Lars Ingebrigtsen" s)}. The header names are the same as when using
Dave Love <fx@gnu.org>
parents:
diff changeset
13195 simple scoring, and the match types are also the same.
Dave Love <fx@gnu.org>
parents:
diff changeset
13196
Dave Love <fx@gnu.org>
parents:
diff changeset
13197
Dave Love <fx@gnu.org>
parents:
diff changeset
13198 @node Advanced Scoring Examples
Dave Love <fx@gnu.org>
parents:
diff changeset
13199 @subsection Advanced Scoring Examples
Dave Love <fx@gnu.org>
parents:
diff changeset
13200
Dave Love <fx@gnu.org>
parents:
diff changeset
13201 Let's say you want to increase the score of articles written by Lars
Dave Love <fx@gnu.org>
parents:
diff changeset
13202 when he's talking about Gnus:
Dave Love <fx@gnu.org>
parents:
diff changeset
13203
Dave Love <fx@gnu.org>
parents:
diff changeset
13204 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
13205 ((&
Dave Love <fx@gnu.org>
parents:
diff changeset
13206 ("from" "Lars Ingebrigtsen")
Dave Love <fx@gnu.org>
parents:
diff changeset
13207 ("subject" "Gnus"))
Dave Love <fx@gnu.org>
parents:
diff changeset
13208 1000)
Dave Love <fx@gnu.org>
parents:
diff changeset
13209 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
13210
Dave Love <fx@gnu.org>
parents:
diff changeset
13211 Quite simple, huh?
Dave Love <fx@gnu.org>
parents:
diff changeset
13212
Dave Love <fx@gnu.org>
parents:
diff changeset
13213 When he writes long articles, he sometimes has something nice to say:
Dave Love <fx@gnu.org>
parents:
diff changeset
13214
Dave Love <fx@gnu.org>
parents:
diff changeset
13215 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
13216 ((&
Dave Love <fx@gnu.org>
parents:
diff changeset
13217 ("from" "Lars Ingebrigtsen")
Dave Love <fx@gnu.org>
parents:
diff changeset
13218 (|
Dave Love <fx@gnu.org>
parents:
diff changeset
13219 ("subject" "Gnus")
Dave Love <fx@gnu.org>
parents:
diff changeset
13220 ("lines" 100 >)))
Dave Love <fx@gnu.org>
parents:
diff changeset
13221 1000)
Dave Love <fx@gnu.org>
parents:
diff changeset
13222 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
13223
Dave Love <fx@gnu.org>
parents:
diff changeset
13224 However, when he responds to things written by Reig Eigil Logge, you
Dave Love <fx@gnu.org>
parents:
diff changeset
13225 really don't want to read what he's written:
Dave Love <fx@gnu.org>
parents:
diff changeset
13226
Dave Love <fx@gnu.org>
parents:
diff changeset
13227 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
13228 ((&
Dave Love <fx@gnu.org>
parents:
diff changeset
13229 ("from" "Lars Ingebrigtsen")
Dave Love <fx@gnu.org>
parents:
diff changeset
13230 (1- ("from" "Reig Eigir Logge")))
Dave Love <fx@gnu.org>
parents:
diff changeset
13231 -100000)
Dave Love <fx@gnu.org>
parents:
diff changeset
13232 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
13233
Dave Love <fx@gnu.org>
parents:
diff changeset
13234 Everybody that follows up Redmondo when he writes about disappearing
Dave Love <fx@gnu.org>
parents:
diff changeset
13235 socks should have their scores raised, but only when they talk about
Dave Love <fx@gnu.org>
parents:
diff changeset
13236 white socks. However, when Lars talks about socks, it's usually not
Dave Love <fx@gnu.org>
parents:
diff changeset
13237 very interesting:
Dave Love <fx@gnu.org>
parents:
diff changeset
13238
Dave Love <fx@gnu.org>
parents:
diff changeset
13239 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
13240 ((&
Dave Love <fx@gnu.org>
parents:
diff changeset
13241 (1-
Dave Love <fx@gnu.org>
parents:
diff changeset
13242 (&
Dave Love <fx@gnu.org>
parents:
diff changeset
13243 ("from" "redmondo@@.*no" r)
Dave Love <fx@gnu.org>
parents:
diff changeset
13244 ("body" "disappearing.*socks" t)))
Dave Love <fx@gnu.org>
parents:
diff changeset
13245 (! ("from" "Lars Ingebrigtsen"))
Dave Love <fx@gnu.org>
parents:
diff changeset
13246 ("body" "white.*socks"))
Dave Love <fx@gnu.org>
parents:
diff changeset
13247 1000)
Dave Love <fx@gnu.org>
parents:
diff changeset
13248 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
13249
Dave Love <fx@gnu.org>
parents:
diff changeset
13250 The possibilities are endless.
Dave Love <fx@gnu.org>
parents:
diff changeset
13251
Dave Love <fx@gnu.org>
parents:
diff changeset
13252
Dave Love <fx@gnu.org>
parents:
diff changeset
13253 @node Advanced Scoring Tips
Dave Love <fx@gnu.org>
parents:
diff changeset
13254 @subsection Advanced Scoring Tips
Dave Love <fx@gnu.org>
parents:
diff changeset
13255
Dave Love <fx@gnu.org>
parents:
diff changeset
13256 The @code{&} and @code{|} logical operators do short-circuit logic.
Dave Love <fx@gnu.org>
parents:
diff changeset
13257 That is, they stop processing their arguments when it's clear what the
Dave Love <fx@gnu.org>
parents:
diff changeset
13258 result of the operation will be. For instance, if one of the arguments
Dave Love <fx@gnu.org>
parents:
diff changeset
13259 of an @code{&} evaluates to @code{false}, there's no point in evaluating
Dave Love <fx@gnu.org>
parents:
diff changeset
13260 the rest of the arguments. This means that you should put slow matches
Dave Love <fx@gnu.org>
parents:
diff changeset
13261 (@samp{body}, @samp{header}) last and quick matches (@samp{from},
Dave Love <fx@gnu.org>
parents:
diff changeset
13262 @samp{subject}) first.
Dave Love <fx@gnu.org>
parents:
diff changeset
13263
Dave Love <fx@gnu.org>
parents:
diff changeset
13264 The indirection arguments (@code{1-} and so on) will make their
Dave Love <fx@gnu.org>
parents:
diff changeset
13265 arguments work on previous generations of the thread. If you say
Dave Love <fx@gnu.org>
parents:
diff changeset
13266 something like:
Dave Love <fx@gnu.org>
parents:
diff changeset
13267
Dave Love <fx@gnu.org>
parents:
diff changeset
13268 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
13269 ...
Dave Love <fx@gnu.org>
parents:
diff changeset
13270 (1-
Dave Love <fx@gnu.org>
parents:
diff changeset
13271 (1-
Dave Love <fx@gnu.org>
parents:
diff changeset
13272 ("from" "lars")))
Dave Love <fx@gnu.org>
parents:
diff changeset
13273 ...
Dave Love <fx@gnu.org>
parents:
diff changeset
13274 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
13275
Dave Love <fx@gnu.org>
parents:
diff changeset
13276 Then that means "score on the from header of the grandparent of the
Dave Love <fx@gnu.org>
parents:
diff changeset
13277 current article". An indirection is quite fast, but it's better to say:
Dave Love <fx@gnu.org>
parents:
diff changeset
13278
Dave Love <fx@gnu.org>
parents:
diff changeset
13279 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
13280 (1-
Dave Love <fx@gnu.org>
parents:
diff changeset
13281 (&
Dave Love <fx@gnu.org>
parents:
diff changeset
13282 ("from" "Lars")
Dave Love <fx@gnu.org>
parents:
diff changeset
13283 ("subject" "Gnus")))
Dave Love <fx@gnu.org>
parents:
diff changeset
13284 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
13285
Dave Love <fx@gnu.org>
parents:
diff changeset
13286 than it is to say:
Dave Love <fx@gnu.org>
parents:
diff changeset
13287
Dave Love <fx@gnu.org>
parents:
diff changeset
13288 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
13289 (&
Dave Love <fx@gnu.org>
parents:
diff changeset
13290 (1- ("from" "Lars"))
Dave Love <fx@gnu.org>
parents:
diff changeset
13291 (1- ("subject" "Gnus")))
Dave Love <fx@gnu.org>
parents:
diff changeset
13292 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
13293
Dave Love <fx@gnu.org>
parents:
diff changeset
13294
Dave Love <fx@gnu.org>
parents:
diff changeset
13295 @node Score Decays
Dave Love <fx@gnu.org>
parents:
diff changeset
13296 @section Score Decays
Dave Love <fx@gnu.org>
parents:
diff changeset
13297 @cindex score decays
Dave Love <fx@gnu.org>
parents:
diff changeset
13298 @cindex decays
Dave Love <fx@gnu.org>
parents:
diff changeset
13299
Dave Love <fx@gnu.org>
parents:
diff changeset
13300 You may find that your scores have a tendency to grow without
Dave Love <fx@gnu.org>
parents:
diff changeset
13301 bounds, especially if you're using adaptive scoring. If scores get too
Dave Love <fx@gnu.org>
parents:
diff changeset
13302 big, they lose all meaning---they simply max out and it's difficult to
Dave Love <fx@gnu.org>
parents:
diff changeset
13303 use them in any sensible way.
Dave Love <fx@gnu.org>
parents:
diff changeset
13304
Dave Love <fx@gnu.org>
parents:
diff changeset
13305 @vindex gnus-decay-scores
Dave Love <fx@gnu.org>
parents:
diff changeset
13306 @findex gnus-decay-score
Dave Love <fx@gnu.org>
parents:
diff changeset
13307 @vindex gnus-decay-score-function
Dave Love <fx@gnu.org>
parents:
diff changeset
13308 Gnus provides a mechanism for decaying scores to help with this problem.
Dave Love <fx@gnu.org>
parents:
diff changeset
13309 When score files are loaded and @code{gnus-decay-scores} is
Dave Love <fx@gnu.org>
parents:
diff changeset
13310 non-@code{nil}, Gnus will run the score files through the decaying
Dave Love <fx@gnu.org>
parents:
diff changeset
13311 mechanism thereby lowering the scores of all non-permanent score rules.
Dave Love <fx@gnu.org>
parents:
diff changeset
13312 The decay itself if performed by the @code{gnus-decay-score-function}
Dave Love <fx@gnu.org>
parents:
diff changeset
13313 function, which is @code{gnus-decay-score} by default. Here's the
Dave Love <fx@gnu.org>
parents:
diff changeset
13314 definition of that function:
Dave Love <fx@gnu.org>
parents:
diff changeset
13315
Dave Love <fx@gnu.org>
parents:
diff changeset
13316 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
13317 (defun gnus-decay-score (score)
Dave Love <fx@gnu.org>
parents:
diff changeset
13318 "Decay SCORE.
Dave Love <fx@gnu.org>
parents:
diff changeset
13319 This is done according to `gnus-score-decay-constant'
Dave Love <fx@gnu.org>
parents:
diff changeset
13320 and `gnus-score-decay-scale'."
Dave Love <fx@gnu.org>
parents:
diff changeset
13321 (floor
Dave Love <fx@gnu.org>
parents:
diff changeset
13322 (- score
Dave Love <fx@gnu.org>
parents:
diff changeset
13323 (* (if (< score 0) 1 -1)
Dave Love <fx@gnu.org>
parents:
diff changeset
13324 (min (abs score)
Dave Love <fx@gnu.org>
parents:
diff changeset
13325 (max gnus-score-decay-constant
Dave Love <fx@gnu.org>
parents:
diff changeset
13326 (* (abs score)
Dave Love <fx@gnu.org>
parents:
diff changeset
13327 gnus-score-decay-scale)))))))
Dave Love <fx@gnu.org>
parents:
diff changeset
13328 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
13329
Dave Love <fx@gnu.org>
parents:
diff changeset
13330 @vindex gnus-score-decay-scale
Dave Love <fx@gnu.org>
parents:
diff changeset
13331 @vindex gnus-score-decay-constant
Dave Love <fx@gnu.org>
parents:
diff changeset
13332 @code{gnus-score-decay-constant} is 3 by default and
Dave Love <fx@gnu.org>
parents:
diff changeset
13333 @code{gnus-score-decay-scale} is 0.05. This should cause the following:
Dave Love <fx@gnu.org>
parents:
diff changeset
13334
Dave Love <fx@gnu.org>
parents:
diff changeset
13335 @enumerate
Dave Love <fx@gnu.org>
parents:
diff changeset
13336 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
13337 Scores between -3 and 3 will be set to 0 when this function is called.
Dave Love <fx@gnu.org>
parents:
diff changeset
13338
Dave Love <fx@gnu.org>
parents:
diff changeset
13339 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
13340 Scores with magnitudes between 3 and 60 will be shrunk by 3.
Dave Love <fx@gnu.org>
parents:
diff changeset
13341
Dave Love <fx@gnu.org>
parents:
diff changeset
13342 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
13343 Scores with magnitudes greater than 60 will be shrunk by 5% of the
Dave Love <fx@gnu.org>
parents:
diff changeset
13344 score.
Dave Love <fx@gnu.org>
parents:
diff changeset
13345 @end enumerate
Dave Love <fx@gnu.org>
parents:
diff changeset
13346
Dave Love <fx@gnu.org>
parents:
diff changeset
13347 If you don't like this decay function, write your own. It is called
Dave Love <fx@gnu.org>
parents:
diff changeset
13348 with the score to be decayed as its only parameter, and it should return
Dave Love <fx@gnu.org>
parents:
diff changeset
13349 the new score, which should be an integer.
Dave Love <fx@gnu.org>
parents:
diff changeset
13350
Dave Love <fx@gnu.org>
parents:
diff changeset
13351 Gnus will try to decay scores once a day. If you haven't run Gnus for
Dave Love <fx@gnu.org>
parents:
diff changeset
13352 four days, Gnus will decay the scores four times, for instance.
Dave Love <fx@gnu.org>
parents:
diff changeset
13353
Dave Love <fx@gnu.org>
parents:
diff changeset
13354
Dave Love <fx@gnu.org>
parents:
diff changeset
13355 @node Various
Dave Love <fx@gnu.org>
parents:
diff changeset
13356 @chapter Various
Dave Love <fx@gnu.org>
parents:
diff changeset
13357
Dave Love <fx@gnu.org>
parents:
diff changeset
13358 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
13359 * Process/Prefix:: A convention used by many treatment commands.
Dave Love <fx@gnu.org>
parents:
diff changeset
13360 * Interactive:: Making Gnus ask you many questions.
Dave Love <fx@gnu.org>
parents:
diff changeset
13361 * Symbolic Prefixes:: How to supply some Gnus functions with options.
Dave Love <fx@gnu.org>
parents:
diff changeset
13362 * Formatting Variables:: You can specify what buffers should look like.
Dave Love <fx@gnu.org>
parents:
diff changeset
13363 * Windows Configuration:: Configuring the Gnus buffer windows.
Dave Love <fx@gnu.org>
parents:
diff changeset
13364 * Faces and Fonts:: How to change how faces look.
Dave Love <fx@gnu.org>
parents:
diff changeset
13365 * Compilation:: How to speed Gnus up.
Dave Love <fx@gnu.org>
parents:
diff changeset
13366 * Mode Lines:: Displaying information in the mode lines.
Dave Love <fx@gnu.org>
parents:
diff changeset
13367 * Highlighting and Menus:: Making buffers look all nice and cozy.
Dave Love <fx@gnu.org>
parents:
diff changeset
13368 * Buttons:: Get tendonitis in ten easy steps!
Dave Love <fx@gnu.org>
parents:
diff changeset
13369 * Daemons:: Gnus can do things behind your back.
Dave Love <fx@gnu.org>
parents:
diff changeset
13370 * NoCeM:: How to avoid spam and other fatty foods.
Dave Love <fx@gnu.org>
parents:
diff changeset
13371 * Undo:: Some actions can be undone.
Dave Love <fx@gnu.org>
parents:
diff changeset
13372 * Moderation:: What to do if you're a moderator.
Dave Love <fx@gnu.org>
parents:
diff changeset
13373 * XEmacs Enhancements:: There are more pictures and stuff under XEmacs.
Dave Love <fx@gnu.org>
parents:
diff changeset
13374 * Fuzzy Matching:: What's the big fuzz?
Dave Love <fx@gnu.org>
parents:
diff changeset
13375 * Thwarting Email Spam:: A how-to on avoiding unsolicited commercial email.
Dave Love <fx@gnu.org>
parents:
diff changeset
13376 * Various Various:: Things that are really various.
Dave Love <fx@gnu.org>
parents:
diff changeset
13377 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
13378
Dave Love <fx@gnu.org>
parents:
diff changeset
13379
Dave Love <fx@gnu.org>
parents:
diff changeset
13380 @node Process/Prefix
Dave Love <fx@gnu.org>
parents:
diff changeset
13381 @section Process/Prefix
Dave Love <fx@gnu.org>
parents:
diff changeset
13382 @cindex process/prefix convention
Dave Love <fx@gnu.org>
parents:
diff changeset
13383
Dave Love <fx@gnu.org>
parents:
diff changeset
13384 Many functions, among them functions for moving, decoding and saving
Dave Love <fx@gnu.org>
parents:
diff changeset
13385 articles, use what is known as the @dfn{Process/Prefix convention}.
Dave Love <fx@gnu.org>
parents:
diff changeset
13386
Dave Love <fx@gnu.org>
parents:
diff changeset
13387 This is a method for figuring out what articles the user wants the
Dave Love <fx@gnu.org>
parents:
diff changeset
13388 command to be performed on.
Dave Love <fx@gnu.org>
parents:
diff changeset
13389
Dave Love <fx@gnu.org>
parents:
diff changeset
13390 It goes like this:
Dave Love <fx@gnu.org>
parents:
diff changeset
13391
Dave Love <fx@gnu.org>
parents:
diff changeset
13392 If the numeric prefix is N, perform the operation on the next N
Dave Love <fx@gnu.org>
parents:
diff changeset
13393 articles, starting with the current one. If the numeric prefix is
Dave Love <fx@gnu.org>
parents:
diff changeset
13394 negative, perform the operation on the previous N articles, starting
Dave Love <fx@gnu.org>
parents:
diff changeset
13395 with the current one.
Dave Love <fx@gnu.org>
parents:
diff changeset
13396
Dave Love <fx@gnu.org>
parents:
diff changeset
13397 @vindex transient-mark-mode
Dave Love <fx@gnu.org>
parents:
diff changeset
13398 If @code{transient-mark-mode} in non-@code{nil} and the region is
Dave Love <fx@gnu.org>
parents:
diff changeset
13399 active, all articles in the region will be worked upon.
Dave Love <fx@gnu.org>
parents:
diff changeset
13400
Dave Love <fx@gnu.org>
parents:
diff changeset
13401 If there is no numeric prefix, but some articles are marked with the
Dave Love <fx@gnu.org>
parents:
diff changeset
13402 process mark, perform the operation on the articles marked with
Dave Love <fx@gnu.org>
parents:
diff changeset
13403 the process mark.
Dave Love <fx@gnu.org>
parents:
diff changeset
13404
Dave Love <fx@gnu.org>
parents:
diff changeset
13405 If there is neither a numeric prefix nor any articles marked with the
Dave Love <fx@gnu.org>
parents:
diff changeset
13406 process mark, just perform the operation on the current article.
Dave Love <fx@gnu.org>
parents:
diff changeset
13407
Dave Love <fx@gnu.org>
parents:
diff changeset
13408 Quite simple, really, but it needs to be made clear so that surprises
Dave Love <fx@gnu.org>
parents:
diff changeset
13409 are avoided.
Dave Love <fx@gnu.org>
parents:
diff changeset
13410
Dave Love <fx@gnu.org>
parents:
diff changeset
13411 Commands that react to the process mark will push the current list of
Dave Love <fx@gnu.org>
parents:
diff changeset
13412 process marked articles onto a stack and will then clear all process
Dave Love <fx@gnu.org>
parents:
diff changeset
13413 marked articles. You can restore the previous configuration with the
Dave Love <fx@gnu.org>
parents:
diff changeset
13414 @kbd{M P y} command (@pxref{Setting Process Marks}).
Dave Love <fx@gnu.org>
parents:
diff changeset
13415
Dave Love <fx@gnu.org>
parents:
diff changeset
13416 @vindex gnus-summary-goto-unread
Dave Love <fx@gnu.org>
parents:
diff changeset
13417 One thing that seems to shock & horrify lots of people is that, for
Dave Love <fx@gnu.org>
parents:
diff changeset
13418 instance, @kbd{3 d} does exactly the same as @kbd{d} @kbd{d} @kbd{d}.
Dave Love <fx@gnu.org>
parents:
diff changeset
13419 Since each @kbd{d} (which marks the current article as read) by default
Dave Love <fx@gnu.org>
parents:
diff changeset
13420 goes to the next unread article after marking, this means that @kbd{3 d}
Dave Love <fx@gnu.org>
parents:
diff changeset
13421 will mark the next three unread articles as read, no matter what the
Dave Love <fx@gnu.org>
parents:
diff changeset
13422 summary buffer looks like. Set @code{gnus-summary-goto-unread} to
Dave Love <fx@gnu.org>
parents:
diff changeset
13423 @code{nil} for a more straightforward action.
Dave Love <fx@gnu.org>
parents:
diff changeset
13424
Dave Love <fx@gnu.org>
parents:
diff changeset
13425
Dave Love <fx@gnu.org>
parents:
diff changeset
13426 @node Interactive
Dave Love <fx@gnu.org>
parents:
diff changeset
13427 @section Interactive
Dave Love <fx@gnu.org>
parents:
diff changeset
13428 @cindex interaction
Dave Love <fx@gnu.org>
parents:
diff changeset
13429
Dave Love <fx@gnu.org>
parents:
diff changeset
13430 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
13431
Dave Love <fx@gnu.org>
parents:
diff changeset
13432 @item gnus-novice-user
Dave Love <fx@gnu.org>
parents:
diff changeset
13433 @vindex gnus-novice-user
Dave Love <fx@gnu.org>
parents:
diff changeset
13434 If this variable is non-@code{nil}, you are either a newcomer to the
Dave Love <fx@gnu.org>
parents:
diff changeset
13435 World of Usenet, or you are very cautious, which is a nice thing to be,
Dave Love <fx@gnu.org>
parents:
diff changeset
13436 really. You will be given questions of the type ``Are you sure you want
Dave Love <fx@gnu.org>
parents:
diff changeset
13437 to do this?'' before doing anything dangerous. This is @code{t} by
Dave Love <fx@gnu.org>
parents:
diff changeset
13438 default.
Dave Love <fx@gnu.org>
parents:
diff changeset
13439
Dave Love <fx@gnu.org>
parents:
diff changeset
13440 @item gnus-expert-user
Dave Love <fx@gnu.org>
parents:
diff changeset
13441 @vindex gnus-expert-user
Dave Love <fx@gnu.org>
parents:
diff changeset
13442 If this variable is non-@code{nil}, you will seldom be asked any
Dave Love <fx@gnu.org>
parents:
diff changeset
13443 questions by Gnus. It will simply assume you know what you're doing, no
Dave Love <fx@gnu.org>
parents:
diff changeset
13444 matter how strange.
Dave Love <fx@gnu.org>
parents:
diff changeset
13445
Dave Love <fx@gnu.org>
parents:
diff changeset
13446 @item gnus-interactive-catchup
Dave Love <fx@gnu.org>
parents:
diff changeset
13447 @vindex gnus-interactive-catchup
Dave Love <fx@gnu.org>
parents:
diff changeset
13448 Require confirmation before catching up a group if non-@code{nil}. It
Dave Love <fx@gnu.org>
parents:
diff changeset
13449 is @code{t} by default.
Dave Love <fx@gnu.org>
parents:
diff changeset
13450
Dave Love <fx@gnu.org>
parents:
diff changeset
13451 @item gnus-interactive-exit
Dave Love <fx@gnu.org>
parents:
diff changeset
13452 @vindex gnus-interactive-exit
Dave Love <fx@gnu.org>
parents:
diff changeset
13453 Require confirmation before exiting Gnus. This variable is @code{t} by
Dave Love <fx@gnu.org>
parents:
diff changeset
13454 default.
Dave Love <fx@gnu.org>
parents:
diff changeset
13455 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
13456
Dave Love <fx@gnu.org>
parents:
diff changeset
13457
Dave Love <fx@gnu.org>
parents:
diff changeset
13458 @node Symbolic Prefixes
Dave Love <fx@gnu.org>
parents:
diff changeset
13459 @section Symbolic Prefixes
Dave Love <fx@gnu.org>
parents:
diff changeset
13460 @cindex symbolic prefixes
Dave Love <fx@gnu.org>
parents:
diff changeset
13461
Dave Love <fx@gnu.org>
parents:
diff changeset
13462 Quite a lot of Emacs commands react to the (numeric) prefix. For
Dave Love <fx@gnu.org>
parents:
diff changeset
13463 instance, @kbd{C-u 4 C-f} moves point four characters forward, and
Dave Love <fx@gnu.org>
parents:
diff changeset
13464 @kbd{C-u 9 0 0 I s s p} adds a permanent @code{Subject} substring score
Dave Love <fx@gnu.org>
parents:
diff changeset
13465 rule of 900 to the current article.
Dave Love <fx@gnu.org>
parents:
diff changeset
13466
Dave Love <fx@gnu.org>
parents:
diff changeset
13467 This is all nice and well, but what if you want to give a command some
Dave Love <fx@gnu.org>
parents:
diff changeset
13468 additional information? Well, what most commands do is interpret the
Dave Love <fx@gnu.org>
parents:
diff changeset
13469 ``raw'' prefix in some special way. @kbd{C-u 0 C-x C-s} means that one
Dave Love <fx@gnu.org>
parents:
diff changeset
13470 doesn't want a backup file to be created when saving the current buffer,
Dave Love <fx@gnu.org>
parents:
diff changeset
13471 for instance. But what if you want to save without making a backup
Dave Love <fx@gnu.org>
parents:
diff changeset
13472 file, and you want Emacs to flash lights and play a nice tune at the
Dave Love <fx@gnu.org>
parents:
diff changeset
13473 same time? You can't, and you're probably perfectly happy that way.
Dave Love <fx@gnu.org>
parents:
diff changeset
13474
Dave Love <fx@gnu.org>
parents:
diff changeset
13475 @kindex M-i (Summary)
Dave Love <fx@gnu.org>
parents:
diff changeset
13476 @findex gnus-symbolic-argument
Dave Love <fx@gnu.org>
parents:
diff changeset
13477 I'm not, so I've added a second prefix---the @dfn{symbolic prefix}. The
Dave Love <fx@gnu.org>
parents:
diff changeset
13478 prefix key is @kbd{M-i} (@code{gnus-symbolic-argument}), and the next
Dave Love <fx@gnu.org>
parents:
diff changeset
13479 character typed in is the value. You can stack as many @kbd{M-i}
Dave Love <fx@gnu.org>
parents:
diff changeset
13480 prefixes as you want. @kbd{M-i a M-C-u} means ``feed the @kbd{M-C-u}
Dave Love <fx@gnu.org>
parents:
diff changeset
13481 command the symbolic prefix @code{a}''. @kbd{M-i a M-i b M-C-u} means
Dave Love <fx@gnu.org>
parents:
diff changeset
13482 ``feed the @kbd{M-C-u} command the symbolic prefixes @code{a} and
Dave Love <fx@gnu.org>
parents:
diff changeset
13483 @code{b}''. You get the drift.
Dave Love <fx@gnu.org>
parents:
diff changeset
13484
Dave Love <fx@gnu.org>
parents:
diff changeset
13485 Typing in symbolic prefixes to commands that don't accept them doesn't
Dave Love <fx@gnu.org>
parents:
diff changeset
13486 hurt, but it doesn't do any good either. Currently not many Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
13487 functions make use of the symbolic prefix.
Dave Love <fx@gnu.org>
parents:
diff changeset
13488
Dave Love <fx@gnu.org>
parents:
diff changeset
13489 If you're interested in how Gnus implements this, @pxref{Extended
Dave Love <fx@gnu.org>
parents:
diff changeset
13490 Interactive}.
Dave Love <fx@gnu.org>
parents:
diff changeset
13491
Dave Love <fx@gnu.org>
parents:
diff changeset
13492
Dave Love <fx@gnu.org>
parents:
diff changeset
13493 @node Formatting Variables
Dave Love <fx@gnu.org>
parents:
diff changeset
13494 @section Formatting Variables
Dave Love <fx@gnu.org>
parents:
diff changeset
13495 @cindex formatting variables
Dave Love <fx@gnu.org>
parents:
diff changeset
13496
Dave Love <fx@gnu.org>
parents:
diff changeset
13497 Throughout this manual you've probably noticed lots of variables called
Dave Love <fx@gnu.org>
parents:
diff changeset
13498 things like @code{gnus-group-line-format} and
Dave Love <fx@gnu.org>
parents:
diff changeset
13499 @code{gnus-summary-mode-line-format}. These control how Gnus is to
Dave Love <fx@gnu.org>
parents:
diff changeset
13500 output lines in the various buffers. There's quite a lot of them.
Dave Love <fx@gnu.org>
parents:
diff changeset
13501 Fortunately, they all use the same syntax, so there's not that much to
Dave Love <fx@gnu.org>
parents:
diff changeset
13502 be annoyed by.
Dave Love <fx@gnu.org>
parents:
diff changeset
13503
Dave Love <fx@gnu.org>
parents:
diff changeset
13504 Here's an example format spec (from the group buffer): @samp{%M%S%5y:
Dave Love <fx@gnu.org>
parents:
diff changeset
13505 %(%g%)\n}. We see that it is indeed extremely ugly, and that there are
Dave Love <fx@gnu.org>
parents:
diff changeset
13506 lots of percentages everywhere.
Dave Love <fx@gnu.org>
parents:
diff changeset
13507
Dave Love <fx@gnu.org>
parents:
diff changeset
13508 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
13509 * Formatting Basics:: A formatting variable is basically a format string.
Dave Love <fx@gnu.org>
parents:
diff changeset
13510 * Mode Line Formatting:: Some rules about mode line formatting variables.
Dave Love <fx@gnu.org>
parents:
diff changeset
13511 * Advanced Formatting:: Modifying output in various ways.
Dave Love <fx@gnu.org>
parents:
diff changeset
13512 * User-Defined Specs:: Having Gnus call your own functions.
Dave Love <fx@gnu.org>
parents:
diff changeset
13513 * Formatting Fonts:: Making the formatting look colorful and nice.
Dave Love <fx@gnu.org>
parents:
diff changeset
13514 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
13515
Dave Love <fx@gnu.org>
parents:
diff changeset
13516 Currently Gnus uses the following formatting variables:
Dave Love <fx@gnu.org>
parents:
diff changeset
13517 @code{gnus-group-line-format}, @code{gnus-summary-line-format},
Dave Love <fx@gnu.org>
parents:
diff changeset
13518 @code{gnus-server-line-format}, @code{gnus-topic-line-format},
Dave Love <fx@gnu.org>
parents:
diff changeset
13519 @code{gnus-group-mode-line-format},
Dave Love <fx@gnu.org>
parents:
diff changeset
13520 @code{gnus-summary-mode-line-format},
Dave Love <fx@gnu.org>
parents:
diff changeset
13521 @code{gnus-article-mode-line-format},
Dave Love <fx@gnu.org>
parents:
diff changeset
13522 @code{gnus-server-mode-line-format}, and
Dave Love <fx@gnu.org>
parents:
diff changeset
13523 @code{gnus-summary-pick-line-format}.
Dave Love <fx@gnu.org>
parents:
diff changeset
13524
Dave Love <fx@gnu.org>
parents:
diff changeset
13525 All these format variables can also be arbitrary elisp forms. In that
Dave Love <fx@gnu.org>
parents:
diff changeset
13526 case, they will be @code{eval}ed to insert the required lines.
Dave Love <fx@gnu.org>
parents:
diff changeset
13527
Dave Love <fx@gnu.org>
parents:
diff changeset
13528 @kindex M-x gnus-update-format
Dave Love <fx@gnu.org>
parents:
diff changeset
13529 @findex gnus-update-format
Dave Love <fx@gnu.org>
parents:
diff changeset
13530 Gnus includes a command to help you while creating your own format
Dave Love <fx@gnu.org>
parents:
diff changeset
13531 specs. @kbd{M-x gnus-update-format} will @code{eval} the current form,
Dave Love <fx@gnu.org>
parents:
diff changeset
13532 update the spec in question and pop you to a buffer where you can
Dave Love <fx@gnu.org>
parents:
diff changeset
13533 examine the resulting lisp code to be run to generate the line.
Dave Love <fx@gnu.org>
parents:
diff changeset
13534
Dave Love <fx@gnu.org>
parents:
diff changeset
13535
Dave Love <fx@gnu.org>
parents:
diff changeset
13536
Dave Love <fx@gnu.org>
parents:
diff changeset
13537 @node Formatting Basics
Dave Love <fx@gnu.org>
parents:
diff changeset
13538 @subsection Formatting Basics
Dave Love <fx@gnu.org>
parents:
diff changeset
13539
Dave Love <fx@gnu.org>
parents:
diff changeset
13540 Each @samp{%} element will be replaced by some string or other when the
Dave Love <fx@gnu.org>
parents:
diff changeset
13541 buffer in question is generated. @samp{%5y} means ``insert the @samp{y}
Dave Love <fx@gnu.org>
parents:
diff changeset
13542 spec, and pad with spaces to get a 5-character field''.
Dave Love <fx@gnu.org>
parents:
diff changeset
13543
Dave Love <fx@gnu.org>
parents:
diff changeset
13544 As with normal C and Emacs Lisp formatting strings, the numerical
Dave Love <fx@gnu.org>
parents:
diff changeset
13545 modifier between the @samp{%} and the formatting type character will
Dave Love <fx@gnu.org>
parents:
diff changeset
13546 @dfn{pad} the output so that it is always at least that long.
Dave Love <fx@gnu.org>
parents:
diff changeset
13547 @samp{%5y} will make the field always (at least) five characters wide by
Dave Love <fx@gnu.org>
parents:
diff changeset
13548 padding with spaces to the left. If you say @samp{%-5y}, it will pad to
Dave Love <fx@gnu.org>
parents:
diff changeset
13549 the right instead.
Dave Love <fx@gnu.org>
parents:
diff changeset
13550
Dave Love <fx@gnu.org>
parents:
diff changeset
13551 You may also wish to limit the length of the field to protect against
Dave Love <fx@gnu.org>
parents:
diff changeset
13552 particularly wide values. For that you can say @samp{%4,6y}, which
Dave Love <fx@gnu.org>
parents:
diff changeset
13553 means that the field will never be more than 6 characters wide and never
Dave Love <fx@gnu.org>
parents:
diff changeset
13554 less than 4 characters wide.
Dave Love <fx@gnu.org>
parents:
diff changeset
13555
Dave Love <fx@gnu.org>
parents:
diff changeset
13556
Dave Love <fx@gnu.org>
parents:
diff changeset
13557 @node Mode Line Formatting
Dave Love <fx@gnu.org>
parents:
diff changeset
13558 @subsection Mode Line Formatting
Dave Love <fx@gnu.org>
parents:
diff changeset
13559
Dave Love <fx@gnu.org>
parents:
diff changeset
13560 Mode line formatting variables (e.g.,
Dave Love <fx@gnu.org>
parents:
diff changeset
13561 @code{gnus-summary-mode-line-format}) follow the same rules as other,
Dave Love <fx@gnu.org>
parents:
diff changeset
13562 buffer line oriented formatting variables (@pxref{Formatting Basics})
Dave Love <fx@gnu.org>
parents:
diff changeset
13563 with the following two differences:
Dave Love <fx@gnu.org>
parents:
diff changeset
13564
Dave Love <fx@gnu.org>
parents:
diff changeset
13565 @enumerate
Dave Love <fx@gnu.org>
parents:
diff changeset
13566
Dave Love <fx@gnu.org>
parents:
diff changeset
13567 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
13568 There must be no newline (@samp{\n}) at the end.
Dave Love <fx@gnu.org>
parents:
diff changeset
13569
Dave Love <fx@gnu.org>
parents:
diff changeset
13570 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
13571 The special @samp{%%b} spec can be used to display the buffer name.
Dave Love <fx@gnu.org>
parents:
diff changeset
13572 Well, it's no spec at all, really---@samp{%%} is just a way to quote
Dave Love <fx@gnu.org>
parents:
diff changeset
13573 @samp{%} to allow it to pass through the formatting machinery unmangled,
Dave Love <fx@gnu.org>
parents:
diff changeset
13574 so that Emacs receives @samp{%b}, which is something the Emacs mode line
Dave Love <fx@gnu.org>
parents:
diff changeset
13575 display interprets to mean ``show the buffer name''. For a full list of
Dave Love <fx@gnu.org>
parents:
diff changeset
13576 mode line specs Emacs understands, see the documentation of the
Dave Love <fx@gnu.org>
parents:
diff changeset
13577 @code{mode-line-format} variable.
Dave Love <fx@gnu.org>
parents:
diff changeset
13578
Dave Love <fx@gnu.org>
parents:
diff changeset
13579 @end enumerate
Dave Love <fx@gnu.org>
parents:
diff changeset
13580
Dave Love <fx@gnu.org>
parents:
diff changeset
13581
Dave Love <fx@gnu.org>
parents:
diff changeset
13582 @node Advanced Formatting
Dave Love <fx@gnu.org>
parents:
diff changeset
13583 @subsection Advanced Formatting
Dave Love <fx@gnu.org>
parents:
diff changeset
13584
Dave Love <fx@gnu.org>
parents:
diff changeset
13585 It is frequently useful to post-process the fields in some way.
Dave Love <fx@gnu.org>
parents:
diff changeset
13586 Padding, limiting, cutting off parts and suppressing certain values can
Dave Love <fx@gnu.org>
parents:
diff changeset
13587 be achieved by using @dfn{tilde modifiers}. A typical tilde spec might
Dave Love <fx@gnu.org>
parents:
diff changeset
13588 look like @samp{%~(cut 3)~(ignore "0")y}.
Dave Love <fx@gnu.org>
parents:
diff changeset
13589
Dave Love <fx@gnu.org>
parents:
diff changeset
13590 These are the valid modifiers:
Dave Love <fx@gnu.org>
parents:
diff changeset
13591
Dave Love <fx@gnu.org>
parents:
diff changeset
13592 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
13593 @item pad
Dave Love <fx@gnu.org>
parents:
diff changeset
13594 @itemx pad-left
Dave Love <fx@gnu.org>
parents:
diff changeset
13595 Pad the field to the left with spaces until it reaches the required
Dave Love <fx@gnu.org>
parents:
diff changeset
13596 length.
Dave Love <fx@gnu.org>
parents:
diff changeset
13597
Dave Love <fx@gnu.org>
parents:
diff changeset
13598 @item pad-right
Dave Love <fx@gnu.org>
parents:
diff changeset
13599 Pad the field to the right with spaces until it reaches the required
Dave Love <fx@gnu.org>
parents:
diff changeset
13600 length.
Dave Love <fx@gnu.org>
parents:
diff changeset
13601
Dave Love <fx@gnu.org>
parents:
diff changeset
13602 @item max
Dave Love <fx@gnu.org>
parents:
diff changeset
13603 @itemx max-left
Dave Love <fx@gnu.org>
parents:
diff changeset
13604 Cut off characters from the left until it reaches the specified length.
Dave Love <fx@gnu.org>
parents:
diff changeset
13605
Dave Love <fx@gnu.org>
parents:
diff changeset
13606 @item max-right
Dave Love <fx@gnu.org>
parents:
diff changeset
13607 Cut off characters from the right until it reaches the specified
Dave Love <fx@gnu.org>
parents:
diff changeset
13608 length.
Dave Love <fx@gnu.org>
parents:
diff changeset
13609
Dave Love <fx@gnu.org>
parents:
diff changeset
13610 @item cut
Dave Love <fx@gnu.org>
parents:
diff changeset
13611 @itemx cut-left
Dave Love <fx@gnu.org>
parents:
diff changeset
13612 Cut off the specified number of characters from the left.
Dave Love <fx@gnu.org>
parents:
diff changeset
13613
Dave Love <fx@gnu.org>
parents:
diff changeset
13614 @item cut-right
Dave Love <fx@gnu.org>
parents:
diff changeset
13615 Cut off the specified number of characters from the right.
Dave Love <fx@gnu.org>
parents:
diff changeset
13616
Dave Love <fx@gnu.org>
parents:
diff changeset
13617 @item ignore
Dave Love <fx@gnu.org>
parents:
diff changeset
13618 Return an empty string if the field is equal to the specified value.
Dave Love <fx@gnu.org>
parents:
diff changeset
13619
Dave Love <fx@gnu.org>
parents:
diff changeset
13620 @item form
Dave Love <fx@gnu.org>
parents:
diff changeset
13621 Use the specified form as the field value when the @samp{@@} spec is
Dave Love <fx@gnu.org>
parents:
diff changeset
13622 used.
Dave Love <fx@gnu.org>
parents:
diff changeset
13623 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
13624
Dave Love <fx@gnu.org>
parents:
diff changeset
13625 Let's take an example. The @samp{%o} spec in the summary mode lines
Dave Love <fx@gnu.org>
parents:
diff changeset
13626 will return a date in compact ISO8601 format---@samp{19960809T230410}.
Dave Love <fx@gnu.org>
parents:
diff changeset
13627 This is quite a mouthful, so we want to shave off the century number and
Dave Love <fx@gnu.org>
parents:
diff changeset
13628 the time, leaving us with a six-character date. That would be
Dave Love <fx@gnu.org>
parents:
diff changeset
13629 @samp{%~(cut-left 2)~(max-right 6)~(pad 6)o}. (Cutting is done before
Dave Love <fx@gnu.org>
parents:
diff changeset
13630 maxing, and we need the padding to ensure that the date is never less
Dave Love <fx@gnu.org>
parents:
diff changeset
13631 than 6 characters to make it look nice in columns.)
Dave Love <fx@gnu.org>
parents:
diff changeset
13632
Dave Love <fx@gnu.org>
parents:
diff changeset
13633 Ignoring is done first; then cutting; then maxing; and then as the very
Dave Love <fx@gnu.org>
parents:
diff changeset
13634 last operation, padding.
Dave Love <fx@gnu.org>
parents:
diff changeset
13635
Dave Love <fx@gnu.org>
parents:
diff changeset
13636 If you use lots of these advanced thingies, you'll find that Gnus gets
Dave Love <fx@gnu.org>
parents:
diff changeset
13637 quite slow. This can be helped enormously by running @kbd{M-x
Dave Love <fx@gnu.org>
parents:
diff changeset
13638 gnus-compile} when you are satisfied with the look of your lines.
Dave Love <fx@gnu.org>
parents:
diff changeset
13639 @xref{Compilation}.
Dave Love <fx@gnu.org>
parents:
diff changeset
13640
Dave Love <fx@gnu.org>
parents:
diff changeset
13641
Dave Love <fx@gnu.org>
parents:
diff changeset
13642 @node User-Defined Specs
Dave Love <fx@gnu.org>
parents:
diff changeset
13643 @subsection User-Defined Specs
Dave Love <fx@gnu.org>
parents:
diff changeset
13644
Dave Love <fx@gnu.org>
parents:
diff changeset
13645 All the specs allow for inserting user defined specifiers---@samp{u}.
Dave Love <fx@gnu.org>
parents:
diff changeset
13646 The next character in the format string should be a letter. Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
13647 will call the function @code{gnus-user-format-function-}@samp{X}, where
Dave Love <fx@gnu.org>
parents:
diff changeset
13648 @samp{X} is the letter following @samp{%u}. The function will be passed
Dave Love <fx@gnu.org>
parents:
diff changeset
13649 a single parameter---what the parameter means depends on what buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
13650 it's being called from. The function should return a string, which will
Dave Love <fx@gnu.org>
parents:
diff changeset
13651 be inserted into the buffer just like information from any other
Dave Love <fx@gnu.org>
parents:
diff changeset
13652 specifier. This function may also be called with dummy values, so it
Dave Love <fx@gnu.org>
parents:
diff changeset
13653 should protect against that.
Dave Love <fx@gnu.org>
parents:
diff changeset
13654
Dave Love <fx@gnu.org>
parents:
diff changeset
13655 You can also use tilde modifiers (@pxref{Advanced Formatting} to achieve
Dave Love <fx@gnu.org>
parents:
diff changeset
13656 much the same without defining new functions. Here's an example:
Dave Love <fx@gnu.org>
parents:
diff changeset
13657 @samp{%~(form (count-lines (point-min) (point)))@@}. The form
Dave Love <fx@gnu.org>
parents:
diff changeset
13658 given here will be evaluated to yield the current line number, and then
Dave Love <fx@gnu.org>
parents:
diff changeset
13659 inserted.
Dave Love <fx@gnu.org>
parents:
diff changeset
13660
Dave Love <fx@gnu.org>
parents:
diff changeset
13661
Dave Love <fx@gnu.org>
parents:
diff changeset
13662 @node Formatting Fonts
Dave Love <fx@gnu.org>
parents:
diff changeset
13663 @subsection Formatting Fonts
Dave Love <fx@gnu.org>
parents:
diff changeset
13664
Dave Love <fx@gnu.org>
parents:
diff changeset
13665 There are specs for highlighting, and these are shared by all the format
Dave Love <fx@gnu.org>
parents:
diff changeset
13666 variables. Text inside the @samp{%(} and @samp{%)} specifiers will get
Dave Love <fx@gnu.org>
parents:
diff changeset
13667 the special @code{mouse-face} property set, which means that it will be
Dave Love <fx@gnu.org>
parents:
diff changeset
13668 highlighted (with @code{gnus-mouse-face}) when you put the mouse pointer
Dave Love <fx@gnu.org>
parents:
diff changeset
13669 over it.
Dave Love <fx@gnu.org>
parents:
diff changeset
13670
Dave Love <fx@gnu.org>
parents:
diff changeset
13671 Text inside the @samp{%@{} and @samp{%@}} specifiers will have their
Dave Love <fx@gnu.org>
parents:
diff changeset
13672 normal faces set using @code{gnus-face-0}, which is @code{bold} by
Dave Love <fx@gnu.org>
parents:
diff changeset
13673 default. If you say @samp{%1@{}, you'll get @code{gnus-face-1} instead,
Dave Love <fx@gnu.org>
parents:
diff changeset
13674 and so on. Create as many faces as you wish. The same goes for the
Dave Love <fx@gnu.org>
parents:
diff changeset
13675 @code{mouse-face} specs---you can say @samp{%3(hello%)} to have
Dave Love <fx@gnu.org>
parents:
diff changeset
13676 @samp{hello} mouse-highlighted with @code{gnus-mouse-face-3}.
Dave Love <fx@gnu.org>
parents:
diff changeset
13677
Dave Love <fx@gnu.org>
parents:
diff changeset
13678 Here's an alternative recipe for the group buffer:
Dave Love <fx@gnu.org>
parents:
diff changeset
13679
Dave Love <fx@gnu.org>
parents:
diff changeset
13680 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
13681 ;; Create three face types.
Dave Love <fx@gnu.org>
parents:
diff changeset
13682 (setq gnus-face-1 'bold)
Dave Love <fx@gnu.org>
parents:
diff changeset
13683 (setq gnus-face-3 'italic)
Dave Love <fx@gnu.org>
parents:
diff changeset
13684
Dave Love <fx@gnu.org>
parents:
diff changeset
13685 ;; We want the article count to be in
Dave Love <fx@gnu.org>
parents:
diff changeset
13686 ;; a bold and green face. So we create
Dave Love <fx@gnu.org>
parents:
diff changeset
13687 ;; a new face called `my-green-bold'.
Dave Love <fx@gnu.org>
parents:
diff changeset
13688 (copy-face 'bold 'my-green-bold)
Dave Love <fx@gnu.org>
parents:
diff changeset
13689 ;; Set the color.
Dave Love <fx@gnu.org>
parents:
diff changeset
13690 (set-face-foreground 'my-green-bold "ForestGreen")
Dave Love <fx@gnu.org>
parents:
diff changeset
13691 (setq gnus-face-2 'my-green-bold)
Dave Love <fx@gnu.org>
parents:
diff changeset
13692
Dave Love <fx@gnu.org>
parents:
diff changeset
13693 ;; Set the new & fancy format.
Dave Love <fx@gnu.org>
parents:
diff changeset
13694 (setq gnus-group-line-format
Dave Love <fx@gnu.org>
parents:
diff changeset
13695 "%M%S%3@{%5y%@}%2[:%] %(%1@{%g%@}%)\n")
Dave Love <fx@gnu.org>
parents:
diff changeset
13696 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
13697
Dave Love <fx@gnu.org>
parents:
diff changeset
13698 I'm sure you'll be able to use this scheme to create totally unreadable
Dave Love <fx@gnu.org>
parents:
diff changeset
13699 and extremely vulgar displays. Have fun!
Dave Love <fx@gnu.org>
parents:
diff changeset
13700
Dave Love <fx@gnu.org>
parents:
diff changeset
13701 Note that the @samp{%(} specs (and friends) do not make any sense on the
Dave Love <fx@gnu.org>
parents:
diff changeset
13702 mode-line variables.
Dave Love <fx@gnu.org>
parents:
diff changeset
13703
Dave Love <fx@gnu.org>
parents:
diff changeset
13704
Dave Love <fx@gnu.org>
parents:
diff changeset
13705 @node Windows Configuration
Dave Love <fx@gnu.org>
parents:
diff changeset
13706 @section Windows Configuration
Dave Love <fx@gnu.org>
parents:
diff changeset
13707 @cindex windows configuration
Dave Love <fx@gnu.org>
parents:
diff changeset
13708
Dave Love <fx@gnu.org>
parents:
diff changeset
13709 No, there's nothing here about X, so be quiet.
Dave Love <fx@gnu.org>
parents:
diff changeset
13710
Dave Love <fx@gnu.org>
parents:
diff changeset
13711 @vindex gnus-use-full-window
Dave Love <fx@gnu.org>
parents:
diff changeset
13712 If @code{gnus-use-full-window} non-@code{nil}, Gnus will delete all
Dave Love <fx@gnu.org>
parents:
diff changeset
13713 other windows and occupy the entire Emacs screen by itself. It is
Dave Love <fx@gnu.org>
parents:
diff changeset
13714 @code{t} by default.
Dave Love <fx@gnu.org>
parents:
diff changeset
13715
Dave Love <fx@gnu.org>
parents:
diff changeset
13716 @vindex gnus-buffer-configuration
Dave Love <fx@gnu.org>
parents:
diff changeset
13717 @code{gnus-buffer-configuration} describes how much space each Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
13718 buffer should be given. Here's an excerpt of this variable:
Dave Love <fx@gnu.org>
parents:
diff changeset
13719
Dave Love <fx@gnu.org>
parents:
diff changeset
13720 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
13721 ((group (vertical 1.0 (group 1.0 point)
Dave Love <fx@gnu.org>
parents:
diff changeset
13722 (if gnus-carpal (group-carpal 4))))
Dave Love <fx@gnu.org>
parents:
diff changeset
13723 (article (vertical 1.0 (summary 0.25 point)
Dave Love <fx@gnu.org>
parents:
diff changeset
13724 (article 1.0))))
Dave Love <fx@gnu.org>
parents:
diff changeset
13725 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
13726
Dave Love <fx@gnu.org>
parents:
diff changeset
13727 This is an alist. The @dfn{key} is a symbol that names some action or
Dave Love <fx@gnu.org>
parents:
diff changeset
13728 other. For instance, when displaying the group buffer, the window
Dave Love <fx@gnu.org>
parents:
diff changeset
13729 configuration function will use @code{group} as the key. A full list of
Dave Love <fx@gnu.org>
parents:
diff changeset
13730 possible names is listed below.
Dave Love <fx@gnu.org>
parents:
diff changeset
13731
Dave Love <fx@gnu.org>
parents:
diff changeset
13732 The @dfn{value} (i.e., the @dfn{split}) says how much space each buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
13733 should occupy. To take the @code{article} split as an example -
Dave Love <fx@gnu.org>
parents:
diff changeset
13734
Dave Love <fx@gnu.org>
parents:
diff changeset
13735 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
13736 (article (vertical 1.0 (summary 0.25 point)
Dave Love <fx@gnu.org>
parents:
diff changeset
13737 (article 1.0)))
Dave Love <fx@gnu.org>
parents:
diff changeset
13738 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
13739
Dave Love <fx@gnu.org>
parents:
diff changeset
13740 This @dfn{split} says that the summary buffer should occupy 25% of upper
Dave Love <fx@gnu.org>
parents:
diff changeset
13741 half of the screen, and that it is placed over the article buffer. As
Dave Love <fx@gnu.org>
parents:
diff changeset
13742 you may have noticed, 100% + 25% is actually 125% (yup, I saw y'all
Dave Love <fx@gnu.org>
parents:
diff changeset
13743 reaching for that calculator there). However, the special number
Dave Love <fx@gnu.org>
parents:
diff changeset
13744 @code{1.0} is used to signal that this buffer should soak up all the
Dave Love <fx@gnu.org>
parents:
diff changeset
13745 rest of the space available after the rest of the buffers have taken
Dave Love <fx@gnu.org>
parents:
diff changeset
13746 whatever they need. There should be only one buffer with the @code{1.0}
Dave Love <fx@gnu.org>
parents:
diff changeset
13747 size spec per split.
Dave Love <fx@gnu.org>
parents:
diff changeset
13748
Dave Love <fx@gnu.org>
parents:
diff changeset
13749 Point will be put in the buffer that has the optional third element
Dave Love <fx@gnu.org>
parents:
diff changeset
13750 @code{point}. In a @code{frame} split, the last subsplit having a leaf
Dave Love <fx@gnu.org>
parents:
diff changeset
13751 split where the tag @code{frame-focus} is a member (i.e. is the third or
Dave Love <fx@gnu.org>
parents:
diff changeset
13752 fourth element in the list, depending on whether the @code{point} tag is
Dave Love <fx@gnu.org>
parents:
diff changeset
13753 present) gets focus.
Dave Love <fx@gnu.org>
parents:
diff changeset
13754
Dave Love <fx@gnu.org>
parents:
diff changeset
13755 Here's a more complicated example:
Dave Love <fx@gnu.org>
parents:
diff changeset
13756
Dave Love <fx@gnu.org>
parents:
diff changeset
13757 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
13758 (article (vertical 1.0 (group 4)
Dave Love <fx@gnu.org>
parents:
diff changeset
13759 (summary 0.25 point)
Dave Love <fx@gnu.org>
parents:
diff changeset
13760 (if gnus-carpal (summary-carpal 4))
Dave Love <fx@gnu.org>
parents:
diff changeset
13761 (article 1.0)))
Dave Love <fx@gnu.org>
parents:
diff changeset
13762 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
13763
Dave Love <fx@gnu.org>
parents:
diff changeset
13764 If the size spec is an integer instead of a floating point number,
Dave Love <fx@gnu.org>
parents:
diff changeset
13765 then that number will be used to say how many lines a buffer should
Dave Love <fx@gnu.org>
parents:
diff changeset
13766 occupy, not a percentage.
Dave Love <fx@gnu.org>
parents:
diff changeset
13767
Dave Love <fx@gnu.org>
parents:
diff changeset
13768 If the @dfn{split} looks like something that can be @code{eval}ed (to be
Dave Love <fx@gnu.org>
parents:
diff changeset
13769 precise---if the @code{car} of the split is a function or a subr), this
Dave Love <fx@gnu.org>
parents:
diff changeset
13770 split will be @code{eval}ed. If the result is non-@code{nil}, it will
Dave Love <fx@gnu.org>
parents:
diff changeset
13771 be used as a split. This means that there will be three buffers if
Dave Love <fx@gnu.org>
parents:
diff changeset
13772 @code{gnus-carpal} is @code{nil}, and four buffers if @code{gnus-carpal}
Dave Love <fx@gnu.org>
parents:
diff changeset
13773 is non-@code{nil}.
Dave Love <fx@gnu.org>
parents:
diff changeset
13774
Dave Love <fx@gnu.org>
parents:
diff changeset
13775 Not complicated enough for you? Well, try this on for size:
Dave Love <fx@gnu.org>
parents:
diff changeset
13776
Dave Love <fx@gnu.org>
parents:
diff changeset
13777 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
13778 (article (horizontal 1.0
Dave Love <fx@gnu.org>
parents:
diff changeset
13779 (vertical 0.5
Dave Love <fx@gnu.org>
parents:
diff changeset
13780 (group 1.0)
Dave Love <fx@gnu.org>
parents:
diff changeset
13781 (gnus-carpal 4))
Dave Love <fx@gnu.org>
parents:
diff changeset
13782 (vertical 1.0
Dave Love <fx@gnu.org>
parents:
diff changeset
13783 (summary 0.25 point)
Dave Love <fx@gnu.org>
parents:
diff changeset
13784 (summary-carpal 4)
Dave Love <fx@gnu.org>
parents:
diff changeset
13785 (article 1.0))))
Dave Love <fx@gnu.org>
parents:
diff changeset
13786 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
13787
Dave Love <fx@gnu.org>
parents:
diff changeset
13788 Whoops. Two buffers with the mystery 100% tag. And what's that
Dave Love <fx@gnu.org>
parents:
diff changeset
13789 @code{horizontal} thingie?
Dave Love <fx@gnu.org>
parents:
diff changeset
13790
Dave Love <fx@gnu.org>
parents:
diff changeset
13791 If the first element in one of the split is @code{horizontal}, Gnus will
Dave Love <fx@gnu.org>
parents:
diff changeset
13792 split the window horizontally, giving you two windows side-by-side.
Dave Love <fx@gnu.org>
parents:
diff changeset
13793 Inside each of these strips you may carry on all you like in the normal
Dave Love <fx@gnu.org>
parents:
diff changeset
13794 fashion. The number following @code{horizontal} says what percentage of
Dave Love <fx@gnu.org>
parents:
diff changeset
13795 the screen is to be given to this strip.
Dave Love <fx@gnu.org>
parents:
diff changeset
13796
Dave Love <fx@gnu.org>
parents:
diff changeset
13797 For each split, there @emph{must} be one element that has the 100% tag.
Dave Love <fx@gnu.org>
parents:
diff changeset
13798 The splitting is never accurate, and this buffer will eat any leftover
Dave Love <fx@gnu.org>
parents:
diff changeset
13799 lines from the splits.
Dave Love <fx@gnu.org>
parents:
diff changeset
13800
Dave Love <fx@gnu.org>
parents:
diff changeset
13801 To be slightly more formal, here's a definition of what a valid split
Dave Love <fx@gnu.org>
parents:
diff changeset
13802 may look like:
Dave Love <fx@gnu.org>
parents:
diff changeset
13803
Dave Love <fx@gnu.org>
parents:
diff changeset
13804 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
13805 split = frame | horizontal | vertical | buffer | form
Dave Love <fx@gnu.org>
parents:
diff changeset
13806 frame = "(frame " size *split ")"
Dave Love <fx@gnu.org>
parents:
diff changeset
13807 horizontal = "(horizontal " size *split ")"
Dave Love <fx@gnu.org>
parents:
diff changeset
13808 vertical = "(vertical " size *split ")"
Dave Love <fx@gnu.org>
parents:
diff changeset
13809 buffer = "(" buffer-name " " size *[ "point" ] *[ "frame-focus"] ")"
Dave Love <fx@gnu.org>
parents:
diff changeset
13810 size = number | frame-params
Dave Love <fx@gnu.org>
parents:
diff changeset
13811 buffer-name = group | article | summary ...
Dave Love <fx@gnu.org>
parents:
diff changeset
13812 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
13813
Dave Love <fx@gnu.org>
parents:
diff changeset
13814 The limitations are that the @code{frame} split can only appear as the
Dave Love <fx@gnu.org>
parents:
diff changeset
13815 top-level split. @var{form} should be an Emacs Lisp form that should
Dave Love <fx@gnu.org>
parents:
diff changeset
13816 return a valid split. We see that each split is fully recursive, and
Dave Love <fx@gnu.org>
parents:
diff changeset
13817 may contain any number of @code{vertical} and @code{horizontal} splits.
Dave Love <fx@gnu.org>
parents:
diff changeset
13818
Dave Love <fx@gnu.org>
parents:
diff changeset
13819 @vindex gnus-window-min-width
Dave Love <fx@gnu.org>
parents:
diff changeset
13820 @vindex gnus-window-min-height
Dave Love <fx@gnu.org>
parents:
diff changeset
13821 @cindex window height
Dave Love <fx@gnu.org>
parents:
diff changeset
13822 @cindex window width
Dave Love <fx@gnu.org>
parents:
diff changeset
13823 Finding the right sizes can be a bit complicated. No window may be less
Dave Love <fx@gnu.org>
parents:
diff changeset
13824 than @code{gnus-window-min-height} (default 1) characters high, and all
Dave Love <fx@gnu.org>
parents:
diff changeset
13825 windows must be at least @code{gnus-window-min-width} (default 1)
Dave Love <fx@gnu.org>
parents:
diff changeset
13826 characters wide. Gnus will try to enforce this before applying the
Dave Love <fx@gnu.org>
parents:
diff changeset
13827 splits. If you want to use the normal Emacs window width/height limit,
Dave Love <fx@gnu.org>
parents:
diff changeset
13828 you can just set these two variables to @code{nil}.
Dave Love <fx@gnu.org>
parents:
diff changeset
13829
Dave Love <fx@gnu.org>
parents:
diff changeset
13830 If you're not familiar with Emacs terminology, @code{horizontal} and
Dave Love <fx@gnu.org>
parents:
diff changeset
13831 @code{vertical} splits may work the opposite way of what you'd expect.
Dave Love <fx@gnu.org>
parents:
diff changeset
13832 Windows inside a @code{horizontal} split are shown side-by-side, and
Dave Love <fx@gnu.org>
parents:
diff changeset
13833 windows within a @code{vertical} split are shown above each other.
Dave Love <fx@gnu.org>
parents:
diff changeset
13834
Dave Love <fx@gnu.org>
parents:
diff changeset
13835 @findex gnus-configure-frame
Dave Love <fx@gnu.org>
parents:
diff changeset
13836 If you want to experiment with window placement, a good tip is to call
Dave Love <fx@gnu.org>
parents:
diff changeset
13837 @code{gnus-configure-frame} directly with a split. This is the function
Dave Love <fx@gnu.org>
parents:
diff changeset
13838 that does all the real work when splitting buffers. Below is a pretty
Dave Love <fx@gnu.org>
parents:
diff changeset
13839 nonsensical configuration with 5 windows; two for the group buffer and
Dave Love <fx@gnu.org>
parents:
diff changeset
13840 three for the article buffer. (I said it was nonsensical.) If you
Dave Love <fx@gnu.org>
parents:
diff changeset
13841 @code{eval} the statement below, you can get an idea of how that would
Dave Love <fx@gnu.org>
parents:
diff changeset
13842 look straight away, without going through the normal Gnus channels.
Dave Love <fx@gnu.org>
parents:
diff changeset
13843 Play with it until you're satisfied, and then use
Dave Love <fx@gnu.org>
parents:
diff changeset
13844 @code{gnus-add-configuration} to add your new creation to the buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
13845 configuration list.
Dave Love <fx@gnu.org>
parents:
diff changeset
13846
Dave Love <fx@gnu.org>
parents:
diff changeset
13847 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
13848 (gnus-configure-frame
Dave Love <fx@gnu.org>
parents:
diff changeset
13849 '(horizontal 1.0
Dave Love <fx@gnu.org>
parents:
diff changeset
13850 (vertical 10
Dave Love <fx@gnu.org>
parents:
diff changeset
13851 (group 1.0)
Dave Love <fx@gnu.org>
parents:
diff changeset
13852 (article 0.3 point))
Dave Love <fx@gnu.org>
parents:
diff changeset
13853 (vertical 1.0
Dave Love <fx@gnu.org>
parents:
diff changeset
13854 (article 1.0)
Dave Love <fx@gnu.org>
parents:
diff changeset
13855 (horizontal 4
Dave Love <fx@gnu.org>
parents:
diff changeset
13856 (group 1.0)
Dave Love <fx@gnu.org>
parents:
diff changeset
13857 (article 10)))))
Dave Love <fx@gnu.org>
parents:
diff changeset
13858 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
13859
Dave Love <fx@gnu.org>
parents:
diff changeset
13860 You might want to have several frames as well. No prob---just use the
Dave Love <fx@gnu.org>
parents:
diff changeset
13861 @code{frame} split:
Dave Love <fx@gnu.org>
parents:
diff changeset
13862
Dave Love <fx@gnu.org>
parents:
diff changeset
13863 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
13864 (gnus-configure-frame
Dave Love <fx@gnu.org>
parents:
diff changeset
13865 '(frame 1.0
Dave Love <fx@gnu.org>
parents:
diff changeset
13866 (vertical 1.0
Dave Love <fx@gnu.org>
parents:
diff changeset
13867 (summary 0.25 point frame-focus)
Dave Love <fx@gnu.org>
parents:
diff changeset
13868 (article 1.0))
Dave Love <fx@gnu.org>
parents:
diff changeset
13869 (vertical ((height . 5) (width . 15)
Dave Love <fx@gnu.org>
parents:
diff changeset
13870 (user-position . t)
Dave Love <fx@gnu.org>
parents:
diff changeset
13871 (left . -1) (top . 1))
Dave Love <fx@gnu.org>
parents:
diff changeset
13872 (picon 1.0))))
Dave Love <fx@gnu.org>
parents:
diff changeset
13873
Dave Love <fx@gnu.org>
parents:
diff changeset
13874 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
13875
Dave Love <fx@gnu.org>
parents:
diff changeset
13876 This split will result in the familiar summary/article window
Dave Love <fx@gnu.org>
parents:
diff changeset
13877 configuration in the first (or ``main'') frame, while a small additional
Dave Love <fx@gnu.org>
parents:
diff changeset
13878 frame will be created where picons will be shown. As you can see,
Dave Love <fx@gnu.org>
parents:
diff changeset
13879 instead of the normal @code{1.0} top-level spec, each additional split
Dave Love <fx@gnu.org>
parents:
diff changeset
13880 should have a frame parameter alist as the size spec.
Dave Love <fx@gnu.org>
parents:
diff changeset
13881 @xref{Frame Parameters, , Frame Parameters, elisp, The GNU Emacs Lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
13882 Reference Manual}. Under XEmacs, a frame property list will be
Dave Love <fx@gnu.org>
parents:
diff changeset
13883 accepted, too---for instance, @code{(height 5 width 15 left -1 top 1)}
Dave Love <fx@gnu.org>
parents:
diff changeset
13884 is such a plist.
Dave Love <fx@gnu.org>
parents:
diff changeset
13885
Dave Love <fx@gnu.org>
parents:
diff changeset
13886 Here's a list of all possible keys for
Dave Love <fx@gnu.org>
parents:
diff changeset
13887 @code{gnus-buffer-configuration}:
Dave Love <fx@gnu.org>
parents:
diff changeset
13888
Dave Love <fx@gnu.org>
parents:
diff changeset
13889 @code{group}, @code{summary}, @code{article}, @code{server},
Dave Love <fx@gnu.org>
parents:
diff changeset
13890 @code{browse}, @code{message}, @code{pick}, @code{info},
Dave Love <fx@gnu.org>
parents:
diff changeset
13891 @code{summary-faq}, @code{edit-group}, @code{edit-server},
Dave Love <fx@gnu.org>
parents:
diff changeset
13892 @code{edit-score}, @code{post}, @code{reply}, @code{forward},
Dave Love <fx@gnu.org>
parents:
diff changeset
13893 @code{reply-yank}, @code{mail-bounce}, @code{draft}, @code{pipe},
Dave Love <fx@gnu.org>
parents:
diff changeset
13894 @code{bug}, @code{compose-bounce}, and @code{score-trace}.
Dave Love <fx@gnu.org>
parents:
diff changeset
13895
Dave Love <fx@gnu.org>
parents:
diff changeset
13896 Note that the @code{message} key is used for both
Dave Love <fx@gnu.org>
parents:
diff changeset
13897 @code{gnus-group-mail} and @code{gnus-summary-mail-other-window}. If
Dave Love <fx@gnu.org>
parents:
diff changeset
13898 it is desirable to distinguish between the two, something like this
Dave Love <fx@gnu.org>
parents:
diff changeset
13899 might be used:
Dave Love <fx@gnu.org>
parents:
diff changeset
13900
Dave Love <fx@gnu.org>
parents:
diff changeset
13901 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
13902 (message (horizontal 1.0
Dave Love <fx@gnu.org>
parents:
diff changeset
13903 (vertical 1.0 (message 1.0 point))
Dave Love <fx@gnu.org>
parents:
diff changeset
13904 (vertical 0.24
Dave Love <fx@gnu.org>
parents:
diff changeset
13905 (if (buffer-live-p gnus-summary-buffer)
Dave Love <fx@gnu.org>
parents:
diff changeset
13906 '(summary 0.5))
Dave Love <fx@gnu.org>
parents:
diff changeset
13907 (group 1.0)))))
Dave Love <fx@gnu.org>
parents:
diff changeset
13908 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
13909
Dave Love <fx@gnu.org>
parents:
diff changeset
13910 @findex gnus-add-configuration
Dave Love <fx@gnu.org>
parents:
diff changeset
13911 Since the @code{gnus-buffer-configuration} variable is so long and
Dave Love <fx@gnu.org>
parents:
diff changeset
13912 complicated, there's a function you can use to ease changing the config
Dave Love <fx@gnu.org>
parents:
diff changeset
13913 of a single setting: @code{gnus-add-configuration}. If, for instance,
Dave Love <fx@gnu.org>
parents:
diff changeset
13914 you want to change the @code{article} setting, you could say:
Dave Love <fx@gnu.org>
parents:
diff changeset
13915
Dave Love <fx@gnu.org>
parents:
diff changeset
13916 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
13917 (gnus-add-configuration
Dave Love <fx@gnu.org>
parents:
diff changeset
13918 '(article (vertical 1.0
Dave Love <fx@gnu.org>
parents:
diff changeset
13919 (group 4)
Dave Love <fx@gnu.org>
parents:
diff changeset
13920 (summary .25 point)
Dave Love <fx@gnu.org>
parents:
diff changeset
13921 (article 1.0))))
Dave Love <fx@gnu.org>
parents:
diff changeset
13922 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
13923
Dave Love <fx@gnu.org>
parents:
diff changeset
13924 You'd typically stick these @code{gnus-add-configuration} calls in your
Dave Love <fx@gnu.org>
parents:
diff changeset
13925 @file{.gnus.el} file or in some startup hook---they should be run after
Dave Love <fx@gnu.org>
parents:
diff changeset
13926 Gnus has been loaded.
Dave Love <fx@gnu.org>
parents:
diff changeset
13927
Dave Love <fx@gnu.org>
parents:
diff changeset
13928 @vindex gnus-always-force-window-configuration
Dave Love <fx@gnu.org>
parents:
diff changeset
13929 If all windows mentioned in the configuration are already visible, Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
13930 won't change the window configuration. If you always want to force the
Dave Love <fx@gnu.org>
parents:
diff changeset
13931 ``right'' window configuration, you can set
Dave Love <fx@gnu.org>
parents:
diff changeset
13932 @code{gnus-always-force-window-configuration} to non-@code{nil}.
Dave Love <fx@gnu.org>
parents:
diff changeset
13933
Dave Love <fx@gnu.org>
parents:
diff changeset
13934
Dave Love <fx@gnu.org>
parents:
diff changeset
13935 @node Faces and Fonts
Dave Love <fx@gnu.org>
parents:
diff changeset
13936 @section Faces and Fonts
Dave Love <fx@gnu.org>
parents:
diff changeset
13937 @cindex faces
Dave Love <fx@gnu.org>
parents:
diff changeset
13938 @cindex fonts
Dave Love <fx@gnu.org>
parents:
diff changeset
13939 @cindex colors
Dave Love <fx@gnu.org>
parents:
diff changeset
13940
Dave Love <fx@gnu.org>
parents:
diff changeset
13941 Fiddling with fonts and faces used to be very difficult, but these days
Dave Love <fx@gnu.org>
parents:
diff changeset
13942 it is very simple. You simply say @kbd{M-x customize-face}, pick out
Dave Love <fx@gnu.org>
parents:
diff changeset
13943 the face you want to alter, and alter it via the standard Customize
Dave Love <fx@gnu.org>
parents:
diff changeset
13944 interface.
Dave Love <fx@gnu.org>
parents:
diff changeset
13945
Dave Love <fx@gnu.org>
parents:
diff changeset
13946
Dave Love <fx@gnu.org>
parents:
diff changeset
13947 @node Compilation
Dave Love <fx@gnu.org>
parents:
diff changeset
13948 @section Compilation
Dave Love <fx@gnu.org>
parents:
diff changeset
13949 @cindex compilation
Dave Love <fx@gnu.org>
parents:
diff changeset
13950 @cindex byte-compilation
Dave Love <fx@gnu.org>
parents:
diff changeset
13951
Dave Love <fx@gnu.org>
parents:
diff changeset
13952 @findex gnus-compile
Dave Love <fx@gnu.org>
parents:
diff changeset
13953
Dave Love <fx@gnu.org>
parents:
diff changeset
13954 Remember all those line format specification variables?
Dave Love <fx@gnu.org>
parents:
diff changeset
13955 @code{gnus-summary-line-format}, @code{gnus-group-line-format}, and so
Dave Love <fx@gnu.org>
parents:
diff changeset
13956 on. Now, Gnus will of course heed whatever these variables are, but,
Dave Love <fx@gnu.org>
parents:
diff changeset
13957 unfortunately, changing them will mean a quite significant slow-down.
Dave Love <fx@gnu.org>
parents:
diff changeset
13958 (The default values of these variables have byte-compiled functions
Dave Love <fx@gnu.org>
parents:
diff changeset
13959 associated with them, while the user-generated versions do not, of
Dave Love <fx@gnu.org>
parents:
diff changeset
13960 course.)
Dave Love <fx@gnu.org>
parents:
diff changeset
13961
Dave Love <fx@gnu.org>
parents:
diff changeset
13962 To help with this, you can run @kbd{M-x gnus-compile} after you've
Dave Love <fx@gnu.org>
parents:
diff changeset
13963 fiddled around with the variables and feel that you're (kind of)
Dave Love <fx@gnu.org>
parents:
diff changeset
13964 satisfied. This will result in the new specs being byte-compiled, and
Dave Love <fx@gnu.org>
parents:
diff changeset
13965 you'll get top speed again. Gnus will save these compiled specs in the
Dave Love <fx@gnu.org>
parents:
diff changeset
13966 @file{.newsrc.eld} file. (User-defined functions aren't compiled by
Dave Love <fx@gnu.org>
parents:
diff changeset
13967 this function, though---you should compile them yourself by sticking
Dave Love <fx@gnu.org>
parents:
diff changeset
13968 them into the @code{.gnus.el} file and byte-compiling that file.)
Dave Love <fx@gnu.org>
parents:
diff changeset
13969
Dave Love <fx@gnu.org>
parents:
diff changeset
13970
Dave Love <fx@gnu.org>
parents:
diff changeset
13971 @node Mode Lines
Dave Love <fx@gnu.org>
parents:
diff changeset
13972 @section Mode Lines
Dave Love <fx@gnu.org>
parents:
diff changeset
13973 @cindex mode lines
Dave Love <fx@gnu.org>
parents:
diff changeset
13974
Dave Love <fx@gnu.org>
parents:
diff changeset
13975 @vindex gnus-updated-mode-lines
Dave Love <fx@gnu.org>
parents:
diff changeset
13976 @code{gnus-updated-mode-lines} says what buffers should keep their mode
Dave Love <fx@gnu.org>
parents:
diff changeset
13977 lines updated. It is a list of symbols. Supported symbols include
Dave Love <fx@gnu.org>
parents:
diff changeset
13978 @code{group}, @code{article}, @code{summary}, @code{server},
Dave Love <fx@gnu.org>
parents:
diff changeset
13979 @code{browse}, and @code{tree}. If the corresponding symbol is present,
Dave Love <fx@gnu.org>
parents:
diff changeset
13980 Gnus will keep that mode line updated with information that may be
Dave Love <fx@gnu.org>
parents:
diff changeset
13981 pertinent. If this variable is @code{nil}, screen refresh may be
Dave Love <fx@gnu.org>
parents:
diff changeset
13982 quicker.
Dave Love <fx@gnu.org>
parents:
diff changeset
13983
Dave Love <fx@gnu.org>
parents:
diff changeset
13984 @cindex display-time
Dave Love <fx@gnu.org>
parents:
diff changeset
13985
Dave Love <fx@gnu.org>
parents:
diff changeset
13986 @vindex gnus-mode-non-string-length
Dave Love <fx@gnu.org>
parents:
diff changeset
13987 By default, Gnus displays information on the current article in the mode
Dave Love <fx@gnu.org>
parents:
diff changeset
13988 lines of the summary and article buffers. The information Gnus wishes
Dave Love <fx@gnu.org>
parents:
diff changeset
13989 to display (e.g. the subject of the article) is often longer than the
Dave Love <fx@gnu.org>
parents:
diff changeset
13990 mode lines, and therefore have to be cut off at some point. The
Dave Love <fx@gnu.org>
parents:
diff changeset
13991 @code{gnus-mode-non-string-length} variable says how long the other
Dave Love <fx@gnu.org>
parents:
diff changeset
13992 elements on the line is (i.e., the non-info part). If you put
Dave Love <fx@gnu.org>
parents:
diff changeset
13993 additional elements on the mode line (e.g. a clock), you should modify
Dave Love <fx@gnu.org>
parents:
diff changeset
13994 this variable:
Dave Love <fx@gnu.org>
parents:
diff changeset
13995
Dave Love <fx@gnu.org>
parents:
diff changeset
13996 @c Hook written by Francesco Potorti` <pot@cnuce.cnr.it>
Dave Love <fx@gnu.org>
parents:
diff changeset
13997 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
13998 (add-hook 'display-time-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
13999 (lambda () (setq gnus-mode-non-string-length
Dave Love <fx@gnu.org>
parents:
diff changeset
14000 (+ 21
Dave Love <fx@gnu.org>
parents:
diff changeset
14001 (if line-number-mode 5 0)
Dave Love <fx@gnu.org>
parents:
diff changeset
14002 (if column-number-mode 4 0)
Dave Love <fx@gnu.org>
parents:
diff changeset
14003 (length display-time-string)))))
Dave Love <fx@gnu.org>
parents:
diff changeset
14004 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
14005
Dave Love <fx@gnu.org>
parents:
diff changeset
14006 If this variable is @code{nil} (which is the default), the mode line
Dave Love <fx@gnu.org>
parents:
diff changeset
14007 strings won't be chopped off, and they won't be padded either. Note
Dave Love <fx@gnu.org>
parents:
diff changeset
14008 that the default is unlikely to be desirable, as even the percentage
Dave Love <fx@gnu.org>
parents:
diff changeset
14009 complete in the buffer may be crowded off the mode line; the user should
Dave Love <fx@gnu.org>
parents:
diff changeset
14010 configure this variable appropriately for her configuration.
Dave Love <fx@gnu.org>
parents:
diff changeset
14011
Dave Love <fx@gnu.org>
parents:
diff changeset
14012
Dave Love <fx@gnu.org>
parents:
diff changeset
14013 @node Highlighting and Menus
Dave Love <fx@gnu.org>
parents:
diff changeset
14014 @section Highlighting and Menus
Dave Love <fx@gnu.org>
parents:
diff changeset
14015 @cindex visual
Dave Love <fx@gnu.org>
parents:
diff changeset
14016 @cindex highlighting
Dave Love <fx@gnu.org>
parents:
diff changeset
14017 @cindex menus
Dave Love <fx@gnu.org>
parents:
diff changeset
14018
Dave Love <fx@gnu.org>
parents:
diff changeset
14019 @vindex gnus-visual
Dave Love <fx@gnu.org>
parents:
diff changeset
14020 The @code{gnus-visual} variable controls most of the Gnus-prettifying
Dave Love <fx@gnu.org>
parents:
diff changeset
14021 aspects. If @code{nil}, Gnus won't attempt to create menus or use fancy
Dave Love <fx@gnu.org>
parents:
diff changeset
14022 colors or fonts. This will also inhibit loading the @file{gnus-vis.el}
Dave Love <fx@gnu.org>
parents:
diff changeset
14023 file.
Dave Love <fx@gnu.org>
parents:
diff changeset
14024
Dave Love <fx@gnu.org>
parents:
diff changeset
14025 This variable can be a list of visual properties that are enabled. The
Dave Love <fx@gnu.org>
parents:
diff changeset
14026 following elements are valid, and are all included by default:
Dave Love <fx@gnu.org>
parents:
diff changeset
14027
Dave Love <fx@gnu.org>
parents:
diff changeset
14028 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
14029 @item group-highlight
Dave Love <fx@gnu.org>
parents:
diff changeset
14030 Do highlights in the group buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
14031 @item summary-highlight
Dave Love <fx@gnu.org>
parents:
diff changeset
14032 Do highlights in the summary buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
14033 @item article-highlight
Dave Love <fx@gnu.org>
parents:
diff changeset
14034 Do highlights in the article buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
14035 @item highlight
Dave Love <fx@gnu.org>
parents:
diff changeset
14036 Turn on highlighting in all buffers.
Dave Love <fx@gnu.org>
parents:
diff changeset
14037 @item group-menu
Dave Love <fx@gnu.org>
parents:
diff changeset
14038 Create menus in the group buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
14039 @item summary-menu
Dave Love <fx@gnu.org>
parents:
diff changeset
14040 Create menus in the summary buffers.
Dave Love <fx@gnu.org>
parents:
diff changeset
14041 @item article-menu
Dave Love <fx@gnu.org>
parents:
diff changeset
14042 Create menus in the article buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
14043 @item browse-menu
Dave Love <fx@gnu.org>
parents:
diff changeset
14044 Create menus in the browse buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
14045 @item server-menu
Dave Love <fx@gnu.org>
parents:
diff changeset
14046 Create menus in the server buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
14047 @item score-menu
Dave Love <fx@gnu.org>
parents:
diff changeset
14048 Create menus in the score buffers.
Dave Love <fx@gnu.org>
parents:
diff changeset
14049 @item menu
Dave Love <fx@gnu.org>
parents:
diff changeset
14050 Create menus in all buffers.
Dave Love <fx@gnu.org>
parents:
diff changeset
14051 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
14052
Dave Love <fx@gnu.org>
parents:
diff changeset
14053 So if you only want highlighting in the article buffer and menus in all
Dave Love <fx@gnu.org>
parents:
diff changeset
14054 buffers, you could say something like:
Dave Love <fx@gnu.org>
parents:
diff changeset
14055
Dave Love <fx@gnu.org>
parents:
diff changeset
14056 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
14057 (setq gnus-visual '(article-highlight menu))
Dave Love <fx@gnu.org>
parents:
diff changeset
14058 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
14059
Dave Love <fx@gnu.org>
parents:
diff changeset
14060 If you want highlighting only and no menus whatsoever, you'd say:
Dave Love <fx@gnu.org>
parents:
diff changeset
14061
Dave Love <fx@gnu.org>
parents:
diff changeset
14062 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
14063 (setq gnus-visual '(highlight))
Dave Love <fx@gnu.org>
parents:
diff changeset
14064 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
14065
Dave Love <fx@gnu.org>
parents:
diff changeset
14066 If @code{gnus-visual} is @code{t}, highlighting and menus will be used
Dave Love <fx@gnu.org>
parents:
diff changeset
14067 in all Gnus buffers.
Dave Love <fx@gnu.org>
parents:
diff changeset
14068
Dave Love <fx@gnu.org>
parents:
diff changeset
14069 Other general variables that influence the look of all buffers include:
Dave Love <fx@gnu.org>
parents:
diff changeset
14070
Dave Love <fx@gnu.org>
parents:
diff changeset
14071 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
14072 @item gnus-mouse-face
Dave Love <fx@gnu.org>
parents:
diff changeset
14073 @vindex gnus-mouse-face
Dave Love <fx@gnu.org>
parents:
diff changeset
14074 This is the face (i.e., font) used for mouse highlighting in Gnus. No
Dave Love <fx@gnu.org>
parents:
diff changeset
14075 mouse highlights will be done if @code{gnus-visual} is @code{nil}.
Dave Love <fx@gnu.org>
parents:
diff changeset
14076
Dave Love <fx@gnu.org>
parents:
diff changeset
14077 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
14078
Dave Love <fx@gnu.org>
parents:
diff changeset
14079 There are hooks associated with the creation of all the different menus:
Dave Love <fx@gnu.org>
parents:
diff changeset
14080
Dave Love <fx@gnu.org>
parents:
diff changeset
14081 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
14082
Dave Love <fx@gnu.org>
parents:
diff changeset
14083 @item gnus-article-menu-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
14084 @vindex gnus-article-menu-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
14085 Hook called after creating the article mode menu.
Dave Love <fx@gnu.org>
parents:
diff changeset
14086
Dave Love <fx@gnu.org>
parents:
diff changeset
14087 @item gnus-group-menu-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
14088 @vindex gnus-group-menu-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
14089 Hook called after creating the group mode menu.
Dave Love <fx@gnu.org>
parents:
diff changeset
14090
Dave Love <fx@gnu.org>
parents:
diff changeset
14091 @item gnus-summary-menu-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
14092 @vindex gnus-summary-menu-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
14093 Hook called after creating the summary mode menu.
Dave Love <fx@gnu.org>
parents:
diff changeset
14094
Dave Love <fx@gnu.org>
parents:
diff changeset
14095 @item gnus-server-menu-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
14096 @vindex gnus-server-menu-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
14097 Hook called after creating the server mode menu.
Dave Love <fx@gnu.org>
parents:
diff changeset
14098
Dave Love <fx@gnu.org>
parents:
diff changeset
14099 @item gnus-browse-menu-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
14100 @vindex gnus-browse-menu-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
14101 Hook called after creating the browse mode menu.
Dave Love <fx@gnu.org>
parents:
diff changeset
14102
Dave Love <fx@gnu.org>
parents:
diff changeset
14103 @item gnus-score-menu-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
14104 @vindex gnus-score-menu-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
14105 Hook called after creating the score mode menu.
Dave Love <fx@gnu.org>
parents:
diff changeset
14106
Dave Love <fx@gnu.org>
parents:
diff changeset
14107 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
14108
Dave Love <fx@gnu.org>
parents:
diff changeset
14109
Dave Love <fx@gnu.org>
parents:
diff changeset
14110 @node Buttons
Dave Love <fx@gnu.org>
parents:
diff changeset
14111 @section Buttons
Dave Love <fx@gnu.org>
parents:
diff changeset
14112 @cindex buttons
Dave Love <fx@gnu.org>
parents:
diff changeset
14113 @cindex mouse
Dave Love <fx@gnu.org>
parents:
diff changeset
14114 @cindex click
Dave Love <fx@gnu.org>
parents:
diff changeset
14115
Dave Love <fx@gnu.org>
parents:
diff changeset
14116 Those new-fangled @dfn{mouse} contraptions is very popular with the
Dave Love <fx@gnu.org>
parents:
diff changeset
14117 young, hep kids who don't want to learn the proper way to do things
Dave Love <fx@gnu.org>
parents:
diff changeset
14118 these days. Why, I remember way back in the summer of '89, when I was
Dave Love <fx@gnu.org>
parents:
diff changeset
14119 using Emacs on a Tops 20 system. Three hundred users on one single
Dave Love <fx@gnu.org>
parents:
diff changeset
14120 machine, and every user was running Simula compilers. Bah!
Dave Love <fx@gnu.org>
parents:
diff changeset
14121
Dave Love <fx@gnu.org>
parents:
diff changeset
14122 Right.
Dave Love <fx@gnu.org>
parents:
diff changeset
14123
Dave Love <fx@gnu.org>
parents:
diff changeset
14124 @vindex gnus-carpal
Dave Love <fx@gnu.org>
parents:
diff changeset
14125 Well, you can make Gnus display bufferfuls of buttons you can click to
Dave Love <fx@gnu.org>
parents:
diff changeset
14126 do anything by setting @code{gnus-carpal} to @code{t}. Pretty simple,
Dave Love <fx@gnu.org>
parents:
diff changeset
14127 really. Tell the chiropractor I sent you.
Dave Love <fx@gnu.org>
parents:
diff changeset
14128
Dave Love <fx@gnu.org>
parents:
diff changeset
14129
Dave Love <fx@gnu.org>
parents:
diff changeset
14130 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
14131
Dave Love <fx@gnu.org>
parents:
diff changeset
14132 @item gnus-carpal-mode-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
14133 @vindex gnus-carpal-mode-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
14134 Hook run in all carpal mode buffers.
Dave Love <fx@gnu.org>
parents:
diff changeset
14135
Dave Love <fx@gnu.org>
parents:
diff changeset
14136 @item gnus-carpal-button-face
Dave Love <fx@gnu.org>
parents:
diff changeset
14137 @vindex gnus-carpal-button-face
Dave Love <fx@gnu.org>
parents:
diff changeset
14138 Face used on buttons.
Dave Love <fx@gnu.org>
parents:
diff changeset
14139
Dave Love <fx@gnu.org>
parents:
diff changeset
14140 @item gnus-carpal-header-face
Dave Love <fx@gnu.org>
parents:
diff changeset
14141 @vindex gnus-carpal-header-face
Dave Love <fx@gnu.org>
parents:
diff changeset
14142 Face used on carpal buffer headers.
Dave Love <fx@gnu.org>
parents:
diff changeset
14143
Dave Love <fx@gnu.org>
parents:
diff changeset
14144 @item gnus-carpal-group-buffer-buttons
Dave Love <fx@gnu.org>
parents:
diff changeset
14145 @vindex gnus-carpal-group-buffer-buttons
Dave Love <fx@gnu.org>
parents:
diff changeset
14146 Buttons in the group buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
14147
Dave Love <fx@gnu.org>
parents:
diff changeset
14148 @item gnus-carpal-summary-buffer-buttons
Dave Love <fx@gnu.org>
parents:
diff changeset
14149 @vindex gnus-carpal-summary-buffer-buttons
Dave Love <fx@gnu.org>
parents:
diff changeset
14150 Buttons in the summary buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
14151
Dave Love <fx@gnu.org>
parents:
diff changeset
14152 @item gnus-carpal-server-buffer-buttons
Dave Love <fx@gnu.org>
parents:
diff changeset
14153 @vindex gnus-carpal-server-buffer-buttons
Dave Love <fx@gnu.org>
parents:
diff changeset
14154 Buttons in the server buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
14155
Dave Love <fx@gnu.org>
parents:
diff changeset
14156 @item gnus-carpal-browse-buffer-buttons
Dave Love <fx@gnu.org>
parents:
diff changeset
14157 @vindex gnus-carpal-browse-buffer-buttons
Dave Love <fx@gnu.org>
parents:
diff changeset
14158 Buttons in the browse buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
14159 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
14160
Dave Love <fx@gnu.org>
parents:
diff changeset
14161 All the @code{buttons} variables are lists. The elements in these list
Dave Love <fx@gnu.org>
parents:
diff changeset
14162 are either cons cells where the @code{car} contains a text to be displayed and
Dave Love <fx@gnu.org>
parents:
diff changeset
14163 the @code{cdr} contains a function symbol, or a simple string.
Dave Love <fx@gnu.org>
parents:
diff changeset
14164
Dave Love <fx@gnu.org>
parents:
diff changeset
14165
Dave Love <fx@gnu.org>
parents:
diff changeset
14166 @node Daemons
Dave Love <fx@gnu.org>
parents:
diff changeset
14167 @section Daemons
Dave Love <fx@gnu.org>
parents:
diff changeset
14168 @cindex demons
Dave Love <fx@gnu.org>
parents:
diff changeset
14169 @cindex daemons
Dave Love <fx@gnu.org>
parents:
diff changeset
14170
Dave Love <fx@gnu.org>
parents:
diff changeset
14171 Gnus, being larger than any program ever written (allegedly), does lots
Dave Love <fx@gnu.org>
parents:
diff changeset
14172 of strange stuff that you may wish to have done while you're not
Dave Love <fx@gnu.org>
parents:
diff changeset
14173 present. For instance, you may want it to check for new mail once in a
Dave Love <fx@gnu.org>
parents:
diff changeset
14174 while. Or you may want it to close down all connections to all servers
Dave Love <fx@gnu.org>
parents:
diff changeset
14175 when you leave Emacs idle. And stuff like that.
Dave Love <fx@gnu.org>
parents:
diff changeset
14176
Dave Love <fx@gnu.org>
parents:
diff changeset
14177 Gnus will let you do stuff like that by defining various
Dave Love <fx@gnu.org>
parents:
diff changeset
14178 @dfn{handlers}. Each handler consists of three elements: A
Dave Love <fx@gnu.org>
parents:
diff changeset
14179 @var{function}, a @var{time}, and an @var{idle} parameter.
Dave Love <fx@gnu.org>
parents:
diff changeset
14180
Dave Love <fx@gnu.org>
parents:
diff changeset
14181 Here's an example of a handler that closes connections when Emacs has
Dave Love <fx@gnu.org>
parents:
diff changeset
14182 been idle for thirty minutes:
Dave Love <fx@gnu.org>
parents:
diff changeset
14183
Dave Love <fx@gnu.org>
parents:
diff changeset
14184 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
14185 (gnus-demon-close-connections nil 30)
Dave Love <fx@gnu.org>
parents:
diff changeset
14186 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
14187
Dave Love <fx@gnu.org>
parents:
diff changeset
14188 Here's a handler that scans for PGP headers every hour when Emacs is
Dave Love <fx@gnu.org>
parents:
diff changeset
14189 idle:
Dave Love <fx@gnu.org>
parents:
diff changeset
14190
Dave Love <fx@gnu.org>
parents:
diff changeset
14191 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
14192 (gnus-demon-scan-pgp 60 t)
Dave Love <fx@gnu.org>
parents:
diff changeset
14193 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
14194
Dave Love <fx@gnu.org>
parents:
diff changeset
14195 This @var{time} parameter and than @var{idle} parameter work together
Dave Love <fx@gnu.org>
parents:
diff changeset
14196 in a strange, but wonderful fashion. Basically, if @var{idle} is
Dave Love <fx@gnu.org>
parents:
diff changeset
14197 @code{nil}, then the function will be called every @var{time} minutes.
Dave Love <fx@gnu.org>
parents:
diff changeset
14198
Dave Love <fx@gnu.org>
parents:
diff changeset
14199 If @var{idle} is @code{t}, then the function will be called after
Dave Love <fx@gnu.org>
parents:
diff changeset
14200 @var{time} minutes only if Emacs is idle. So if Emacs is never idle,
Dave Love <fx@gnu.org>
parents:
diff changeset
14201 the function will never be called. But once Emacs goes idle, the
Dave Love <fx@gnu.org>
parents:
diff changeset
14202 function will be called every @var{time} minutes.
Dave Love <fx@gnu.org>
parents:
diff changeset
14203
Dave Love <fx@gnu.org>
parents:
diff changeset
14204 If @var{idle} is a number and @var{time} is a number, the function will
Dave Love <fx@gnu.org>
parents:
diff changeset
14205 be called every @var{time} minutes only when Emacs has been idle for
Dave Love <fx@gnu.org>
parents:
diff changeset
14206 @var{idle} minutes.
Dave Love <fx@gnu.org>
parents:
diff changeset
14207
Dave Love <fx@gnu.org>
parents:
diff changeset
14208 If @var{idle} is a number and @var{time} is @code{nil}, the function
Dave Love <fx@gnu.org>
parents:
diff changeset
14209 will be called once every time Emacs has been idle for @var{idle}
Dave Love <fx@gnu.org>
parents:
diff changeset
14210 minutes.
Dave Love <fx@gnu.org>
parents:
diff changeset
14211
Dave Love <fx@gnu.org>
parents:
diff changeset
14212 And if @var{time} is a string, it should look like @samp{07:31}, and
Dave Love <fx@gnu.org>
parents:
diff changeset
14213 the function will then be called once every day somewhere near that
Dave Love <fx@gnu.org>
parents:
diff changeset
14214 time. Modified by the @var{idle} parameter, of course.
Dave Love <fx@gnu.org>
parents:
diff changeset
14215
Dave Love <fx@gnu.org>
parents:
diff changeset
14216 @vindex gnus-demon-timestep
Dave Love <fx@gnu.org>
parents:
diff changeset
14217 (When I say ``minute'' here, I really mean @code{gnus-demon-timestep}
Dave Love <fx@gnu.org>
parents:
diff changeset
14218 seconds. This is 60 by default. If you change that variable,
Dave Love <fx@gnu.org>
parents:
diff changeset
14219 all the timings in the handlers will be affected.)
Dave Love <fx@gnu.org>
parents:
diff changeset
14220
Dave Love <fx@gnu.org>
parents:
diff changeset
14221 @vindex gnus-use-demon
Dave Love <fx@gnu.org>
parents:
diff changeset
14222 To set the whole thing in motion, though, you have to set
Dave Love <fx@gnu.org>
parents:
diff changeset
14223 @code{gnus-use-demon} to @code{t}.
Dave Love <fx@gnu.org>
parents:
diff changeset
14224
Dave Love <fx@gnu.org>
parents:
diff changeset
14225 So, if you want to add a handler, you could put something like this in
Dave Love <fx@gnu.org>
parents:
diff changeset
14226 your @file{.gnus} file:
Dave Love <fx@gnu.org>
parents:
diff changeset
14227
Dave Love <fx@gnu.org>
parents:
diff changeset
14228 @findex gnus-demon-add-handler
Dave Love <fx@gnu.org>
parents:
diff changeset
14229 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
14230 (gnus-demon-add-handler 'gnus-demon-close-connections 30 t)
Dave Love <fx@gnu.org>
parents:
diff changeset
14231 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
14232
Dave Love <fx@gnu.org>
parents:
diff changeset
14233 @findex gnus-demon-add-nocem
Dave Love <fx@gnu.org>
parents:
diff changeset
14234 @findex gnus-demon-add-scanmail
Dave Love <fx@gnu.org>
parents:
diff changeset
14235 @findex gnus-demon-add-rescan
Dave Love <fx@gnu.org>
parents:
diff changeset
14236 @findex gnus-demon-add-scan-timestamps
Dave Love <fx@gnu.org>
parents:
diff changeset
14237 @findex gnus-demon-add-disconnection
Dave Love <fx@gnu.org>
parents:
diff changeset
14238 Some ready-made functions to do this have been created:
Dave Love <fx@gnu.org>
parents:
diff changeset
14239 @code{gnus-demon-add-nocem}, @code{gnus-demon-add-disconnection},
Dave Love <fx@gnu.org>
parents:
diff changeset
14240 @code{gnus-demon-add-nntp-close-connection},
Dave Love <fx@gnu.org>
parents:
diff changeset
14241 @code{gnus-demon-add-scan-timestamps}, @code{gnus-demon-add-rescan}, and
Dave Love <fx@gnu.org>
parents:
diff changeset
14242 @code{gnus-demon-add-scanmail}. Just put those functions in your
Dave Love <fx@gnu.org>
parents:
diff changeset
14243 @file{.gnus} if you want those abilities.
Dave Love <fx@gnu.org>
parents:
diff changeset
14244
Dave Love <fx@gnu.org>
parents:
diff changeset
14245 @findex gnus-demon-init
Dave Love <fx@gnu.org>
parents:
diff changeset
14246 @findex gnus-demon-cancel
Dave Love <fx@gnu.org>
parents:
diff changeset
14247 @vindex gnus-demon-handlers
Dave Love <fx@gnu.org>
parents:
diff changeset
14248 If you add handlers to @code{gnus-demon-handlers} directly, you should
Dave Love <fx@gnu.org>
parents:
diff changeset
14249 run @code{gnus-demon-init} to make the changes take hold. To cancel all
Dave Love <fx@gnu.org>
parents:
diff changeset
14250 daemons, you can use the @code{gnus-demon-cancel} function.
Dave Love <fx@gnu.org>
parents:
diff changeset
14251
Dave Love <fx@gnu.org>
parents:
diff changeset
14252 Note that adding daemons can be pretty naughty if you over do it. Adding
Dave Love <fx@gnu.org>
parents:
diff changeset
14253 functions that scan all news and mail from all servers every two seconds
Dave Love <fx@gnu.org>
parents:
diff changeset
14254 is a sure-fire way of getting booted off any respectable system. So
Dave Love <fx@gnu.org>
parents:
diff changeset
14255 behave.
Dave Love <fx@gnu.org>
parents:
diff changeset
14256
Dave Love <fx@gnu.org>
parents:
diff changeset
14257
Dave Love <fx@gnu.org>
parents:
diff changeset
14258 @node NoCeM
Dave Love <fx@gnu.org>
parents:
diff changeset
14259 @section NoCeM
Dave Love <fx@gnu.org>
parents:
diff changeset
14260 @cindex nocem
Dave Love <fx@gnu.org>
parents:
diff changeset
14261 @cindex spam
Dave Love <fx@gnu.org>
parents:
diff changeset
14262
Dave Love <fx@gnu.org>
parents:
diff changeset
14263 @dfn{Spamming} is posting the same article lots and lots of times.
Dave Love <fx@gnu.org>
parents:
diff changeset
14264 Spamming is bad. Spamming is evil.
Dave Love <fx@gnu.org>
parents:
diff changeset
14265
Dave Love <fx@gnu.org>
parents:
diff changeset
14266 Spamming is usually canceled within a day or so by various anti-spamming
Dave Love <fx@gnu.org>
parents:
diff changeset
14267 agencies. These agencies usually also send out @dfn{NoCeM} messages.
Dave Love <fx@gnu.org>
parents:
diff changeset
14268 NoCeM is pronounced ``no see-'em'', and means what the name
Dave Love <fx@gnu.org>
parents:
diff changeset
14269 implies---these are messages that make the offending articles, like, go
Dave Love <fx@gnu.org>
parents:
diff changeset
14270 away.
Dave Love <fx@gnu.org>
parents:
diff changeset
14271
Dave Love <fx@gnu.org>
parents:
diff changeset
14272 What use are these NoCeM messages if the articles are canceled anyway?
Dave Love <fx@gnu.org>
parents:
diff changeset
14273 Some sites do not honor cancel messages and some sites just honor cancels
Dave Love <fx@gnu.org>
parents:
diff changeset
14274 from a select few people. Then you may wish to make use of the NoCeM
Dave Love <fx@gnu.org>
parents:
diff changeset
14275 messages, which are distributed in the @samp{alt.nocem.misc} newsgroup.
Dave Love <fx@gnu.org>
parents:
diff changeset
14276
Dave Love <fx@gnu.org>
parents:
diff changeset
14277 Gnus can read and parse the messages in this group automatically, and
Dave Love <fx@gnu.org>
parents:
diff changeset
14278 this will make spam disappear.
Dave Love <fx@gnu.org>
parents:
diff changeset
14279
Dave Love <fx@gnu.org>
parents:
diff changeset
14280 There are some variables to customize, of course:
Dave Love <fx@gnu.org>
parents:
diff changeset
14281
Dave Love <fx@gnu.org>
parents:
diff changeset
14282 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
14283 @item gnus-use-nocem
Dave Love <fx@gnu.org>
parents:
diff changeset
14284 @vindex gnus-use-nocem
Dave Love <fx@gnu.org>
parents:
diff changeset
14285 Set this variable to @code{t} to set the ball rolling. It is @code{nil}
Dave Love <fx@gnu.org>
parents:
diff changeset
14286 by default.
Dave Love <fx@gnu.org>
parents:
diff changeset
14287
Dave Love <fx@gnu.org>
parents:
diff changeset
14288 @item gnus-nocem-groups
Dave Love <fx@gnu.org>
parents:
diff changeset
14289 @vindex gnus-nocem-groups
Dave Love <fx@gnu.org>
parents:
diff changeset
14290 Gnus will look for NoCeM messages in the groups in this list. The
Dave Love <fx@gnu.org>
parents:
diff changeset
14291 default is @code{("news.lists.filters" "news.admin.net-abuse.bulletins"
Dave Love <fx@gnu.org>
parents:
diff changeset
14292 "alt.nocem.misc" "news.admin.net-abuse.announce")}.
Dave Love <fx@gnu.org>
parents:
diff changeset
14293
Dave Love <fx@gnu.org>
parents:
diff changeset
14294 @item gnus-nocem-issuers
Dave Love <fx@gnu.org>
parents:
diff changeset
14295 @vindex gnus-nocem-issuers
Dave Love <fx@gnu.org>
parents:
diff changeset
14296 There are many people issuing NoCeM messages. This list says what
Dave Love <fx@gnu.org>
parents:
diff changeset
14297 people you want to listen to. The default is @code{("Automoose-1"
Dave Love <fx@gnu.org>
parents:
diff changeset
14298 "rbraver@@ohww.norman.ok.us" "clewis@@ferret.ocunix.on.ca"
Dave Love <fx@gnu.org>
parents:
diff changeset
14299 "jem@@xpat.com" "snowhare@@xmission.com" "red@@redpoll.mrfs.oh.us
Dave Love <fx@gnu.org>
parents:
diff changeset
14300 (Richard E. Depew)")}; fine, upstanding citizens all of them.
Dave Love <fx@gnu.org>
parents:
diff changeset
14301
Dave Love <fx@gnu.org>
parents:
diff changeset
14302 Known despammers that you can put in this list include:
Dave Love <fx@gnu.org>
parents:
diff changeset
14303
Dave Love <fx@gnu.org>
parents:
diff changeset
14304 @table @samp
Dave Love <fx@gnu.org>
parents:
diff changeset
14305 @item clewis@@ferret.ocunix.on.ca;
Dave Love <fx@gnu.org>
parents:
diff changeset
14306 @cindex Chris Lewis
Dave Love <fx@gnu.org>
parents:
diff changeset
14307 Chris Lewis---Major Canadian despammer who has probably canceled more
Dave Love <fx@gnu.org>
parents:
diff changeset
14308 usenet abuse than anybody else.
Dave Love <fx@gnu.org>
parents:
diff changeset
14309
Dave Love <fx@gnu.org>
parents:
diff changeset
14310 @item Automoose-1
Dave Love <fx@gnu.org>
parents:
diff changeset
14311 @cindex CancelMoose[tm]
Dave Love <fx@gnu.org>
parents:
diff changeset
14312 The CancelMoose[tm] on autopilot. The CancelMoose[tm] is reputed to be
Dave Love <fx@gnu.org>
parents:
diff changeset
14313 Norwegian, and was the person(s) who invented NoCeM.
Dave Love <fx@gnu.org>
parents:
diff changeset
14314
Dave Love <fx@gnu.org>
parents:
diff changeset
14315 @item jem@@xpat.com;
Dave Love <fx@gnu.org>
parents:
diff changeset
14316 @cindex Jem
Dave Love <fx@gnu.org>
parents:
diff changeset
14317 John Milburn---despammer located in Korea who is getting very busy these
Dave Love <fx@gnu.org>
parents:
diff changeset
14318 days.
Dave Love <fx@gnu.org>
parents:
diff changeset
14319
Dave Love <fx@gnu.org>
parents:
diff changeset
14320 @item red@@redpoll.mrfs.oh.us (Richard E. Depew)
Dave Love <fx@gnu.org>
parents:
diff changeset
14321 Richard E. Depew---lone American despammer. He mostly cancels binary
Dave Love <fx@gnu.org>
parents:
diff changeset
14322 postings to non-binary groups and removes spews (regurgitated articles).
Dave Love <fx@gnu.org>
parents:
diff changeset
14323 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
14324
Dave Love <fx@gnu.org>
parents:
diff changeset
14325 You do not have to heed NoCeM messages from all these people---just the
Dave Love <fx@gnu.org>
parents:
diff changeset
14326 ones you want to listen to. You also don't have to accept all NoCeM
Dave Love <fx@gnu.org>
parents:
diff changeset
14327 messages from the people you like. Each NoCeM message has a @dfn{type}
Dave Love <fx@gnu.org>
parents:
diff changeset
14328 header that gives the message a (more or less, usually less) rigorous
Dave Love <fx@gnu.org>
parents:
diff changeset
14329 definition. Common types are @samp{spam}, @samp{spew}, @samp{mmf},
Dave Love <fx@gnu.org>
parents:
diff changeset
14330 @samp{binary}, and @samp{troll}. To specify this, you have to use
26290
df10644e22b5 Fix complaints from makeinfo 4.0.
Dave Love <fx@gnu.org>
parents: 25829
diff changeset
14331 @code{(@var{issuer} @var{conditions} @dots{})} elements in the list. Each condition is
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
14332 either a string (which is a regexp that matches types you want to use)
Dave Love <fx@gnu.org>
parents:
diff changeset
14333 or a list on the form @code{(not STRING)}, where @var{string} is a
Dave Love <fx@gnu.org>
parents:
diff changeset
14334 regexp that matches types you don't want to use.
Dave Love <fx@gnu.org>
parents:
diff changeset
14335
Dave Love <fx@gnu.org>
parents:
diff changeset
14336 For instance, if you want all NoCeM messages from Chris Lewis except his
Dave Love <fx@gnu.org>
parents:
diff changeset
14337 @samp{troll} messages, you'd say:
Dave Love <fx@gnu.org>
parents:
diff changeset
14338
Dave Love <fx@gnu.org>
parents:
diff changeset
14339 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
14340 ("clewis@@ferret.ocunix.on.ca" ".*" (not "troll"))
Dave Love <fx@gnu.org>
parents:
diff changeset
14341 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
14342
Dave Love <fx@gnu.org>
parents:
diff changeset
14343 On the other hand, if you just want nothing but his @samp{spam} and
Dave Love <fx@gnu.org>
parents:
diff changeset
14344 @samp{spew} messages, you'd say:
Dave Love <fx@gnu.org>
parents:
diff changeset
14345
Dave Love <fx@gnu.org>
parents:
diff changeset
14346 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
14347 ("clewis@@ferret.ocunix.on.ca" (not ".*") "spew" "spam")
Dave Love <fx@gnu.org>
parents:
diff changeset
14348 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
14349
Dave Love <fx@gnu.org>
parents:
diff changeset
14350 The specs are applied left-to-right.
Dave Love <fx@gnu.org>
parents:
diff changeset
14351
Dave Love <fx@gnu.org>
parents:
diff changeset
14352
Dave Love <fx@gnu.org>
parents:
diff changeset
14353 @item gnus-nocem-verifyer
Dave Love <fx@gnu.org>
parents:
diff changeset
14354 @vindex gnus-nocem-verifyer
Dave Love <fx@gnu.org>
parents:
diff changeset
14355 @findex mc-verify
Dave Love <fx@gnu.org>
parents:
diff changeset
14356 This should be a function for verifying that the NoCeM issuer is who she
Dave Love <fx@gnu.org>
parents:
diff changeset
14357 says she is. The default is @code{mc-verify}, which is a Mailcrypt
Dave Love <fx@gnu.org>
parents:
diff changeset
14358 function. If this is too slow and you don't care for verification
Dave Love <fx@gnu.org>
parents:
diff changeset
14359 (which may be dangerous), you can set this variable to @code{nil}.
Dave Love <fx@gnu.org>
parents:
diff changeset
14360
Dave Love <fx@gnu.org>
parents:
diff changeset
14361 If you want signed NoCeM messages to be verified and unsigned messages
Dave Love <fx@gnu.org>
parents:
diff changeset
14362 not to be verified (but used anyway), you could do something like:
Dave Love <fx@gnu.org>
parents:
diff changeset
14363
Dave Love <fx@gnu.org>
parents:
diff changeset
14364 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
14365 (setq gnus-nocem-verifyer 'my-gnus-mc-verify)
Dave Love <fx@gnu.org>
parents:
diff changeset
14366
Dave Love <fx@gnu.org>
parents:
diff changeset
14367 (defun my-gnus-mc-verify ()
Dave Love <fx@gnu.org>
parents:
diff changeset
14368 (not (eq 'forged
Dave Love <fx@gnu.org>
parents:
diff changeset
14369 (ignore-errors
Dave Love <fx@gnu.org>
parents:
diff changeset
14370 (if (mc-verify)
Dave Love <fx@gnu.org>
parents:
diff changeset
14371 t
Dave Love <fx@gnu.org>
parents:
diff changeset
14372 'forged)))))
Dave Love <fx@gnu.org>
parents:
diff changeset
14373 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
14374
Dave Love <fx@gnu.org>
parents:
diff changeset
14375 This might be dangerous, though.
Dave Love <fx@gnu.org>
parents:
diff changeset
14376
Dave Love <fx@gnu.org>
parents:
diff changeset
14377 @item gnus-nocem-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
14378 @vindex gnus-nocem-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
14379 This is where Gnus will store its NoCeM cache files. The default is
Dave Love <fx@gnu.org>
parents:
diff changeset
14380 @file{~/News/NoCeM/}.
Dave Love <fx@gnu.org>
parents:
diff changeset
14381
Dave Love <fx@gnu.org>
parents:
diff changeset
14382 @item gnus-nocem-expiry-wait
Dave Love <fx@gnu.org>
parents:
diff changeset
14383 @vindex gnus-nocem-expiry-wait
Dave Love <fx@gnu.org>
parents:
diff changeset
14384 The number of days before removing old NoCeM entries from the cache.
Dave Love <fx@gnu.org>
parents:
diff changeset
14385 The default is 15. If you make it shorter Gnus will be faster, but you
Dave Love <fx@gnu.org>
parents:
diff changeset
14386 might then see old spam.
Dave Love <fx@gnu.org>
parents:
diff changeset
14387
Dave Love <fx@gnu.org>
parents:
diff changeset
14388 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
14389
Dave Love <fx@gnu.org>
parents:
diff changeset
14390 Using NoCeM could potentially be a memory hog. If you have many living
Dave Love <fx@gnu.org>
parents:
diff changeset
14391 (i. e., subscribed or unsubscribed groups), your Emacs process will grow
Dave Love <fx@gnu.org>
parents:
diff changeset
14392 big. If this is a problem, you should kill off all (or most) of your
Dave Love <fx@gnu.org>
parents:
diff changeset
14393 unsubscribed groups (@pxref{Subscription Commands}).
Dave Love <fx@gnu.org>
parents:
diff changeset
14394
Dave Love <fx@gnu.org>
parents:
diff changeset
14395
Dave Love <fx@gnu.org>
parents:
diff changeset
14396 @node Undo
Dave Love <fx@gnu.org>
parents:
diff changeset
14397 @section Undo
Dave Love <fx@gnu.org>
parents:
diff changeset
14398 @cindex undo
Dave Love <fx@gnu.org>
parents:
diff changeset
14399
Dave Love <fx@gnu.org>
parents:
diff changeset
14400 It is very useful to be able to undo actions one has done. In normal
Dave Love <fx@gnu.org>
parents:
diff changeset
14401 Emacs buffers, it's easy enough---you just push the @code{undo} button.
Dave Love <fx@gnu.org>
parents:
diff changeset
14402 In Gnus buffers, however, it isn't that simple.
Dave Love <fx@gnu.org>
parents:
diff changeset
14403
Dave Love <fx@gnu.org>
parents:
diff changeset
14404 The things Gnus displays in its buffer is of no value whatsoever to
Dave Love <fx@gnu.org>
parents:
diff changeset
14405 Gnus---it's all just data designed to look nice to the user.
Dave Love <fx@gnu.org>
parents:
diff changeset
14406 Killing a group in the group buffer with @kbd{C-k} makes the line
Dave Love <fx@gnu.org>
parents:
diff changeset
14407 disappear, but that's just a side-effect of the real action---the
Dave Love <fx@gnu.org>
parents:
diff changeset
14408 removal of the group in question from the internal Gnus structures.
Dave Love <fx@gnu.org>
parents:
diff changeset
14409 Undoing something like that can't be done by the normal Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
14410 @code{undo} function.
Dave Love <fx@gnu.org>
parents:
diff changeset
14411
Dave Love <fx@gnu.org>
parents:
diff changeset
14412 Gnus tries to remedy this somewhat by keeping track of what the user
Dave Love <fx@gnu.org>
parents:
diff changeset
14413 does and coming up with actions that would reverse the actions the user
Dave Love <fx@gnu.org>
parents:
diff changeset
14414 takes. When the user then presses the @code{undo} key, Gnus will run
Dave Love <fx@gnu.org>
parents:
diff changeset
14415 the code to reverse the previous action, or the previous actions.
Dave Love <fx@gnu.org>
parents:
diff changeset
14416 However, not all actions are easily reversible, so Gnus currently offers
Dave Love <fx@gnu.org>
parents:
diff changeset
14417 a few key functions to be undoable. These include killing groups,
Dave Love <fx@gnu.org>
parents:
diff changeset
14418 yanking groups, and changing the list of read articles of groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
14419 That's it, really. More functions may be added in the future, but each
Dave Love <fx@gnu.org>
parents:
diff changeset
14420 added function means an increase in data to be stored, so Gnus will
Dave Love <fx@gnu.org>
parents:
diff changeset
14421 never be totally undoable.
Dave Love <fx@gnu.org>
parents:
diff changeset
14422
Dave Love <fx@gnu.org>
parents:
diff changeset
14423 @findex gnus-undo-mode
Dave Love <fx@gnu.org>
parents:
diff changeset
14424 @vindex gnus-use-undo
Dave Love <fx@gnu.org>
parents:
diff changeset
14425 @findex gnus-undo
Dave Love <fx@gnu.org>
parents:
diff changeset
14426 The undoability is provided by the @code{gnus-undo-mode} minor mode. It
Dave Love <fx@gnu.org>
parents:
diff changeset
14427 is used if @code{gnus-use-undo} is non-@code{nil}, which is the
Dave Love <fx@gnu.org>
parents:
diff changeset
14428 default. The @kbd{M-C-_} key performs the @code{gnus-undo} command
Dave Love <fx@gnu.org>
parents:
diff changeset
14429 command, which should feel kinda like the normal Emacs @code{undo}
Dave Love <fx@gnu.org>
parents:
diff changeset
14430 command.
Dave Love <fx@gnu.org>
parents:
diff changeset
14431
Dave Love <fx@gnu.org>
parents:
diff changeset
14432
Dave Love <fx@gnu.org>
parents:
diff changeset
14433 @node Moderation
Dave Love <fx@gnu.org>
parents:
diff changeset
14434 @section Moderation
Dave Love <fx@gnu.org>
parents:
diff changeset
14435 @cindex moderation
Dave Love <fx@gnu.org>
parents:
diff changeset
14436
Dave Love <fx@gnu.org>
parents:
diff changeset
14437 If you are a moderator, you can use the @file{gnus-mdrtn.el} package.
Dave Love <fx@gnu.org>
parents:
diff changeset
14438 It is not included in the standard Gnus package. Write a mail to
Dave Love <fx@gnu.org>
parents:
diff changeset
14439 @samp{larsi@@gnus.org} and state what group you moderate, and you'll
Dave Love <fx@gnu.org>
parents:
diff changeset
14440 get a copy.
Dave Love <fx@gnu.org>
parents:
diff changeset
14441
Dave Love <fx@gnu.org>
parents:
diff changeset
14442 The moderation package is implemented as a minor mode for summary
Dave Love <fx@gnu.org>
parents:
diff changeset
14443 buffers. Put
Dave Love <fx@gnu.org>
parents:
diff changeset
14444
Dave Love <fx@gnu.org>
parents:
diff changeset
14445 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
14446 (add-hook 'gnus-summary-mode-hook 'gnus-moderate)
Dave Love <fx@gnu.org>
parents:
diff changeset
14447 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
14448
Dave Love <fx@gnu.org>
parents:
diff changeset
14449 in your @file{.gnus.el} file.
Dave Love <fx@gnu.org>
parents:
diff changeset
14450
Dave Love <fx@gnu.org>
parents:
diff changeset
14451 If you are the moderator of @samp{rec.zoofle}, this is how it's
Dave Love <fx@gnu.org>
parents:
diff changeset
14452 supposed to work:
Dave Love <fx@gnu.org>
parents:
diff changeset
14453
Dave Love <fx@gnu.org>
parents:
diff changeset
14454 @enumerate
Dave Love <fx@gnu.org>
parents:
diff changeset
14455 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
14456 You split your incoming mail by matching on
Dave Love <fx@gnu.org>
parents:
diff changeset
14457 @samp{Newsgroups:.*rec.zoofle}, which will put all the to-be-posted
Dave Love <fx@gnu.org>
parents:
diff changeset
14458 articles in some mail group---for instance, @samp{nnml:rec.zoofle}.
Dave Love <fx@gnu.org>
parents:
diff changeset
14459
Dave Love <fx@gnu.org>
parents:
diff changeset
14460 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
14461 You enter that group once in a while and post articles using the @kbd{e}
Dave Love <fx@gnu.org>
parents:
diff changeset
14462 (edit-and-post) or @kbd{s} (just send unedited) commands.
Dave Love <fx@gnu.org>
parents:
diff changeset
14463
Dave Love <fx@gnu.org>
parents:
diff changeset
14464 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
14465 If, while reading the @samp{rec.zoofle} newsgroup, you happen upon some
Dave Love <fx@gnu.org>
parents:
diff changeset
14466 articles that weren't approved by you, you can cancel them with the
Dave Love <fx@gnu.org>
parents:
diff changeset
14467 @kbd{c} command.
Dave Love <fx@gnu.org>
parents:
diff changeset
14468 @end enumerate
Dave Love <fx@gnu.org>
parents:
diff changeset
14469
Dave Love <fx@gnu.org>
parents:
diff changeset
14470 To use moderation mode in these two groups, say:
Dave Love <fx@gnu.org>
parents:
diff changeset
14471
Dave Love <fx@gnu.org>
parents:
diff changeset
14472 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
14473 (setq gnus-moderated-list
Dave Love <fx@gnu.org>
parents:
diff changeset
14474 "^nnml:rec.zoofle$\\|^rec.zoofle$")
Dave Love <fx@gnu.org>
parents:
diff changeset
14475 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
14476
Dave Love <fx@gnu.org>
parents:
diff changeset
14477
Dave Love <fx@gnu.org>
parents:
diff changeset
14478 @node XEmacs Enhancements
Dave Love <fx@gnu.org>
parents:
diff changeset
14479 @section XEmacs Enhancements
Dave Love <fx@gnu.org>
parents:
diff changeset
14480 @cindex XEmacs
Dave Love <fx@gnu.org>
parents:
diff changeset
14481
Dave Love <fx@gnu.org>
parents:
diff changeset
14482 XEmacs is able to display pictures and stuff, so Gnus has taken
Dave Love <fx@gnu.org>
parents:
diff changeset
14483 advantage of that.
Dave Love <fx@gnu.org>
parents:
diff changeset
14484
Dave Love <fx@gnu.org>
parents:
diff changeset
14485 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
14486 * Picons:: How to display pictures of what your reading.
Dave Love <fx@gnu.org>
parents:
diff changeset
14487 * Smileys:: Show all those happy faces the way they were meant to be shown.
Dave Love <fx@gnu.org>
parents:
diff changeset
14488 * Toolbar:: Click'n'drool.
Dave Love <fx@gnu.org>
parents:
diff changeset
14489 * XVarious:: Other XEmacsy Gnusey variables.
Dave Love <fx@gnu.org>
parents:
diff changeset
14490 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
14491
Dave Love <fx@gnu.org>
parents:
diff changeset
14492
Dave Love <fx@gnu.org>
parents:
diff changeset
14493 @node Picons
Dave Love <fx@gnu.org>
parents:
diff changeset
14494 @subsection Picons
Dave Love <fx@gnu.org>
parents:
diff changeset
14495
Dave Love <fx@gnu.org>
parents:
diff changeset
14496 So... You want to slow down your news reader even more! This is a
Dave Love <fx@gnu.org>
parents:
diff changeset
14497 good way to do so. Its also a great way to impress people staring
Dave Love <fx@gnu.org>
parents:
diff changeset
14498 over your shoulder as you read news.
Dave Love <fx@gnu.org>
parents:
diff changeset
14499
Dave Love <fx@gnu.org>
parents:
diff changeset
14500 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
14501 * Picon Basics:: What are picons and How do I get them.
Dave Love <fx@gnu.org>
parents:
diff changeset
14502 * Picon Requirements:: Don't go further if you aren't using XEmacs.
Dave Love <fx@gnu.org>
parents:
diff changeset
14503 * Easy Picons:: Displaying Picons---the easy way.
Dave Love <fx@gnu.org>
parents:
diff changeset
14504 * Hard Picons:: The way you should do it. You'll learn something.
Dave Love <fx@gnu.org>
parents:
diff changeset
14505 * Picon Useless Configuration:: Other variables you can trash/tweak/munge/play with.
Dave Love <fx@gnu.org>
parents:
diff changeset
14506 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
14507
Dave Love <fx@gnu.org>
parents:
diff changeset
14508
Dave Love <fx@gnu.org>
parents:
diff changeset
14509 @node Picon Basics
Dave Love <fx@gnu.org>
parents:
diff changeset
14510 @subsubsection Picon Basics
Dave Love <fx@gnu.org>
parents:
diff changeset
14511
Dave Love <fx@gnu.org>
parents:
diff changeset
14512 What are Picons? To quote directly from the Picons Web site:
Dave Love <fx@gnu.org>
parents:
diff changeset
14513
Dave Love <fx@gnu.org>
parents:
diff changeset
14514 @quotation
Dave Love <fx@gnu.org>
parents:
diff changeset
14515 @dfn{Picons} is short for ``personal icons''. They're small,
Dave Love <fx@gnu.org>
parents:
diff changeset
14516 constrained images used to represent users and domains on the net,
Dave Love <fx@gnu.org>
parents:
diff changeset
14517 organized into databases so that the appropriate image for a given
Dave Love <fx@gnu.org>
parents:
diff changeset
14518 e-mail address can be found. Besides users and domains, there are picon
Dave Love <fx@gnu.org>
parents:
diff changeset
14519 databases for Usenet newsgroups and weather forecasts. The picons are
Dave Love <fx@gnu.org>
parents:
diff changeset
14520 in either monochrome @code{XBM} format or color @code{XPM} and
Dave Love <fx@gnu.org>
parents:
diff changeset
14521 @code{GIF} formats.
Dave Love <fx@gnu.org>
parents:
diff changeset
14522 @end quotation
Dave Love <fx@gnu.org>
parents:
diff changeset
14523
Dave Love <fx@gnu.org>
parents:
diff changeset
14524 @vindex gnus-picons-piconsearch-url
Dave Love <fx@gnu.org>
parents:
diff changeset
14525 If you have a permanent connection to the Internet you can use Steve
Dave Love <fx@gnu.org>
parents:
diff changeset
14526 Kinzler's Picons Search engine by setting
Dave Love <fx@gnu.org>
parents:
diff changeset
14527 @code{gnus-picons-piconsearch-url} to the string @*
Dave Love <fx@gnu.org>
parents:
diff changeset
14528 @file{http://www.cs.indiana.edu/picons/search.html}.
Dave Love <fx@gnu.org>
parents:
diff changeset
14529
Dave Love <fx@gnu.org>
parents:
diff changeset
14530 @vindex gnus-picons-database
Dave Love <fx@gnu.org>
parents:
diff changeset
14531 Otherwise you need a local copy of his database. For instructions on
Dave Love <fx@gnu.org>
parents:
diff changeset
14532 obtaining and installing the picons databases, point your Web browser at @*
Dave Love <fx@gnu.org>
parents:
diff changeset
14533 @file{http://www.cs.indiana.edu/picons/ftp/index.html}. Gnus expects
Dave Love <fx@gnu.org>
parents:
diff changeset
14534 picons to be installed into a location pointed to by
Dave Love <fx@gnu.org>
parents:
diff changeset
14535 @code{gnus-picons-database}.
Dave Love <fx@gnu.org>
parents:
diff changeset
14536
Dave Love <fx@gnu.org>
parents:
diff changeset
14537
Dave Love <fx@gnu.org>
parents:
diff changeset
14538 @node Picon Requirements
Dave Love <fx@gnu.org>
parents:
diff changeset
14539 @subsubsection Picon Requirements
Dave Love <fx@gnu.org>
parents:
diff changeset
14540
Dave Love <fx@gnu.org>
parents:
diff changeset
14541 To have Gnus display Picons for you, you must be running XEmacs
Dave Love <fx@gnu.org>
parents:
diff changeset
14542 19.13 or greater since all other versions of Emacs aren't yet able to
Dave Love <fx@gnu.org>
parents:
diff changeset
14543 display images.
Dave Love <fx@gnu.org>
parents:
diff changeset
14544
Dave Love <fx@gnu.org>
parents:
diff changeset
14545 Additionally, you must have @code{x} support compiled into XEmacs. To
Dave Love <fx@gnu.org>
parents:
diff changeset
14546 display color picons which are much nicer than the black & white one,
Dave Love <fx@gnu.org>
parents:
diff changeset
14547 you also need one of @code{xpm} or @code{gif} compiled into XEmacs.
Dave Love <fx@gnu.org>
parents:
diff changeset
14548
Dave Love <fx@gnu.org>
parents:
diff changeset
14549 @vindex gnus-picons-convert-x-face
Dave Love <fx@gnu.org>
parents:
diff changeset
14550 If you want to display faces from @code{X-Face} headers, you should have
Dave Love <fx@gnu.org>
parents:
diff changeset
14551 the @code{xface} support compiled into XEmacs. Otherwise you must have
Dave Love <fx@gnu.org>
parents:
diff changeset
14552 the @code{netpbm} utilities installed, or munge the
Dave Love <fx@gnu.org>
parents:
diff changeset
14553 @code{gnus-picons-convert-x-face} variable to use something else.
Dave Love <fx@gnu.org>
parents:
diff changeset
14554
Dave Love <fx@gnu.org>
parents:
diff changeset
14555
Dave Love <fx@gnu.org>
parents:
diff changeset
14556 @node Easy Picons
Dave Love <fx@gnu.org>
parents:
diff changeset
14557 @subsubsection Easy Picons
Dave Love <fx@gnu.org>
parents:
diff changeset
14558
Dave Love <fx@gnu.org>
parents:
diff changeset
14559 To enable displaying picons, simply put the following line in your
Dave Love <fx@gnu.org>
parents:
diff changeset
14560 @file{~/.gnus} file and start Gnus.
Dave Love <fx@gnu.org>
parents:
diff changeset
14561
Dave Love <fx@gnu.org>
parents:
diff changeset
14562 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
14563 (setq gnus-use-picons t)
Dave Love <fx@gnu.org>
parents:
diff changeset
14564 (add-hook 'gnus-article-display-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
14565 'gnus-article-display-picons t)
Dave Love <fx@gnu.org>
parents:
diff changeset
14566 (add-hook 'gnus-article-display-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
14567 'gnus-picons-article-display-x-face)
Dave Love <fx@gnu.org>
parents:
diff changeset
14568 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
14569
Dave Love <fx@gnu.org>
parents:
diff changeset
14570 and make sure @code{gnus-picons-database} points to the directory
Dave Love <fx@gnu.org>
parents:
diff changeset
14571 containing the Picons databases.
Dave Love <fx@gnu.org>
parents:
diff changeset
14572
Dave Love <fx@gnu.org>
parents:
diff changeset
14573 Alternatively if you want to use the web piconsearch engine add this:
Dave Love <fx@gnu.org>
parents:
diff changeset
14574
Dave Love <fx@gnu.org>
parents:
diff changeset
14575 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
14576 (setq gnus-picons-piconsearch-url
Dave Love <fx@gnu.org>
parents:
diff changeset
14577 "http://www.cs.indiana.edu:800/piconsearch")
Dave Love <fx@gnu.org>
parents:
diff changeset
14578 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
14579
Dave Love <fx@gnu.org>
parents:
diff changeset
14580
Dave Love <fx@gnu.org>
parents:
diff changeset
14581 @node Hard Picons
Dave Love <fx@gnu.org>
parents:
diff changeset
14582 @subsubsection Hard Picons
Dave Love <fx@gnu.org>
parents:
diff changeset
14583
Dave Love <fx@gnu.org>
parents:
diff changeset
14584 Gnus can display picons for you as you enter and leave groups and
Dave Love <fx@gnu.org>
parents:
diff changeset
14585 articles. It knows how to interact with three sections of the picons
Dave Love <fx@gnu.org>
parents:
diff changeset
14586 database. Namely, it can display the picons newsgroup pictures,
Dave Love <fx@gnu.org>
parents:
diff changeset
14587 author's face picture(s), and the authors domain. To enable this
Dave Love <fx@gnu.org>
parents:
diff changeset
14588 feature, you need to select where to get the picons from, and where to
Dave Love <fx@gnu.org>
parents:
diff changeset
14589 display them.
Dave Love <fx@gnu.org>
parents:
diff changeset
14590
Dave Love <fx@gnu.org>
parents:
diff changeset
14591 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
14592
Dave Love <fx@gnu.org>
parents:
diff changeset
14593 @item gnus-picons-database
Dave Love <fx@gnu.org>
parents:
diff changeset
14594 @vindex gnus-picons-database
Dave Love <fx@gnu.org>
parents:
diff changeset
14595 The location of the picons database. Should point to a directory
Dave Love <fx@gnu.org>
parents:
diff changeset
14596 containing the @file{news}, @file{domains}, @file{users} (and so on)
Dave Love <fx@gnu.org>
parents:
diff changeset
14597 subdirectories. This is only useful if
Dave Love <fx@gnu.org>
parents:
diff changeset
14598 @code{gnus-picons-piconsearch-url} is @code{nil}. Defaults to
Dave Love <fx@gnu.org>
parents:
diff changeset
14599 @file{/usr/local/faces/}.
Dave Love <fx@gnu.org>
parents:
diff changeset
14600
Dave Love <fx@gnu.org>
parents:
diff changeset
14601 @item gnus-picons-piconsearch-url
Dave Love <fx@gnu.org>
parents:
diff changeset
14602 @vindex gnus-picons-piconsearch-url
Dave Love <fx@gnu.org>
parents:
diff changeset
14603 The URL for the web picons search engine. The only currently known
Dave Love <fx@gnu.org>
parents:
diff changeset
14604 engine is @file{http://www.cs.indiana.edu:800/piconsearch}. To
Dave Love <fx@gnu.org>
parents:
diff changeset
14605 workaround network delays, icons will be fetched in the background. If
Dave Love <fx@gnu.org>
parents:
diff changeset
14606 this is @code{nil} 'the default), then picons are fetched from local
Dave Love <fx@gnu.org>
parents:
diff changeset
14607 database indicated by @code{gnus-picons-database}.
Dave Love <fx@gnu.org>
parents:
diff changeset
14608
Dave Love <fx@gnu.org>
parents:
diff changeset
14609 @item gnus-picons-display-where
Dave Love <fx@gnu.org>
parents:
diff changeset
14610 @vindex gnus-picons-display-where
Dave Love <fx@gnu.org>
parents:
diff changeset
14611 Where the picon images should be displayed. It is @code{picons} by
Dave Love <fx@gnu.org>
parents:
diff changeset
14612 default (which by default maps to the buffer @samp{*Picons*}). Other
Dave Love <fx@gnu.org>
parents:
diff changeset
14613 valid places could be @code{article}, @code{summary}, or
Dave Love <fx@gnu.org>
parents:
diff changeset
14614 @samp{*scratch*} for all I care. Just make sure that you've made the
Dave Love <fx@gnu.org>
parents:
diff changeset
14615 buffer visible using the standard Gnus window configuration
Dave Love <fx@gnu.org>
parents:
diff changeset
14616 routines---@pxref{Windows Configuration}.
Dave Love <fx@gnu.org>
parents:
diff changeset
14617
Dave Love <fx@gnu.org>
parents:
diff changeset
14618 @item gnus-picons-group-excluded-groups
Dave Love <fx@gnu.org>
parents:
diff changeset
14619 @vindex gnus-picons-group-excluded-groups
Dave Love <fx@gnu.org>
parents:
diff changeset
14620 Groups that are matched by this regexp won't have their group icons
Dave Love <fx@gnu.org>
parents:
diff changeset
14621 displayed.
Dave Love <fx@gnu.org>
parents:
diff changeset
14622
Dave Love <fx@gnu.org>
parents:
diff changeset
14623 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
14624
Dave Love <fx@gnu.org>
parents:
diff changeset
14625 Note: If you set @code{gnus-use-picons} to @code{t}, it will set up your
Dave Love <fx@gnu.org>
parents:
diff changeset
14626 window configuration for you to include the @code{picons} buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
14627
Dave Love <fx@gnu.org>
parents:
diff changeset
14628 Now that you've made those decision, you need to add the following
Dave Love <fx@gnu.org>
parents:
diff changeset
14629 functions to the appropriate hooks so these pictures will get displayed
Dave Love <fx@gnu.org>
parents:
diff changeset
14630 at the right time.
Dave Love <fx@gnu.org>
parents:
diff changeset
14631
Dave Love <fx@gnu.org>
parents:
diff changeset
14632 @vindex gnus-article-display-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
14633 @vindex gnus-picons-display-where
Dave Love <fx@gnu.org>
parents:
diff changeset
14634 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
14635 @item gnus-article-display-picons
Dave Love <fx@gnu.org>
parents:
diff changeset
14636 @findex gnus-article-display-picons
Dave Love <fx@gnu.org>
parents:
diff changeset
14637 Looks up and displays the picons for the author and the author's domain
Dave Love <fx@gnu.org>
parents:
diff changeset
14638 in the @code{gnus-picons-display-where} buffer. Should be added to the
Dave Love <fx@gnu.org>
parents:
diff changeset
14639 @code{gnus-article-display-hook}.
Dave Love <fx@gnu.org>
parents:
diff changeset
14640
Dave Love <fx@gnu.org>
parents:
diff changeset
14641 @item gnus-picons-article-display-x-face
Dave Love <fx@gnu.org>
parents:
diff changeset
14642 @findex gnus-article-display-picons
Dave Love <fx@gnu.org>
parents:
diff changeset
14643 Decodes and displays the X-Face header if present. This function
Dave Love <fx@gnu.org>
parents:
diff changeset
14644 should be added to @code{gnus-article-display-hook}.
Dave Love <fx@gnu.org>
parents:
diff changeset
14645
Dave Love <fx@gnu.org>
parents:
diff changeset
14646 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
14647
Dave Love <fx@gnu.org>
parents:
diff changeset
14648 Note: You must append them to the hook, so make sure to specify 't'
Dave Love <fx@gnu.org>
parents:
diff changeset
14649 for the append flag of @code{add-hook}:
Dave Love <fx@gnu.org>
parents:
diff changeset
14650
Dave Love <fx@gnu.org>
parents:
diff changeset
14651 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
14652 (add-hook 'gnus-article-display-hook 'gnus-article-display-picons t)
Dave Love <fx@gnu.org>
parents:
diff changeset
14653 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
14654
Dave Love <fx@gnu.org>
parents:
diff changeset
14655
Dave Love <fx@gnu.org>
parents:
diff changeset
14656 @node Picon Useless Configuration
Dave Love <fx@gnu.org>
parents:
diff changeset
14657 @subsubsection Picon Useless Configuration
Dave Love <fx@gnu.org>
parents:
diff changeset
14658
Dave Love <fx@gnu.org>
parents:
diff changeset
14659 The following variables offer further control over how things are
Dave Love <fx@gnu.org>
parents:
diff changeset
14660 done, where things are located, and other useless stuff you really
Dave Love <fx@gnu.org>
parents:
diff changeset
14661 don't need to worry about.
Dave Love <fx@gnu.org>
parents:
diff changeset
14662
Dave Love <fx@gnu.org>
parents:
diff changeset
14663 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
14664
Dave Love <fx@gnu.org>
parents:
diff changeset
14665 @item gnus-picons-news-directories
Dave Love <fx@gnu.org>
parents:
diff changeset
14666 @vindex gnus-picons-news-directories
Dave Love <fx@gnu.org>
parents:
diff changeset
14667 List of subdirectories to search in @code{gnus-picons-database} for
Dave Love <fx@gnu.org>
parents:
diff changeset
14668 newsgroups faces. @code{("news")} is the default.
Dave Love <fx@gnu.org>
parents:
diff changeset
14669
Dave Love <fx@gnu.org>
parents:
diff changeset
14670 @item gnus-picons-user-directories
Dave Love <fx@gnu.org>
parents:
diff changeset
14671 @vindex gnus-picons-user-directories
Dave Love <fx@gnu.org>
parents:
diff changeset
14672 List of subdirectories to search in @code{gnus-picons-database} for user
Dave Love <fx@gnu.org>
parents:
diff changeset
14673 faces. @code{("local" "users" "usenix" "misc")} is the default.
Dave Love <fx@gnu.org>
parents:
diff changeset
14674
Dave Love <fx@gnu.org>
parents:
diff changeset
14675 @item gnus-picons-domain-directories
Dave Love <fx@gnu.org>
parents:
diff changeset
14676 @vindex gnus-picons-domain-directories
Dave Love <fx@gnu.org>
parents:
diff changeset
14677 List of subdirectories to search in @code{gnus-picons-database} for
Dave Love <fx@gnu.org>
parents:
diff changeset
14678 domain name faces. Defaults to @code{("domains")}. Some people may
Dave Love <fx@gnu.org>
parents:
diff changeset
14679 want to add @samp{"unknown"} to this list.
Dave Love <fx@gnu.org>
parents:
diff changeset
14680
Dave Love <fx@gnu.org>
parents:
diff changeset
14681 @item gnus-picons-convert-x-face
Dave Love <fx@gnu.org>
parents:
diff changeset
14682 @vindex gnus-picons-convert-x-face
Dave Love <fx@gnu.org>
parents:
diff changeset
14683 If you don't have @code{xface} support builtin XEmacs, this is the
Dave Love <fx@gnu.org>
parents:
diff changeset
14684 command to use to convert the @code{X-Face} header to an X bitmap
Dave Love <fx@gnu.org>
parents:
diff changeset
14685 (@code{xbm}). Defaults to @code{(format "@{ echo '/* Width=48,
Dave Love <fx@gnu.org>
parents:
diff changeset
14686 Height=48 */'; uncompface; @} | icontopbm | pbmtoxbm > %s"
Dave Love <fx@gnu.org>
parents:
diff changeset
14687 gnus-picons-x-face-file-name)}
Dave Love <fx@gnu.org>
parents:
diff changeset
14688
Dave Love <fx@gnu.org>
parents:
diff changeset
14689 @item gnus-picons-x-face-file-name
Dave Love <fx@gnu.org>
parents:
diff changeset
14690 @vindex gnus-picons-x-face-file-name
Dave Love <fx@gnu.org>
parents:
diff changeset
14691 Names a temporary file to store the @code{X-Face} bitmap in. Defaults
Dave Love <fx@gnu.org>
parents:
diff changeset
14692 to @code{(format "/tmp/picon-xface.%s.xbm" (user-login-name))}.
Dave Love <fx@gnu.org>
parents:
diff changeset
14693
Dave Love <fx@gnu.org>
parents:
diff changeset
14694 @item gnus-picons-has-modeline-p
Dave Love <fx@gnu.org>
parents:
diff changeset
14695 @vindex gnus-picons-has-modeline-p
Dave Love <fx@gnu.org>
parents:
diff changeset
14696 If you have set @code{gnus-picons-display-where} to @code{picons}, your
Dave Love <fx@gnu.org>
parents:
diff changeset
14697 XEmacs frame will become really cluttered. To alleviate this a bit you
Dave Love <fx@gnu.org>
parents:
diff changeset
14698 can set @code{gnus-picons-has-modeline-p} to @code{nil}; this will
Dave Love <fx@gnu.org>
parents:
diff changeset
14699 remove the mode line from the Picons buffer. This is only useful if
Dave Love <fx@gnu.org>
parents:
diff changeset
14700 @code{gnus-picons-display-where} is @code{picons}.
Dave Love <fx@gnu.org>
parents:
diff changeset
14701
Dave Love <fx@gnu.org>
parents:
diff changeset
14702 @item gnus-picons-refresh-before-display
Dave Love <fx@gnu.org>
parents:
diff changeset
14703 @vindex gnus-picons-refresh-before-display
Dave Love <fx@gnu.org>
parents:
diff changeset
14704 If non-nil, display the article buffer before computing the picons.
Dave Love <fx@gnu.org>
parents:
diff changeset
14705 Defaults to @code{nil}.
Dave Love <fx@gnu.org>
parents:
diff changeset
14706
Dave Love <fx@gnu.org>
parents:
diff changeset
14707 @item gnus-picons-display-as-address
Dave Love <fx@gnu.org>
parents:
diff changeset
14708 @vindex gnus-picons-display-as-address
Dave Love <fx@gnu.org>
parents:
diff changeset
14709 If @code{t} display textual email addresses along with pictures.
Dave Love <fx@gnu.org>
parents:
diff changeset
14710 Defaults to @code{t}.
Dave Love <fx@gnu.org>
parents:
diff changeset
14711
Dave Love <fx@gnu.org>
parents:
diff changeset
14712 @item gnus-picons-file-suffixes
Dave Love <fx@gnu.org>
parents:
diff changeset
14713 @vindex gnus-picons-file-suffixes
Dave Love <fx@gnu.org>
parents:
diff changeset
14714 Ordered list of suffixes on picon file names to try. Defaults to
Dave Love <fx@gnu.org>
parents:
diff changeset
14715 @code{("xpm" "gif" "xbm")} minus those not builtin your XEmacs.
Dave Love <fx@gnu.org>
parents:
diff changeset
14716
Dave Love <fx@gnu.org>
parents:
diff changeset
14717 @item gnus-picons-display-article-move-p
Dave Love <fx@gnu.org>
parents:
diff changeset
14718 @vindex gnus-picons-display-article-move-p
Dave Love <fx@gnu.org>
parents:
diff changeset
14719 Whether to move point to first empty line when displaying picons. This
Dave Love <fx@gnu.org>
parents:
diff changeset
14720 has only an effect if `gnus-picons-display-where' has value `article'.
Dave Love <fx@gnu.org>
parents:
diff changeset
14721
Dave Love <fx@gnu.org>
parents:
diff changeset
14722 @item gnus-picons-clear-cache-on-shutdown
Dave Love <fx@gnu.org>
parents:
diff changeset
14723 @vindex gnus-picons-clear-cache-on-shutdown
Dave Love <fx@gnu.org>
parents:
diff changeset
14724 Whether to clear the picons cache when exiting gnus. Gnus caches every
Dave Love <fx@gnu.org>
parents:
diff changeset
14725 picons it finds while it is running. This saves some time in the search
Dave Love <fx@gnu.org>
parents:
diff changeset
14726 process but eats some memory. If this variable is set to @code{nil},
Dave Love <fx@gnu.org>
parents:
diff changeset
14727 Gnus will never clear the cache itself; you will have to manually call
Dave Love <fx@gnu.org>
parents:
diff changeset
14728 @code{gnus-picons-clear-cache} to clear it. Otherwise the cache will be
Dave Love <fx@gnu.org>
parents:
diff changeset
14729 cleared every time you exit Gnus. Defaults to @code{t}.
Dave Love <fx@gnu.org>
parents:
diff changeset
14730
Dave Love <fx@gnu.org>
parents:
diff changeset
14731 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
14732
Dave Love <fx@gnu.org>
parents:
diff changeset
14733 @node Smileys
Dave Love <fx@gnu.org>
parents:
diff changeset
14734 @subsection Smileys
Dave Love <fx@gnu.org>
parents:
diff changeset
14735 @cindex smileys
Dave Love <fx@gnu.org>
parents:
diff changeset
14736
Dave Love <fx@gnu.org>
parents:
diff changeset
14737 @dfn{Smiley} is a package separate from Gnus, but since Gnus is
Dave Love <fx@gnu.org>
parents:
diff changeset
14738 currently the only package that uses Smiley, it is documented here.
Dave Love <fx@gnu.org>
parents:
diff changeset
14739
Dave Love <fx@gnu.org>
parents:
diff changeset
14740 In short---to use Smiley in Gnus, put the following in your
Dave Love <fx@gnu.org>
parents:
diff changeset
14741 @file{.gnus.el} file:
Dave Love <fx@gnu.org>
parents:
diff changeset
14742
Dave Love <fx@gnu.org>
parents:
diff changeset
14743 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
14744 (add-hook 'gnus-article-display-hook 'gnus-smiley-display t)
Dave Love <fx@gnu.org>
parents:
diff changeset
14745 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
14746
Dave Love <fx@gnu.org>
parents:
diff changeset
14747 Smiley maps text smiley faces---@samp{:-)}, @samp{:-=}, @samp{:-(} and
Dave Love <fx@gnu.org>
parents:
diff changeset
14748 the like---to pictures and displays those instead of the text smiley
Dave Love <fx@gnu.org>
parents:
diff changeset
14749 faces. The conversion is controlled by a list of regexps that matches
Dave Love <fx@gnu.org>
parents:
diff changeset
14750 text and maps that to file names.
Dave Love <fx@gnu.org>
parents:
diff changeset
14751
Dave Love <fx@gnu.org>
parents:
diff changeset
14752 @vindex smiley-nosey-regexp-alist
Dave Love <fx@gnu.org>
parents:
diff changeset
14753 @vindex smiley-deformed-regexp-alist
Dave Love <fx@gnu.org>
parents:
diff changeset
14754 Smiley supplies two example conversion alists by default:
Dave Love <fx@gnu.org>
parents:
diff changeset
14755 @code{smiley-deformed-regexp-alist} (which matches @samp{:)}, @samp{:(}
Dave Love <fx@gnu.org>
parents:
diff changeset
14756 and so on), and @code{smiley-nosey-regexp-alist} (which matches
Dave Love <fx@gnu.org>
parents:
diff changeset
14757 @samp{:-)}, @samp{:-(} and so on).
Dave Love <fx@gnu.org>
parents:
diff changeset
14758
Dave Love <fx@gnu.org>
parents:
diff changeset
14759 The alist used is specified by the @code{smiley-regexp-alist} variable,
Dave Love <fx@gnu.org>
parents:
diff changeset
14760 which defaults to the value of @code{smiley-deformed-regexp-alist}.
Dave Love <fx@gnu.org>
parents:
diff changeset
14761
Dave Love <fx@gnu.org>
parents:
diff changeset
14762 The first item in each element is the regexp to be matched; the second
Dave Love <fx@gnu.org>
parents:
diff changeset
14763 element is the regexp match group that is to be replaced by the picture;
Dave Love <fx@gnu.org>
parents:
diff changeset
14764 and the third element is the name of the file to be displayed.
Dave Love <fx@gnu.org>
parents:
diff changeset
14765
Dave Love <fx@gnu.org>
parents:
diff changeset
14766 The following variables customize where Smiley will look for these
Dave Love <fx@gnu.org>
parents:
diff changeset
14767 files, as well as the color to be used and stuff:
Dave Love <fx@gnu.org>
parents:
diff changeset
14768
Dave Love <fx@gnu.org>
parents:
diff changeset
14769 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
14770
Dave Love <fx@gnu.org>
parents:
diff changeset
14771 @item smiley-data-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
14772 @vindex smiley-data-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
14773 Where Smiley will look for smiley faces files.
Dave Love <fx@gnu.org>
parents:
diff changeset
14774
Dave Love <fx@gnu.org>
parents:
diff changeset
14775 @item smiley-flesh-color
Dave Love <fx@gnu.org>
parents:
diff changeset
14776 @vindex smiley-flesh-color
Dave Love <fx@gnu.org>
parents:
diff changeset
14777 Skin color. The default is @samp{yellow}, which is really racist.
Dave Love <fx@gnu.org>
parents:
diff changeset
14778
Dave Love <fx@gnu.org>
parents:
diff changeset
14779 @item smiley-features-color
Dave Love <fx@gnu.org>
parents:
diff changeset
14780 @vindex smiley-features-color
Dave Love <fx@gnu.org>
parents:
diff changeset
14781 Color of the features of the face. The default is @samp{black}.
Dave Love <fx@gnu.org>
parents:
diff changeset
14782
Dave Love <fx@gnu.org>
parents:
diff changeset
14783 @item smiley-tongue-color
Dave Love <fx@gnu.org>
parents:
diff changeset
14784 @vindex smiley-tongue-color
Dave Love <fx@gnu.org>
parents:
diff changeset
14785 Color of the tongue. The default is @samp{red}.
Dave Love <fx@gnu.org>
parents:
diff changeset
14786
Dave Love <fx@gnu.org>
parents:
diff changeset
14787 @item smiley-circle-color
Dave Love <fx@gnu.org>
parents:
diff changeset
14788 @vindex smiley-circle-color
Dave Love <fx@gnu.org>
parents:
diff changeset
14789 Color of the circle around the face. The default is @samp{black}.
Dave Love <fx@gnu.org>
parents:
diff changeset
14790
Dave Love <fx@gnu.org>
parents:
diff changeset
14791 @item smiley-mouse-face
Dave Love <fx@gnu.org>
parents:
diff changeset
14792 @vindex smiley-mouse-face
Dave Love <fx@gnu.org>
parents:
diff changeset
14793 Face used for mouse highlighting over the smiley face.
Dave Love <fx@gnu.org>
parents:
diff changeset
14794
Dave Love <fx@gnu.org>
parents:
diff changeset
14795 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
14796
Dave Love <fx@gnu.org>
parents:
diff changeset
14797
Dave Love <fx@gnu.org>
parents:
diff changeset
14798 @node Toolbar
Dave Love <fx@gnu.org>
parents:
diff changeset
14799 @subsection Toolbar
Dave Love <fx@gnu.org>
parents:
diff changeset
14800
Dave Love <fx@gnu.org>
parents:
diff changeset
14801 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
14802
Dave Love <fx@gnu.org>
parents:
diff changeset
14803 @item gnus-use-toolbar
Dave Love <fx@gnu.org>
parents:
diff changeset
14804 @vindex gnus-use-toolbar
Dave Love <fx@gnu.org>
parents:
diff changeset
14805 If @code{nil}, don't display toolbars. If non-@code{nil}, it should be
Dave Love <fx@gnu.org>
parents:
diff changeset
14806 one of @code{default-toolbar}, @code{top-toolbar}, @code{bottom-toolbar},
Dave Love <fx@gnu.org>
parents:
diff changeset
14807 @code{right-toolbar}, or @code{left-toolbar}.
Dave Love <fx@gnu.org>
parents:
diff changeset
14808
Dave Love <fx@gnu.org>
parents:
diff changeset
14809 @item gnus-group-toolbar
Dave Love <fx@gnu.org>
parents:
diff changeset
14810 @vindex gnus-group-toolbar
Dave Love <fx@gnu.org>
parents:
diff changeset
14811 The toolbar in the group buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
14812
Dave Love <fx@gnu.org>
parents:
diff changeset
14813 @item gnus-summary-toolbar
Dave Love <fx@gnu.org>
parents:
diff changeset
14814 @vindex gnus-summary-toolbar
Dave Love <fx@gnu.org>
parents:
diff changeset
14815 The toolbar in the summary buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
14816
Dave Love <fx@gnu.org>
parents:
diff changeset
14817 @item gnus-summary-mail-toolbar
Dave Love <fx@gnu.org>
parents:
diff changeset
14818 @vindex gnus-summary-mail-toolbar
Dave Love <fx@gnu.org>
parents:
diff changeset
14819 The toolbar in the summary buffer of mail groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
14820
Dave Love <fx@gnu.org>
parents:
diff changeset
14821 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
14822
Dave Love <fx@gnu.org>
parents:
diff changeset
14823
Dave Love <fx@gnu.org>
parents:
diff changeset
14824 @node XVarious
Dave Love <fx@gnu.org>
parents:
diff changeset
14825 @subsection Various XEmacs Variables
Dave Love <fx@gnu.org>
parents:
diff changeset
14826
Dave Love <fx@gnu.org>
parents:
diff changeset
14827 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
14828 @item gnus-xmas-glyph-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
14829 @vindex gnus-xmas-glyph-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
14830 This is where Gnus will look for pictures. Gnus will normally
Dave Love <fx@gnu.org>
parents:
diff changeset
14831 auto-detect this directory, but you may set it manually if you have an
Dave Love <fx@gnu.org>
parents:
diff changeset
14832 unusual directory structure.
Dave Love <fx@gnu.org>
parents:
diff changeset
14833
Dave Love <fx@gnu.org>
parents:
diff changeset
14834 @item gnus-xmas-logo-color-alist
Dave Love <fx@gnu.org>
parents:
diff changeset
14835 @vindex gnus-xmas-logo-color-alist
Dave Love <fx@gnu.org>
parents:
diff changeset
14836 This is an alist where the key is a type symbol and the values are the
Dave Love <fx@gnu.org>
parents:
diff changeset
14837 foreground and background color of the splash page glyph.
Dave Love <fx@gnu.org>
parents:
diff changeset
14838
Dave Love <fx@gnu.org>
parents:
diff changeset
14839 @item gnus-xmas-logo-color-style
Dave Love <fx@gnu.org>
parents:
diff changeset
14840 @vindex gnus-xmas-logo-color-style
Dave Love <fx@gnu.org>
parents:
diff changeset
14841 This is the key used to look up the color in the alist described above.
Dave Love <fx@gnu.org>
parents:
diff changeset
14842 Valid values include @code{flame}, @code{pine}, @code{moss},
Dave Love <fx@gnu.org>
parents:
diff changeset
14843 @code{irish}, @code{sky}, @code{tin}, @code{velvet}, @code{grape},
Dave Love <fx@gnu.org>
parents:
diff changeset
14844 @code{labia}, @code{berry}, @code{neutral}, and @code{september}.
Dave Love <fx@gnu.org>
parents:
diff changeset
14845
Dave Love <fx@gnu.org>
parents:
diff changeset
14846 @item gnus-xmas-modeline-glyph
Dave Love <fx@gnu.org>
parents:
diff changeset
14847 @vindex gnus-xmas-modeline-glyph
Dave Love <fx@gnu.org>
parents:
diff changeset
14848 A glyph displayed in all Gnus mode lines. It is a tiny gnu head by
Dave Love <fx@gnu.org>
parents:
diff changeset
14849 default.
Dave Love <fx@gnu.org>
parents:
diff changeset
14850
Dave Love <fx@gnu.org>
parents:
diff changeset
14851 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
14852
Dave Love <fx@gnu.org>
parents:
diff changeset
14853
Dave Love <fx@gnu.org>
parents:
diff changeset
14854
Dave Love <fx@gnu.org>
parents:
diff changeset
14855
Dave Love <fx@gnu.org>
parents:
diff changeset
14856 @node Fuzzy Matching
Dave Love <fx@gnu.org>
parents:
diff changeset
14857 @section Fuzzy Matching
Dave Love <fx@gnu.org>
parents:
diff changeset
14858 @cindex fuzzy matching
Dave Love <fx@gnu.org>
parents:
diff changeset
14859
Dave Love <fx@gnu.org>
parents:
diff changeset
14860 Gnus provides @dfn{fuzzy matching} of @code{Subject} lines when doing
Dave Love <fx@gnu.org>
parents:
diff changeset
14861 things like scoring, thread gathering and thread comparison.
Dave Love <fx@gnu.org>
parents:
diff changeset
14862
Dave Love <fx@gnu.org>
parents:
diff changeset
14863 As opposed to regular expression matching, fuzzy matching is very fuzzy.
Dave Love <fx@gnu.org>
parents:
diff changeset
14864 It's so fuzzy that there's not even a definition of what @dfn{fuzziness}
Dave Love <fx@gnu.org>
parents:
diff changeset
14865 means, and the implementation has changed over time.
Dave Love <fx@gnu.org>
parents:
diff changeset
14866
Dave Love <fx@gnu.org>
parents:
diff changeset
14867 Basically, it tries to remove all noise from lines before comparing.
Dave Love <fx@gnu.org>
parents:
diff changeset
14868 @samp{Re: }, parenthetical remarks, white space, and so on, are filtered
Dave Love <fx@gnu.org>
parents:
diff changeset
14869 out of the strings before comparing the results. This often leads to
Dave Love <fx@gnu.org>
parents:
diff changeset
14870 adequate results---even when faced with strings generated by text
Dave Love <fx@gnu.org>
parents:
diff changeset
14871 manglers masquerading as newsreaders.
Dave Love <fx@gnu.org>
parents:
diff changeset
14872
Dave Love <fx@gnu.org>
parents:
diff changeset
14873
Dave Love <fx@gnu.org>
parents:
diff changeset
14874 @node Thwarting Email Spam
Dave Love <fx@gnu.org>
parents:
diff changeset
14875 @section Thwarting Email Spam
Dave Love <fx@gnu.org>
parents:
diff changeset
14876 @cindex email spam
Dave Love <fx@gnu.org>
parents:
diff changeset
14877 @cindex spam
Dave Love <fx@gnu.org>
parents:
diff changeset
14878 @cindex UCE
Dave Love <fx@gnu.org>
parents:
diff changeset
14879 @cindex unsolicited commercial email
Dave Love <fx@gnu.org>
parents:
diff changeset
14880
Dave Love <fx@gnu.org>
parents:
diff changeset
14881 In these last days of the Usenet, commercial vultures are hanging about
Dave Love <fx@gnu.org>
parents:
diff changeset
14882 and grepping through news like crazy to find email addresses they can
Dave Love <fx@gnu.org>
parents:
diff changeset
14883 foist off their scams and products to. As a reaction to this, many
Dave Love <fx@gnu.org>
parents:
diff changeset
14884 people have started putting nonsense addresses into their @code{From}
Dave Love <fx@gnu.org>
parents:
diff changeset
14885 lines. I think this is counterproductive---it makes it difficult for
Dave Love <fx@gnu.org>
parents:
diff changeset
14886 people to send you legitimate mail in response to things you write, as
Dave Love <fx@gnu.org>
parents:
diff changeset
14887 well as making it difficult to see who wrote what. This rewriting may
Dave Love <fx@gnu.org>
parents:
diff changeset
14888 perhaps be a bigger menace than the unsolicited commercial email itself
Dave Love <fx@gnu.org>
parents:
diff changeset
14889 in the end.
Dave Love <fx@gnu.org>
parents:
diff changeset
14890
Dave Love <fx@gnu.org>
parents:
diff changeset
14891 The biggest problem I have with email spam is that it comes in under
Dave Love <fx@gnu.org>
parents:
diff changeset
14892 false pretenses. I press @kbd{g} and Gnus merrily informs me that I
Dave Love <fx@gnu.org>
parents:
diff changeset
14893 have 10 new emails. I say ``Golly gee! Happy is me!'' and select the
Dave Love <fx@gnu.org>
parents:
diff changeset
14894 mail group, only to find two pyramid schemes, seven advertisements
Dave Love <fx@gnu.org>
parents:
diff changeset
14895 (``New! Miracle tonic for growing full, lustrous hair on your toes!'')
Dave Love <fx@gnu.org>
parents:
diff changeset
14896 and one mail asking me to repent and find some god.
Dave Love <fx@gnu.org>
parents:
diff changeset
14897
Dave Love <fx@gnu.org>
parents:
diff changeset
14898 This is annoying.
Dave Love <fx@gnu.org>
parents:
diff changeset
14899
Dave Love <fx@gnu.org>
parents:
diff changeset
14900 The way to deal with this is having Gnus split out all spam into a
Dave Love <fx@gnu.org>
parents:
diff changeset
14901 @samp{spam} mail group (@pxref{Splitting Mail}).
Dave Love <fx@gnu.org>
parents:
diff changeset
14902
Dave Love <fx@gnu.org>
parents:
diff changeset
14903 First, pick one (1) valid mail address that you can be reached at, and
Dave Love <fx@gnu.org>
parents:
diff changeset
14904 put it in your @code{From} header of all your news articles. (I've
Dave Love <fx@gnu.org>
parents:
diff changeset
14905 chosen @samp{larsi@@trym.ifi.uio.no}, but for many addresses on the form
Dave Love <fx@gnu.org>
parents:
diff changeset
14906 @samp{larsi+usenet@@ifi.uio.no} will be a better choice. Ask your
Dave Love <fx@gnu.org>
parents:
diff changeset
14907 sysadm whether your sendmail installation accepts keywords in the local
Dave Love <fx@gnu.org>
parents:
diff changeset
14908 part of the mail address.)
Dave Love <fx@gnu.org>
parents:
diff changeset
14909
Dave Love <fx@gnu.org>
parents:
diff changeset
14910 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
14911 (setq message-default-news-headers
Dave Love <fx@gnu.org>
parents:
diff changeset
14912 "From: Lars Magne Ingebrigtsen <larsi@@trym.ifi.uio.no>\n")
Dave Love <fx@gnu.org>
parents:
diff changeset
14913 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
14914
Dave Love <fx@gnu.org>
parents:
diff changeset
14915 Then put the following split rule in @code{nnmail-split-fancy}
Dave Love <fx@gnu.org>
parents:
diff changeset
14916 (@pxref{Fancy Mail Splitting}):
Dave Love <fx@gnu.org>
parents:
diff changeset
14917
Dave Love <fx@gnu.org>
parents:
diff changeset
14918 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
14919 (
Dave Love <fx@gnu.org>
parents:
diff changeset
14920 ...
Dave Love <fx@gnu.org>
parents:
diff changeset
14921 (to "larsi@@trym.ifi.uio.no"
Dave Love <fx@gnu.org>
parents:
diff changeset
14922 (| ("subject" "re:.*" "misc")
Dave Love <fx@gnu.org>
parents:
diff changeset
14923 ("references" ".*@@.*" "misc")
Dave Love <fx@gnu.org>
parents:
diff changeset
14924 "spam"))
Dave Love <fx@gnu.org>
parents:
diff changeset
14925 ...
Dave Love <fx@gnu.org>
parents:
diff changeset
14926 )
Dave Love <fx@gnu.org>
parents:
diff changeset
14927 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
14928
Dave Love <fx@gnu.org>
parents:
diff changeset
14929 This says that all mail to this address is suspect, but if it has a
Dave Love <fx@gnu.org>
parents:
diff changeset
14930 @code{Subject} that starts with a @samp{Re:} or has a @code{References}
Dave Love <fx@gnu.org>
parents:
diff changeset
14931 header, it's probably ok. All the rest goes to the @samp{spam} group.
Dave Love <fx@gnu.org>
parents:
diff changeset
14932 (This idea probably comes from Tim Pierce.)
Dave Love <fx@gnu.org>
parents:
diff changeset
14933
Dave Love <fx@gnu.org>
parents:
diff changeset
14934 In addition, many mail spammers talk directly to your @code{smtp} server
Dave Love <fx@gnu.org>
parents:
diff changeset
14935 and do not include your email address explicitly in the @code{To}
Dave Love <fx@gnu.org>
parents:
diff changeset
14936 header. Why they do this is unknown---perhaps it's to thwart this
Dave Love <fx@gnu.org>
parents:
diff changeset
14937 thwarting scheme? In any case, this is trivial to deal with---you just
Dave Love <fx@gnu.org>
parents:
diff changeset
14938 put anything not addressed to you in the @samp{spam} group by ending
Dave Love <fx@gnu.org>
parents:
diff changeset
14939 your fancy split rule in this way:
Dave Love <fx@gnu.org>
parents:
diff changeset
14940
Dave Love <fx@gnu.org>
parents:
diff changeset
14941 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
14942 (
Dave Love <fx@gnu.org>
parents:
diff changeset
14943 ...
Dave Love <fx@gnu.org>
parents:
diff changeset
14944 (to "larsi" "misc")
Dave Love <fx@gnu.org>
parents:
diff changeset
14945 "spam")
Dave Love <fx@gnu.org>
parents:
diff changeset
14946 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
14947
Dave Love <fx@gnu.org>
parents:
diff changeset
14948 In my experience, this will sort virtually everything into the right
Dave Love <fx@gnu.org>
parents:
diff changeset
14949 group. You still have to check the @samp{spam} group from time to time to
Dave Love <fx@gnu.org>
parents:
diff changeset
14950 check for legitimate mail, though. If you feel like being a good net
Dave Love <fx@gnu.org>
parents:
diff changeset
14951 citizen, you can even send off complaints to the proper authorities on
Dave Love <fx@gnu.org>
parents:
diff changeset
14952 each unsolicited commercial email---at your leisure.
Dave Love <fx@gnu.org>
parents:
diff changeset
14953
Dave Love <fx@gnu.org>
parents:
diff changeset
14954 If you are also a lazy net citizen, you will probably prefer complaining
Dave Love <fx@gnu.org>
parents:
diff changeset
14955 automatically with the @file{gnus-junk.el} package, available FOR FREE
Dave Love <fx@gnu.org>
parents:
diff changeset
14956 at @* @file{<URL:http://stud2.tuwien.ac.at/~e9426626/gnus-junk.html>}.
Dave Love <fx@gnu.org>
parents:
diff changeset
14957 Since most e-mail spam is sent automatically, this may reconcile the
Dave Love <fx@gnu.org>
parents:
diff changeset
14958 cosmic balance somewhat.
Dave Love <fx@gnu.org>
parents:
diff changeset
14959
Dave Love <fx@gnu.org>
parents:
diff changeset
14960 This works for me. It allows people an easy way to contact me (they can
Dave Love <fx@gnu.org>
parents:
diff changeset
14961 just press @kbd{r} in the usual way), and I'm not bothered at all with
Dave Love <fx@gnu.org>
parents:
diff changeset
14962 spam. It's a win-win situation. Forging @code{From} headers to point
Dave Love <fx@gnu.org>
parents:
diff changeset
14963 to non-existent domains is yucky, in my opinion.
Dave Love <fx@gnu.org>
parents:
diff changeset
14964
Dave Love <fx@gnu.org>
parents:
diff changeset
14965
Dave Love <fx@gnu.org>
parents:
diff changeset
14966 @node Various Various
Dave Love <fx@gnu.org>
parents:
diff changeset
14967 @section Various Various
Dave Love <fx@gnu.org>
parents:
diff changeset
14968 @cindex mode lines
Dave Love <fx@gnu.org>
parents:
diff changeset
14969 @cindex highlights
Dave Love <fx@gnu.org>
parents:
diff changeset
14970
Dave Love <fx@gnu.org>
parents:
diff changeset
14971 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
14972
Dave Love <fx@gnu.org>
parents:
diff changeset
14973 @item gnus-home-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
14974 All Gnus path variables will be initialized from this variable, which
Dave Love <fx@gnu.org>
parents:
diff changeset
14975 defaults to @file{~/}.
Dave Love <fx@gnu.org>
parents:
diff changeset
14976
Dave Love <fx@gnu.org>
parents:
diff changeset
14977 @item gnus-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
14978 @vindex gnus-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
14979 Most Gnus storage path variables will be initialized from this variable,
Dave Love <fx@gnu.org>
parents:
diff changeset
14980 which defaults to the @samp{SAVEDIR} environment variable, or
Dave Love <fx@gnu.org>
parents:
diff changeset
14981 @file{~/News/} if that variable isn't set.
Dave Love <fx@gnu.org>
parents:
diff changeset
14982
Dave Love <fx@gnu.org>
parents:
diff changeset
14983 Note that Gnus is mostly loaded when the @file{.gnus.el} file is read.
Dave Love <fx@gnu.org>
parents:
diff changeset
14984 This means that other directory variables that are initialized from this
Dave Love <fx@gnu.org>
parents:
diff changeset
14985 variable won't be set properly if you set this variable in
Dave Love <fx@gnu.org>
parents:
diff changeset
14986 @file{.gnus.el}. Set this variable in @file{.emacs} instead.
Dave Love <fx@gnu.org>
parents:
diff changeset
14987
Dave Love <fx@gnu.org>
parents:
diff changeset
14988 @item gnus-default-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
14989 @vindex gnus-default-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
14990 Not related to the above variable at all---this variable says what the
Dave Love <fx@gnu.org>
parents:
diff changeset
14991 default directory of all Gnus buffers should be. If you issue commands
Dave Love <fx@gnu.org>
parents:
diff changeset
14992 like @kbd{C-x C-f}, the prompt you'll get starts in the current buffer's
Dave Love <fx@gnu.org>
parents:
diff changeset
14993 default directory. If this variable is @code{nil} (which is the
Dave Love <fx@gnu.org>
parents:
diff changeset
14994 default), the default directory will be the default directory of the
Dave Love <fx@gnu.org>
parents:
diff changeset
14995 buffer you were in when you started Gnus.
Dave Love <fx@gnu.org>
parents:
diff changeset
14996
Dave Love <fx@gnu.org>
parents:
diff changeset
14997 @item gnus-verbose
Dave Love <fx@gnu.org>
parents:
diff changeset
14998 @vindex gnus-verbose
Dave Love <fx@gnu.org>
parents:
diff changeset
14999 This variable is an integer between zero and ten. The higher the value,
Dave Love <fx@gnu.org>
parents:
diff changeset
15000 the more messages will be displayed. If this variable is zero, Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
15001 will never flash any messages, if it is seven (which is the default),
Dave Love <fx@gnu.org>
parents:
diff changeset
15002 most important messages will be shown, and if it is ten, Gnus won't ever
Dave Love <fx@gnu.org>
parents:
diff changeset
15003 shut up, but will flash so many messages it will make your head swim.
Dave Love <fx@gnu.org>
parents:
diff changeset
15004
Dave Love <fx@gnu.org>
parents:
diff changeset
15005 @item gnus-verbose-backends
Dave Love <fx@gnu.org>
parents:
diff changeset
15006 @vindex gnus-verbose-backends
Dave Love <fx@gnu.org>
parents:
diff changeset
15007 This variable works the same way as @code{gnus-verbose}, but it applies
Dave Love <fx@gnu.org>
parents:
diff changeset
15008 to the Gnus backends instead of Gnus proper.
Dave Love <fx@gnu.org>
parents:
diff changeset
15009
Dave Love <fx@gnu.org>
parents:
diff changeset
15010 @item nnheader-max-head-length
Dave Love <fx@gnu.org>
parents:
diff changeset
15011 @vindex nnheader-max-head-length
Dave Love <fx@gnu.org>
parents:
diff changeset
15012 When the backends read straight heads of articles, they all try to read
Dave Love <fx@gnu.org>
parents:
diff changeset
15013 as little as possible. This variable (default 4096) specifies
Dave Love <fx@gnu.org>
parents:
diff changeset
15014 the absolute max length the backends will try to read before giving up
Dave Love <fx@gnu.org>
parents:
diff changeset
15015 on finding a separator line between the head and the body. If this
Dave Love <fx@gnu.org>
parents:
diff changeset
15016 variable is @code{nil}, there is no upper read bound. If it is
Dave Love <fx@gnu.org>
parents:
diff changeset
15017 @code{t}, the backends won't try to read the articles piece by piece,
Dave Love <fx@gnu.org>
parents:
diff changeset
15018 but read the entire articles. This makes sense with some versions of
Dave Love <fx@gnu.org>
parents:
diff changeset
15019 @code{ange-ftp} or @code{efs}.
Dave Love <fx@gnu.org>
parents:
diff changeset
15020
Dave Love <fx@gnu.org>
parents:
diff changeset
15021 @item nnheader-head-chop-length
Dave Love <fx@gnu.org>
parents:
diff changeset
15022 @vindex nnheader-head-chop-length
Dave Love <fx@gnu.org>
parents:
diff changeset
15023 This variable (default 2048) says how big a piece of each article to
Dave Love <fx@gnu.org>
parents:
diff changeset
15024 read when doing the operation described above.
Dave Love <fx@gnu.org>
parents:
diff changeset
15025
Dave Love <fx@gnu.org>
parents:
diff changeset
15026 @item nnheader-file-name-translation-alist
Dave Love <fx@gnu.org>
parents:
diff changeset
15027 @vindex nnheader-file-name-translation-alist
Dave Love <fx@gnu.org>
parents:
diff changeset
15028 @cindex file names
Dave Love <fx@gnu.org>
parents:
diff changeset
15029 @cindex invalid characters in file names
Dave Love <fx@gnu.org>
parents:
diff changeset
15030 @cindex characters in file names
Dave Love <fx@gnu.org>
parents:
diff changeset
15031 This is an alist that says how to translate characters in file names.
Dave Love <fx@gnu.org>
parents:
diff changeset
15032 For instance, if @samp{:} is invalid as a file character in file names
Dave Love <fx@gnu.org>
parents:
diff changeset
15033 on your system (you OS/2 user you), you could say something like:
Dave Love <fx@gnu.org>
parents:
diff changeset
15034
Dave Love <fx@gnu.org>
parents:
diff changeset
15035 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
15036 (setq nnheader-file-name-translation-alist
Dave Love <fx@gnu.org>
parents:
diff changeset
15037 '((?: . ?_)))
Dave Love <fx@gnu.org>
parents:
diff changeset
15038 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
15039
Dave Love <fx@gnu.org>
parents:
diff changeset
15040 In fact, this is the default value for this variable on OS/2 and MS
Dave Love <fx@gnu.org>
parents:
diff changeset
15041 Windows (phooey) systems.
Dave Love <fx@gnu.org>
parents:
diff changeset
15042
Dave Love <fx@gnu.org>
parents:
diff changeset
15043 @item gnus-hidden-properties
Dave Love <fx@gnu.org>
parents:
diff changeset
15044 @vindex gnus-hidden-properties
Dave Love <fx@gnu.org>
parents:
diff changeset
15045 This is a list of properties to use to hide ``invisible'' text. It is
Dave Love <fx@gnu.org>
parents:
diff changeset
15046 @code{(invisible t intangible t)} by default on most systems, which
Dave Love <fx@gnu.org>
parents:
diff changeset
15047 makes invisible text invisible and intangible.
Dave Love <fx@gnu.org>
parents:
diff changeset
15048
Dave Love <fx@gnu.org>
parents:
diff changeset
15049 @item gnus-parse-headers-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
15050 @vindex gnus-parse-headers-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
15051 A hook called before parsing headers. It can be used, for instance, to
Dave Love <fx@gnu.org>
parents:
diff changeset
15052 gather statistics on the headers fetched, or perhaps you'd like to prune
Dave Love <fx@gnu.org>
parents:
diff changeset
15053 some headers. I don't see why you'd want that, though.
Dave Love <fx@gnu.org>
parents:
diff changeset
15054
Dave Love <fx@gnu.org>
parents:
diff changeset
15055 @item gnus-shell-command-separator
Dave Love <fx@gnu.org>
parents:
diff changeset
15056 @vindex gnus-shell-command-separator
Dave Love <fx@gnu.org>
parents:
diff changeset
15057 String used to separate two shell commands. The default is @samp{;}.
Dave Love <fx@gnu.org>
parents:
diff changeset
15058
Dave Love <fx@gnu.org>
parents:
diff changeset
15059
Dave Love <fx@gnu.org>
parents:
diff changeset
15060 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
15061
Dave Love <fx@gnu.org>
parents:
diff changeset
15062
Dave Love <fx@gnu.org>
parents:
diff changeset
15063 @node The End
Dave Love <fx@gnu.org>
parents:
diff changeset
15064 @chapter The End
Dave Love <fx@gnu.org>
parents:
diff changeset
15065
Dave Love <fx@gnu.org>
parents:
diff changeset
15066 Well, that's the manual---you can get on with your life now. Keep in
Dave Love <fx@gnu.org>
parents:
diff changeset
15067 touch. Say hello to your cats from me.
Dave Love <fx@gnu.org>
parents:
diff changeset
15068
Dave Love <fx@gnu.org>
parents:
diff changeset
15069 My @strong{ghod}---I just can't stand goodbyes. Sniffle.
Dave Love <fx@gnu.org>
parents:
diff changeset
15070
Dave Love <fx@gnu.org>
parents:
diff changeset
15071 Ol' Charles Reznikoff said it pretty well, so I leave the floor to him:
Dave Love <fx@gnu.org>
parents:
diff changeset
15072
Dave Love <fx@gnu.org>
parents:
diff changeset
15073 @quotation
Dave Love <fx@gnu.org>
parents:
diff changeset
15074 @strong{Te Deum}
Dave Love <fx@gnu.org>
parents:
diff changeset
15075
Dave Love <fx@gnu.org>
parents:
diff changeset
15076 @sp 1
Dave Love <fx@gnu.org>
parents:
diff changeset
15077 Not because of victories @*
Dave Love <fx@gnu.org>
parents:
diff changeset
15078 I sing,@*
Dave Love <fx@gnu.org>
parents:
diff changeset
15079 having none,@*
Dave Love <fx@gnu.org>
parents:
diff changeset
15080 but for the common sunshine,@*
Dave Love <fx@gnu.org>
parents:
diff changeset
15081 the breeze,@*
Dave Love <fx@gnu.org>
parents:
diff changeset
15082 the largess of the spring.
Dave Love <fx@gnu.org>
parents:
diff changeset
15083
Dave Love <fx@gnu.org>
parents:
diff changeset
15084 @sp 1
Dave Love <fx@gnu.org>
parents:
diff changeset
15085 Not for victory@*
Dave Love <fx@gnu.org>
parents:
diff changeset
15086 but for the day's work done@*
Dave Love <fx@gnu.org>
parents:
diff changeset
15087 as well as I was able;@*
Dave Love <fx@gnu.org>
parents:
diff changeset
15088 not for a seat upon the dais@*
Dave Love <fx@gnu.org>
parents:
diff changeset
15089 but at the common table.@*
Dave Love <fx@gnu.org>
parents:
diff changeset
15090 @end quotation
Dave Love <fx@gnu.org>
parents:
diff changeset
15091
Dave Love <fx@gnu.org>
parents:
diff changeset
15092
Dave Love <fx@gnu.org>
parents:
diff changeset
15093 @node Appendices
Dave Love <fx@gnu.org>
parents:
diff changeset
15094 @chapter Appendices
Dave Love <fx@gnu.org>
parents:
diff changeset
15095
Dave Love <fx@gnu.org>
parents:
diff changeset
15096 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
15097 * History:: How Gnus got where it is today.
Dave Love <fx@gnu.org>
parents:
diff changeset
15098 * Terminology:: We use really difficult, like, words here.
Dave Love <fx@gnu.org>
parents:
diff changeset
15099 * Customization:: Tailoring Gnus to your needs.
Dave Love <fx@gnu.org>
parents:
diff changeset
15100 * Troubleshooting:: What you might try if things do not work.
Dave Love <fx@gnu.org>
parents:
diff changeset
15101 * A Programmers Guide to Gnus:: Rilly, rilly technical stuff.
Dave Love <fx@gnu.org>
parents:
diff changeset
15102 * Emacs for Heathens:: A short introduction to Emacsian terms.
Dave Love <fx@gnu.org>
parents:
diff changeset
15103 * Frequently Asked Questions:: A question-and-answer session.
Dave Love <fx@gnu.org>
parents:
diff changeset
15104 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
15105
Dave Love <fx@gnu.org>
parents:
diff changeset
15106
Dave Love <fx@gnu.org>
parents:
diff changeset
15107 @node History
Dave Love <fx@gnu.org>
parents:
diff changeset
15108 @section History
Dave Love <fx@gnu.org>
parents:
diff changeset
15109
Dave Love <fx@gnu.org>
parents:
diff changeset
15110 @cindex history
Dave Love <fx@gnu.org>
parents:
diff changeset
15111 @sc{gnus} was written by Masanobu @sc{Umeda}. When autumn crept up in
Dave Love <fx@gnu.org>
parents:
diff changeset
15112 '94, Lars Magne Ingebrigtsen grew bored and decided to rewrite Gnus.
Dave Love <fx@gnu.org>
parents:
diff changeset
15113
Dave Love <fx@gnu.org>
parents:
diff changeset
15114 If you want to investigate the person responsible for this outrage, you
Dave Love <fx@gnu.org>
parents:
diff changeset
15115 can point your (feh!) web browser to
Dave Love <fx@gnu.org>
parents:
diff changeset
15116 @file{http://www.stud.ifi.uio.no/~larsi/}. This is also the primary
Dave Love <fx@gnu.org>
parents:
diff changeset
15117 distribution point for the new and spiffy versions of Gnus, and is known
Dave Love <fx@gnu.org>
parents:
diff changeset
15118 as The Site That Destroys Newsrcs And Drives People Mad.
Dave Love <fx@gnu.org>
parents:
diff changeset
15119
Dave Love <fx@gnu.org>
parents:
diff changeset
15120 During the first extended alpha period of development, the new Gnus was
Dave Love <fx@gnu.org>
parents:
diff changeset
15121 called ``(ding) Gnus''. @dfn{(ding)} is, of course, short for
Dave Love <fx@gnu.org>
parents:
diff changeset
15122 @dfn{ding is not Gnus}, which is a total and utter lie, but who cares?
Dave Love <fx@gnu.org>
parents:
diff changeset
15123 (Besides, the ``Gnus'' in this abbreviation should probably be
Dave Love <fx@gnu.org>
parents:
diff changeset
15124 pronounced ``news'' as @sc{Umeda} intended, which makes it a more
Dave Love <fx@gnu.org>
parents:
diff changeset
15125 appropriate name, don't you think?)
Dave Love <fx@gnu.org>
parents:
diff changeset
15126
Dave Love <fx@gnu.org>
parents:
diff changeset
15127 In any case, after spending all that energy on coming up with a new and
Dave Love <fx@gnu.org>
parents:
diff changeset
15128 spunky name, we decided that the name was @emph{too} spunky, so we
Dave Love <fx@gnu.org>
parents:
diff changeset
15129 renamed it back again to ``Gnus''. But in mixed case. ``Gnus'' vs.
Dave Love <fx@gnu.org>
parents:
diff changeset
15130 ``@sc{gnus}''. New vs. old.
Dave Love <fx@gnu.org>
parents:
diff changeset
15131
Dave Love <fx@gnu.org>
parents:
diff changeset
15132 The first ``proper'' release of Gnus 5 was done in November 1995 when it
Dave Love <fx@gnu.org>
parents:
diff changeset
15133 was included in the Emacs 19.30 distribution (132 (ding) Gnus releases
Dave Love <fx@gnu.org>
parents:
diff changeset
15134 plus 15 Gnus 5.0 releases).
Dave Love <fx@gnu.org>
parents:
diff changeset
15135
Dave Love <fx@gnu.org>
parents:
diff changeset
15136 In May 1996 the next Gnus generation (aka. ``September Gnus'' (after 99
Dave Love <fx@gnu.org>
parents:
diff changeset
15137 releases)) was released under the name ``Gnus 5.2'' (40 releases).
Dave Love <fx@gnu.org>
parents:
diff changeset
15138
Dave Love <fx@gnu.org>
parents:
diff changeset
15139 On July 28th 1996 work on Red Gnus was begun, and it was released on
Dave Love <fx@gnu.org>
parents:
diff changeset
15140 January 25th 1997 (after 84 releases) as ``Gnus 5.4'' (67 releases).
Dave Love <fx@gnu.org>
parents:
diff changeset
15141
Dave Love <fx@gnu.org>
parents:
diff changeset
15142 On September 13th 1997, Quassia Gnus was started and lasted 37
Dave Love <fx@gnu.org>
parents:
diff changeset
15143 releases. If was released as ``Gnus 5.6 on March 8th 1998.
Dave Love <fx@gnu.org>
parents:
diff changeset
15144
Dave Love <fx@gnu.org>
parents:
diff changeset
15145 If you happen upon a version of Gnus that has a prefixed name --
Dave Love <fx@gnu.org>
parents:
diff changeset
15146 ``(ding) Gnus'', ``September Gnus'', ``Red Gnus'', ``Quassia Gnus'' --
Dave Love <fx@gnu.org>
parents:
diff changeset
15147 don't panic. Don't let it know that you're frightened. Back away.
Dave Love <fx@gnu.org>
parents:
diff changeset
15148 Slowly. Whatever you do, don't run. Walk away, calmly, until you're
Dave Love <fx@gnu.org>
parents:
diff changeset
15149 out of its reach. Find a proper released version of Gnus and snuggle up
Dave Love <fx@gnu.org>
parents:
diff changeset
15150 to that instead.
Dave Love <fx@gnu.org>
parents:
diff changeset
15151
Dave Love <fx@gnu.org>
parents:
diff changeset
15152 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
15153 * Why?:: What's the point of Gnus?
Dave Love <fx@gnu.org>
parents:
diff changeset
15154 * Compatibility:: Just how compatible is Gnus with @sc{gnus}?
Dave Love <fx@gnu.org>
parents:
diff changeset
15155 * Conformity:: Gnus tries to conform to all standards.
Dave Love <fx@gnu.org>
parents:
diff changeset
15156 * Emacsen:: Gnus can be run on a few modern Emacsen.
Dave Love <fx@gnu.org>
parents:
diff changeset
15157 * Contributors:: Oodles of people.
Dave Love <fx@gnu.org>
parents:
diff changeset
15158 * New Features:: Pointers to some of the new stuff in Gnus.
Dave Love <fx@gnu.org>
parents:
diff changeset
15159 * Newest Features:: Features so new that they haven't been written yet.
Dave Love <fx@gnu.org>
parents:
diff changeset
15160 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
15161
Dave Love <fx@gnu.org>
parents:
diff changeset
15162
Dave Love <fx@gnu.org>
parents:
diff changeset
15163 @node Why?
Dave Love <fx@gnu.org>
parents:
diff changeset
15164 @subsection Why?
Dave Love <fx@gnu.org>
parents:
diff changeset
15165
Dave Love <fx@gnu.org>
parents:
diff changeset
15166 What's the point of Gnus?
Dave Love <fx@gnu.org>
parents:
diff changeset
15167
Dave Love <fx@gnu.org>
parents:
diff changeset
15168 I want to provide a ``rad'', ``happening'', ``way cool'' and ``hep''
Dave Love <fx@gnu.org>
parents:
diff changeset
15169 newsreader, that lets you do anything you can think of. That was my
Dave Love <fx@gnu.org>
parents:
diff changeset
15170 original motivation, but while working on Gnus, it has become clear to
Dave Love <fx@gnu.org>
parents:
diff changeset
15171 me that this generation of newsreaders really belong in the stone age.
Dave Love <fx@gnu.org>
parents:
diff changeset
15172 Newsreaders haven't developed much since the infancy of the net. If the
Dave Love <fx@gnu.org>
parents:
diff changeset
15173 volume continues to rise with the current rate of increase, all current
Dave Love <fx@gnu.org>
parents:
diff changeset
15174 newsreaders will be pretty much useless. How do you deal with
Dave Love <fx@gnu.org>
parents:
diff changeset
15175 newsgroups that have thousands of new articles each day? How do you
Dave Love <fx@gnu.org>
parents:
diff changeset
15176 keep track of millions of people who post?
Dave Love <fx@gnu.org>
parents:
diff changeset
15177
Dave Love <fx@gnu.org>
parents:
diff changeset
15178 Gnus offers no real solutions to these questions, but I would very much
Dave Love <fx@gnu.org>
parents:
diff changeset
15179 like to see Gnus being used as a testing ground for new methods of
Dave Love <fx@gnu.org>
parents:
diff changeset
15180 reading and fetching news. Expanding on @sc{Umeda}-san's wise decision
Dave Love <fx@gnu.org>
parents:
diff changeset
15181 to separate the newsreader from the backends, Gnus now offers a simple
Dave Love <fx@gnu.org>
parents:
diff changeset
15182 interface for anybody who wants to write new backends for fetching mail
Dave Love <fx@gnu.org>
parents:
diff changeset
15183 and news from different sources. I have added hooks for customizations
Dave Love <fx@gnu.org>
parents:
diff changeset
15184 everywhere I could imagine it being useful. By doing so, I'm inviting
Dave Love <fx@gnu.org>
parents:
diff changeset
15185 every one of you to explore and invent.
Dave Love <fx@gnu.org>
parents:
diff changeset
15186
Dave Love <fx@gnu.org>
parents:
diff changeset
15187 May Gnus never be complete. @kbd{C-u 100 M-x all-hail-emacs} and
Dave Love <fx@gnu.org>
parents:
diff changeset
15188 @kbd{C-u 100 M-x all-hail-xemacs}.
Dave Love <fx@gnu.org>
parents:
diff changeset
15189
Dave Love <fx@gnu.org>
parents:
diff changeset
15190
Dave Love <fx@gnu.org>
parents:
diff changeset
15191 @node Compatibility
Dave Love <fx@gnu.org>
parents:
diff changeset
15192 @subsection Compatibility
Dave Love <fx@gnu.org>
parents:
diff changeset
15193
Dave Love <fx@gnu.org>
parents:
diff changeset
15194 @cindex compatibility
Dave Love <fx@gnu.org>
parents:
diff changeset
15195 Gnus was designed to be fully compatible with @sc{gnus}. Almost all key
Dave Love <fx@gnu.org>
parents:
diff changeset
15196 bindings have been kept. More key bindings have been added, of course,
Dave Love <fx@gnu.org>
parents:
diff changeset
15197 but only in one or two obscure cases have old bindings been changed.
Dave Love <fx@gnu.org>
parents:
diff changeset
15198
Dave Love <fx@gnu.org>
parents:
diff changeset
15199 Our motto is:
Dave Love <fx@gnu.org>
parents:
diff changeset
15200 @quotation
Dave Love <fx@gnu.org>
parents:
diff changeset
15201 @cartouche
Dave Love <fx@gnu.org>
parents:
diff changeset
15202 @center In a cloud bones of steel.
Dave Love <fx@gnu.org>
parents:
diff changeset
15203 @end cartouche
Dave Love <fx@gnu.org>
parents:
diff changeset
15204 @end quotation
Dave Love <fx@gnu.org>
parents:
diff changeset
15205
Dave Love <fx@gnu.org>
parents:
diff changeset
15206 All commands have kept their names. Some internal functions have changed
Dave Love <fx@gnu.org>
parents:
diff changeset
15207 their names.
Dave Love <fx@gnu.org>
parents:
diff changeset
15208
Dave Love <fx@gnu.org>
parents:
diff changeset
15209 The @code{gnus-uu} package has changed drastically. @xref{Decoding
Dave Love <fx@gnu.org>
parents:
diff changeset
15210 Articles}.
Dave Love <fx@gnu.org>
parents:
diff changeset
15211
Dave Love <fx@gnu.org>
parents:
diff changeset
15212 One major compatibility question is the presence of several summary
Dave Love <fx@gnu.org>
parents:
diff changeset
15213 buffers. All variables relevant while reading a group are
Dave Love <fx@gnu.org>
parents:
diff changeset
15214 buffer-local to the summary buffer they belong in. Although many
Dave Love <fx@gnu.org>
parents:
diff changeset
15215 important variables have their values copied into their global
Dave Love <fx@gnu.org>
parents:
diff changeset
15216 counterparts whenever a command is executed in the summary buffer, this
Dave Love <fx@gnu.org>
parents:
diff changeset
15217 change might lead to incorrect values being used unless you are careful.
Dave Love <fx@gnu.org>
parents:
diff changeset
15218
Dave Love <fx@gnu.org>
parents:
diff changeset
15219 All code that relies on knowledge of @sc{gnus} internals will probably
Dave Love <fx@gnu.org>
parents:
diff changeset
15220 fail. To take two examples: Sorting @code{gnus-newsrc-alist} (or
Dave Love <fx@gnu.org>
parents:
diff changeset
15221 changing it in any way, as a matter of fact) is strictly verboten. Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
15222 maintains a hash table that points to the entries in this alist (which
Dave Love <fx@gnu.org>
parents:
diff changeset
15223 speeds up many functions), and changing the alist directly will lead to
Dave Love <fx@gnu.org>
parents:
diff changeset
15224 peculiar results.
Dave Love <fx@gnu.org>
parents:
diff changeset
15225
Dave Love <fx@gnu.org>
parents:
diff changeset
15226 @cindex hilit19
Dave Love <fx@gnu.org>
parents:
diff changeset
15227 @cindex highlighting
Dave Love <fx@gnu.org>
parents:
diff changeset
15228 Old hilit19 code does not work at all. In fact, you should probably
Dave Love <fx@gnu.org>
parents:
diff changeset
15229 remove all hilit code from all Gnus hooks
Dave Love <fx@gnu.org>
parents:
diff changeset
15230 (@code{gnus-group-prepare-hook} and @code{gnus-summary-prepare-hook}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15231 Gnus provides various integrated functions for highlighting. These are
Dave Love <fx@gnu.org>
parents:
diff changeset
15232 faster and more accurate. To make life easier for everybody, Gnus will
Dave Love <fx@gnu.org>
parents:
diff changeset
15233 by default remove all hilit calls from all hilit hooks. Uncleanliness!
Dave Love <fx@gnu.org>
parents:
diff changeset
15234 Away!
Dave Love <fx@gnu.org>
parents:
diff changeset
15235
Dave Love <fx@gnu.org>
parents:
diff changeset
15236 Packages like @code{expire-kill} will no longer work. As a matter of
Dave Love <fx@gnu.org>
parents:
diff changeset
15237 fact, you should probably remove all old @sc{gnus} packages (and other
Dave Love <fx@gnu.org>
parents:
diff changeset
15238 code) when you start using Gnus. More likely than not, Gnus already
Dave Love <fx@gnu.org>
parents:
diff changeset
15239 does what you have written code to make @sc{gnus} do. (Snicker.)
Dave Love <fx@gnu.org>
parents:
diff changeset
15240
Dave Love <fx@gnu.org>
parents:
diff changeset
15241 Even though old methods of doing things are still supported, only the
Dave Love <fx@gnu.org>
parents:
diff changeset
15242 new methods are documented in this manual. If you detect a new method of
Dave Love <fx@gnu.org>
parents:
diff changeset
15243 doing something while reading this manual, that does not mean you have
Dave Love <fx@gnu.org>
parents:
diff changeset
15244 to stop doing it the old way.
Dave Love <fx@gnu.org>
parents:
diff changeset
15245
Dave Love <fx@gnu.org>
parents:
diff changeset
15246 Gnus understands all @sc{gnus} startup files.
Dave Love <fx@gnu.org>
parents:
diff changeset
15247
Dave Love <fx@gnu.org>
parents:
diff changeset
15248 @kindex M-x gnus-bug
Dave Love <fx@gnu.org>
parents:
diff changeset
15249 @findex gnus-bug
Dave Love <fx@gnu.org>
parents:
diff changeset
15250 @cindex reporting bugs
Dave Love <fx@gnu.org>
parents:
diff changeset
15251 @cindex bugs
Dave Love <fx@gnu.org>
parents:
diff changeset
15252 Overall, a casual user who hasn't written much code that depends on
Dave Love <fx@gnu.org>
parents:
diff changeset
15253 @sc{gnus} internals should suffer no problems. If problems occur,
Dave Love <fx@gnu.org>
parents:
diff changeset
15254 please let me know by issuing that magic command @kbd{M-x gnus-bug}.
Dave Love <fx@gnu.org>
parents:
diff changeset
15255
Dave Love <fx@gnu.org>
parents:
diff changeset
15256 @vindex gnus-bug-create-help-buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
15257 If you are in the habit of sending bug reports @emph{very} often, you
Dave Love <fx@gnu.org>
parents:
diff changeset
15258 may find the helpful help buffer annoying after a while. If so, set
Dave Love <fx@gnu.org>
parents:
diff changeset
15259 @code{gnus-bug-create-help-buffer} to @code{nil} to avoid having it pop
Dave Love <fx@gnu.org>
parents:
diff changeset
15260 up at you.
Dave Love <fx@gnu.org>
parents:
diff changeset
15261
Dave Love <fx@gnu.org>
parents:
diff changeset
15262
Dave Love <fx@gnu.org>
parents:
diff changeset
15263 @node Conformity
Dave Love <fx@gnu.org>
parents:
diff changeset
15264 @subsection Conformity
Dave Love <fx@gnu.org>
parents:
diff changeset
15265
Dave Love <fx@gnu.org>
parents:
diff changeset
15266 No rebels without a clue here, ma'am. We conform to all standards known
Dave Love <fx@gnu.org>
parents:
diff changeset
15267 to (wo)man. Except for those standards and/or conventions we disagree
Dave Love <fx@gnu.org>
parents:
diff changeset
15268 with, of course.
Dave Love <fx@gnu.org>
parents:
diff changeset
15269
Dave Love <fx@gnu.org>
parents:
diff changeset
15270 @table @strong
Dave Love <fx@gnu.org>
parents:
diff changeset
15271
Dave Love <fx@gnu.org>
parents:
diff changeset
15272 @item RFC 822
Dave Love <fx@gnu.org>
parents:
diff changeset
15273 @cindex RFC 822
Dave Love <fx@gnu.org>
parents:
diff changeset
15274 There are no known breaches of this standard.
Dave Love <fx@gnu.org>
parents:
diff changeset
15275
Dave Love <fx@gnu.org>
parents:
diff changeset
15276 @item RFC 1036
Dave Love <fx@gnu.org>
parents:
diff changeset
15277 @cindex RFC 1036
Dave Love <fx@gnu.org>
parents:
diff changeset
15278 There are no known breaches of this standard, either.
Dave Love <fx@gnu.org>
parents:
diff changeset
15279
Dave Love <fx@gnu.org>
parents:
diff changeset
15280 @item Son-of-RFC 1036
Dave Love <fx@gnu.org>
parents:
diff changeset
15281 @cindex Son-of-RFC 1036
Dave Love <fx@gnu.org>
parents:
diff changeset
15282 We do have some breaches to this one.
Dave Love <fx@gnu.org>
parents:
diff changeset
15283
Dave Love <fx@gnu.org>
parents:
diff changeset
15284 @table @emph
Dave Love <fx@gnu.org>
parents:
diff changeset
15285
Dave Love <fx@gnu.org>
parents:
diff changeset
15286 @item MIME
Dave Love <fx@gnu.org>
parents:
diff changeset
15287 Gnus does no MIME handling, and this standard-to-be seems to think that
Dave Love <fx@gnu.org>
parents:
diff changeset
15288 MIME is the bees' knees, so we have major breakage here.
Dave Love <fx@gnu.org>
parents:
diff changeset
15289
Dave Love <fx@gnu.org>
parents:
diff changeset
15290 @item X-Newsreader
Dave Love <fx@gnu.org>
parents:
diff changeset
15291 This is considered to be a ``vanity header'', while I consider it to be
Dave Love <fx@gnu.org>
parents:
diff changeset
15292 consumer information. After seeing so many badly formatted articles
Dave Love <fx@gnu.org>
parents:
diff changeset
15293 coming from @code{tin} and @code{Netscape} I know not to use either of
Dave Love <fx@gnu.org>
parents:
diff changeset
15294 those for posting articles. I would not have known that if it wasn't
Dave Love <fx@gnu.org>
parents:
diff changeset
15295 for the @code{X-Newsreader} header.
Dave Love <fx@gnu.org>
parents:
diff changeset
15296 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
15297
Dave Love <fx@gnu.org>
parents:
diff changeset
15298 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
15299
Dave Love <fx@gnu.org>
parents:
diff changeset
15300 If you ever notice Gnus acting non-compliant with regards to the texts
Dave Love <fx@gnu.org>
parents:
diff changeset
15301 mentioned above, don't hesitate to drop a note to Gnus Towers and let us
Dave Love <fx@gnu.org>
parents:
diff changeset
15302 know.
Dave Love <fx@gnu.org>
parents:
diff changeset
15303
Dave Love <fx@gnu.org>
parents:
diff changeset
15304
Dave Love <fx@gnu.org>
parents:
diff changeset
15305 @node Emacsen
Dave Love <fx@gnu.org>
parents:
diff changeset
15306 @subsection Emacsen
Dave Love <fx@gnu.org>
parents:
diff changeset
15307 @cindex Emacsen
Dave Love <fx@gnu.org>
parents:
diff changeset
15308 @cindex XEmacs
Dave Love <fx@gnu.org>
parents:
diff changeset
15309 @cindex Mule
Dave Love <fx@gnu.org>
parents:
diff changeset
15310 @cindex Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
15311
Dave Love <fx@gnu.org>
parents:
diff changeset
15312 Gnus should work on :
Dave Love <fx@gnu.org>
parents:
diff changeset
15313
Dave Love <fx@gnu.org>
parents:
diff changeset
15314 @itemize @bullet
Dave Love <fx@gnu.org>
parents:
diff changeset
15315
Dave Love <fx@gnu.org>
parents:
diff changeset
15316 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15317 Emacs 19.32 and up.
Dave Love <fx@gnu.org>
parents:
diff changeset
15318
Dave Love <fx@gnu.org>
parents:
diff changeset
15319 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15320 XEmacs 19.14 and up.
Dave Love <fx@gnu.org>
parents:
diff changeset
15321
Dave Love <fx@gnu.org>
parents:
diff changeset
15322 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15323 Mule versions based on Emacs 19.32 and up.
Dave Love <fx@gnu.org>
parents:
diff changeset
15324
Dave Love <fx@gnu.org>
parents:
diff changeset
15325 @end itemize
Dave Love <fx@gnu.org>
parents:
diff changeset
15326
Dave Love <fx@gnu.org>
parents:
diff changeset
15327 Gnus will absolutely not work on any Emacsen older than that. Not
Dave Love <fx@gnu.org>
parents:
diff changeset
15328 reliably, at least.
Dave Love <fx@gnu.org>
parents:
diff changeset
15329
Dave Love <fx@gnu.org>
parents:
diff changeset
15330 There are some vague differences between Gnus on the various
Dave Love <fx@gnu.org>
parents:
diff changeset
15331 platforms---XEmacs features more graphics (a logo and a toolbar)---but
Dave Love <fx@gnu.org>
parents:
diff changeset
15332 other than that, things should look pretty much the same under all
Dave Love <fx@gnu.org>
parents:
diff changeset
15333 Emacsen.
Dave Love <fx@gnu.org>
parents:
diff changeset
15334
Dave Love <fx@gnu.org>
parents:
diff changeset
15335
Dave Love <fx@gnu.org>
parents:
diff changeset
15336 @node Contributors
Dave Love <fx@gnu.org>
parents:
diff changeset
15337 @subsection Contributors
Dave Love <fx@gnu.org>
parents:
diff changeset
15338 @cindex contributors
Dave Love <fx@gnu.org>
parents:
diff changeset
15339
Dave Love <fx@gnu.org>
parents:
diff changeset
15340 The new Gnus version couldn't have been done without the help of all the
Dave Love <fx@gnu.org>
parents:
diff changeset
15341 people on the (ding) mailing list. Every day for over a year I have
Dave Love <fx@gnu.org>
parents:
diff changeset
15342 gotten billions of nice bug reports from them, filling me with joy,
Dave Love <fx@gnu.org>
parents:
diff changeset
15343 every single one of them. Smooches. The people on the list have been
Dave Love <fx@gnu.org>
parents:
diff changeset
15344 tried beyond endurance, what with my ``oh, that's a neat idea <type
Dave Love <fx@gnu.org>
parents:
diff changeset
15345 type>, yup, I'll release it right away <ship off> no wait, that doesn't
Dave Love <fx@gnu.org>
parents:
diff changeset
15346 work at all <type type>, yup, I'll ship that one off right away <ship
Dave Love <fx@gnu.org>
parents:
diff changeset
15347 off> no, wait, that absolutely does not work'' policy for releases.
Dave Love <fx@gnu.org>
parents:
diff changeset
15348 Micro$oft---bah. Amateurs. I'm @emph{much} worse. (Or is that
Dave Love <fx@gnu.org>
parents:
diff changeset
15349 ``worser''? ``much worser''? ``worsest''?)
Dave Love <fx@gnu.org>
parents:
diff changeset
15350
Dave Love <fx@gnu.org>
parents:
diff changeset
15351 I would like to take this opportunity to thank the Academy for... oops,
Dave Love <fx@gnu.org>
parents:
diff changeset
15352 wrong show.
Dave Love <fx@gnu.org>
parents:
diff changeset
15353
Dave Love <fx@gnu.org>
parents:
diff changeset
15354 @itemize @bullet
Dave Love <fx@gnu.org>
parents:
diff changeset
15355
Dave Love <fx@gnu.org>
parents:
diff changeset
15356 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15357 Masanobu @sc{Umeda}---the writer of the original @sc{gnus}.
Dave Love <fx@gnu.org>
parents:
diff changeset
15358
Dave Love <fx@gnu.org>
parents:
diff changeset
15359 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15360 Per Abrahamsen---custom, scoring, highlighting and @sc{soup} code (as
Dave Love <fx@gnu.org>
parents:
diff changeset
15361 well as numerous other things).
Dave Love <fx@gnu.org>
parents:
diff changeset
15362
Dave Love <fx@gnu.org>
parents:
diff changeset
15363 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15364 Luis Fernandes---design and graphics.
Dave Love <fx@gnu.org>
parents:
diff changeset
15365
Dave Love <fx@gnu.org>
parents:
diff changeset
15366 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15367 Erik Naggum---help, ideas, support, code and stuff.
Dave Love <fx@gnu.org>
parents:
diff changeset
15368
Dave Love <fx@gnu.org>
parents:
diff changeset
15369 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15370 Wes Hardaker---@file{gnus-picon.el} and the manual section on
Dave Love <fx@gnu.org>
parents:
diff changeset
15371 @dfn{picons} (@pxref{Picons}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15372
Dave Love <fx@gnu.org>
parents:
diff changeset
15373 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15374 Kim-Minh Kaplan---further work on the picon code.
Dave Love <fx@gnu.org>
parents:
diff changeset
15375
Dave Love <fx@gnu.org>
parents:
diff changeset
15376 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15377 Brad Miller---@file{gnus-gl.el} and the GroupLens manual section
Dave Love <fx@gnu.org>
parents:
diff changeset
15378 (@pxref{GroupLens}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15379
Dave Love <fx@gnu.org>
parents:
diff changeset
15380 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15381 Sudish Joseph---innumerable bug fixes.
Dave Love <fx@gnu.org>
parents:
diff changeset
15382
Dave Love <fx@gnu.org>
parents:
diff changeset
15383 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15384 Ilja Weis---@file{gnus-topic.el}.
Dave Love <fx@gnu.org>
parents:
diff changeset
15385
Dave Love <fx@gnu.org>
parents:
diff changeset
15386 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15387 Steven L. Baur---lots and lots and lots of bugs detections and fixes.
Dave Love <fx@gnu.org>
parents:
diff changeset
15388
Dave Love <fx@gnu.org>
parents:
diff changeset
15389 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15390 Vladimir Alexiev---the refcard and reference booklets.
Dave Love <fx@gnu.org>
parents:
diff changeset
15391
Dave Love <fx@gnu.org>
parents:
diff changeset
15392 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15393 Felix Lee & Jamie Zawinski---I stole some pieces from the XGnus
Dave Love <fx@gnu.org>
parents:
diff changeset
15394 distribution by Felix Lee and JWZ.
Dave Love <fx@gnu.org>
parents:
diff changeset
15395
Dave Love <fx@gnu.org>
parents:
diff changeset
15396 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15397 Scott Byer---@file{nnfolder.el} enhancements & rewrite.
Dave Love <fx@gnu.org>
parents:
diff changeset
15398
Dave Love <fx@gnu.org>
parents:
diff changeset
15399 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15400 Peter Mutsaers---orphan article scoring code.
Dave Love <fx@gnu.org>
parents:
diff changeset
15401
Dave Love <fx@gnu.org>
parents:
diff changeset
15402 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15403 Ken Raeburn---POP mail support.
Dave Love <fx@gnu.org>
parents:
diff changeset
15404
Dave Love <fx@gnu.org>
parents:
diff changeset
15405 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15406 Hallvard B Furuseth---various bits and pieces, especially dealing with
Dave Love <fx@gnu.org>
parents:
diff changeset
15407 .newsrc files.
Dave Love <fx@gnu.org>
parents:
diff changeset
15408
Dave Love <fx@gnu.org>
parents:
diff changeset
15409 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15410 Brian Edmonds---@file{gnus-bbdb.el}.
Dave Love <fx@gnu.org>
parents:
diff changeset
15411
Dave Love <fx@gnu.org>
parents:
diff changeset
15412 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15413 David Moore---rewrite of @file{nnvirtual.el} and many other things.
Dave Love <fx@gnu.org>
parents:
diff changeset
15414
Dave Love <fx@gnu.org>
parents:
diff changeset
15415 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15416 Kevin Davidson---came up with the name @dfn{ding}, so blame him.
Dave Love <fx@gnu.org>
parents:
diff changeset
15417
Dave Love <fx@gnu.org>
parents:
diff changeset
15418 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15419 François Pinard---many, many interesting and thorough bug reports, as
Dave Love <fx@gnu.org>
parents:
diff changeset
15420 well as autoconf support.
Dave Love <fx@gnu.org>
parents:
diff changeset
15421
Dave Love <fx@gnu.org>
parents:
diff changeset
15422 @end itemize
Dave Love <fx@gnu.org>
parents:
diff changeset
15423
Dave Love <fx@gnu.org>
parents:
diff changeset
15424 This manual was proof-read by Adrian Aichner, with Ricardo Nassif, Mark
Dave Love <fx@gnu.org>
parents:
diff changeset
15425 Borges, and Jost Krieger proof-reading parts of the manual.
Dave Love <fx@gnu.org>
parents:
diff changeset
15426
Dave Love <fx@gnu.org>
parents:
diff changeset
15427 The following people have contributed many patches and suggestions:
Dave Love <fx@gnu.org>
parents:
diff changeset
15428
Dave Love <fx@gnu.org>
parents:
diff changeset
15429 Christopher Davis,
Dave Love <fx@gnu.org>
parents:
diff changeset
15430 Andrew Eskilsson,
Dave Love <fx@gnu.org>
parents:
diff changeset
15431 Kai Grossjohann,
Dave Love <fx@gnu.org>
parents:
diff changeset
15432 David Kågedal,
Dave Love <fx@gnu.org>
parents:
diff changeset
15433 Richard Pieri,
Dave Love <fx@gnu.org>
parents:
diff changeset
15434 Fabrice Popineau,
Dave Love <fx@gnu.org>
parents:
diff changeset
15435 Daniel Quinlan,
Dave Love <fx@gnu.org>
parents:
diff changeset
15436 Jason L. Tibbitts, III,
Dave Love <fx@gnu.org>
parents:
diff changeset
15437 and
Dave Love <fx@gnu.org>
parents:
diff changeset
15438 Jack Vinson.
Dave Love <fx@gnu.org>
parents:
diff changeset
15439
Dave Love <fx@gnu.org>
parents:
diff changeset
15440 Also thanks to the following for patches and stuff:
Dave Love <fx@gnu.org>
parents:
diff changeset
15441
Dave Love <fx@gnu.org>
parents:
diff changeset
15442 Jari Aalto,
Dave Love <fx@gnu.org>
parents:
diff changeset
15443 Adrian Aichner,
Dave Love <fx@gnu.org>
parents:
diff changeset
15444 Vladimir Alexiev,
Dave Love <fx@gnu.org>
parents:
diff changeset
15445 Russ Allbery,
Dave Love <fx@gnu.org>
parents:
diff changeset
15446 Peter Arius,
Dave Love <fx@gnu.org>
parents:
diff changeset
15447 Matt Armstrong,
Dave Love <fx@gnu.org>
parents:
diff changeset
15448 Marc Auslander,
Dave Love <fx@gnu.org>
parents:
diff changeset
15449 Frank Bennett,
Dave Love <fx@gnu.org>
parents:
diff changeset
15450 Robert Bihlmeyer,
Dave Love <fx@gnu.org>
parents:
diff changeset
15451 Chris Bone,
Dave Love <fx@gnu.org>
parents:
diff changeset
15452 Mark Borges,
Dave Love <fx@gnu.org>
parents:
diff changeset
15453 Mark Boyns,
Dave Love <fx@gnu.org>
parents:
diff changeset
15454 Lance A. Brown,
Dave Love <fx@gnu.org>
parents:
diff changeset
15455 Kees de Bruin,
Dave Love <fx@gnu.org>
parents:
diff changeset
15456 Martin Buchholz,
Dave Love <fx@gnu.org>
parents:
diff changeset
15457 Joe Buehler,
Dave Love <fx@gnu.org>
parents:
diff changeset
15458 Kevin Buhr,
Dave Love <fx@gnu.org>
parents:
diff changeset
15459 Alastair Burt,
Dave Love <fx@gnu.org>
parents:
diff changeset
15460 Joao Cachopo,
Dave Love <fx@gnu.org>
parents:
diff changeset
15461 Zlatko Calusic,
Dave Love <fx@gnu.org>
parents:
diff changeset
15462 Massimo Campostrini,
Dave Love <fx@gnu.org>
parents:
diff changeset
15463 Castor,
Dave Love <fx@gnu.org>
parents:
diff changeset
15464 David Charlap,
Dave Love <fx@gnu.org>
parents:
diff changeset
15465 Dan Christensen,
Dave Love <fx@gnu.org>
parents:
diff changeset
15466 Kevin Christian,
Dave Love <fx@gnu.org>
parents:
diff changeset
15467 Michael R. Cook,
Dave Love <fx@gnu.org>
parents:
diff changeset
15468 Glenn Coombs,
Dave Love <fx@gnu.org>
parents:
diff changeset
15469 Frank D. Cringle,
Dave Love <fx@gnu.org>
parents:
diff changeset
15470 Geoffrey T. Dairiki,
Dave Love <fx@gnu.org>
parents:
diff changeset
15471 Andre Deparade,
Dave Love <fx@gnu.org>
parents:
diff changeset
15472 Ulrik Dickow,
Dave Love <fx@gnu.org>
parents:
diff changeset
15473 Dave Disser,
Dave Love <fx@gnu.org>
parents:
diff changeset
15474 Rui-Tao Dong, @c ?
Dave Love <fx@gnu.org>
parents:
diff changeset
15475 Joev Dubach,
Dave Love <fx@gnu.org>
parents:
diff changeset
15476 Michael Welsh Duggan,
Dave Love <fx@gnu.org>
parents:
diff changeset
15477 Dave Edmondson,
Dave Love <fx@gnu.org>
parents:
diff changeset
15478 Paul Eggert,
Dave Love <fx@gnu.org>
parents:
diff changeset
15479 Enami Tsugutomo, @c Enami
Dave Love <fx@gnu.org>
parents:
diff changeset
15480 Michael Ernst,
Dave Love <fx@gnu.org>
parents:
diff changeset
15481 Luc Van Eycken,
Dave Love <fx@gnu.org>
parents:
diff changeset
15482 Sam Falkner,
Dave Love <fx@gnu.org>
parents:
diff changeset
15483 Nelson Jose dos Santos Ferreira,
Dave Love <fx@gnu.org>
parents:
diff changeset
15484 Sigbjorn Finne,
Dave Love <fx@gnu.org>
parents:
diff changeset
15485 Decklin Foster,
Dave Love <fx@gnu.org>
parents:
diff changeset
15486 Gary D. Foster,
Dave Love <fx@gnu.org>
parents:
diff changeset
15487 Paul Franklin,
Dave Love <fx@gnu.org>
parents:
diff changeset
15488 Guy Geens,
Dave Love <fx@gnu.org>
parents:
diff changeset
15489 Arne Georg Gleditsch,
Dave Love <fx@gnu.org>
parents:
diff changeset
15490 David S. Goldberg,
Dave Love <fx@gnu.org>
parents:
diff changeset
15491 Michelangelo Grigni,
Dave Love <fx@gnu.org>
parents:
diff changeset
15492 D. Hall,
Dave Love <fx@gnu.org>
parents:
diff changeset
15493 Magnus Hammerin,
Dave Love <fx@gnu.org>
parents:
diff changeset
15494 Kenichi Handa, @c Handa
Dave Love <fx@gnu.org>
parents:
diff changeset
15495 Raja R. Harinath,
Dave Love <fx@gnu.org>
parents:
diff changeset
15496 Yoshiki Hayashi, @c ?
Dave Love <fx@gnu.org>
parents:
diff changeset
15497 P. E. Jareth Hein,
Dave Love <fx@gnu.org>
parents:
diff changeset
15498 Hisashige Kenji, @c Hisashige
Dave Love <fx@gnu.org>
parents:
diff changeset
15499 Marc Horowitz,
Dave Love <fx@gnu.org>
parents:
diff changeset
15500 Gunnar Horrigmo,
Dave Love <fx@gnu.org>
parents:
diff changeset
15501 Richard Hoskins,
Dave Love <fx@gnu.org>
parents:
diff changeset
15502 Brad Howes,
Dave Love <fx@gnu.org>
parents:
diff changeset
15503 François Felix Ingrand,
Dave Love <fx@gnu.org>
parents:
diff changeset
15504 Ishikawa Ichiro, @c Ishikawa
Dave Love <fx@gnu.org>
parents:
diff changeset
15505 Lee Iverson,
Dave Love <fx@gnu.org>
parents:
diff changeset
15506 Iwamuro Motonori, @c Iwamuro
Dave Love <fx@gnu.org>
parents:
diff changeset
15507 Rajappa Iyer,
Dave Love <fx@gnu.org>
parents:
diff changeset
15508 Andreas Jaeger,
Dave Love <fx@gnu.org>
parents:
diff changeset
15509 Randell Jesup,
Dave Love <fx@gnu.org>
parents:
diff changeset
15510 Fred Johansen,
Dave Love <fx@gnu.org>
parents:
diff changeset
15511 Gareth Jones,
Dave Love <fx@gnu.org>
parents:
diff changeset
15512 Simon Josefsson,
Dave Love <fx@gnu.org>
parents:
diff changeset
15513 Greg Klanderman,
Dave Love <fx@gnu.org>
parents:
diff changeset
15514 Karl Kleinpaste,
Dave Love <fx@gnu.org>
parents:
diff changeset
15515 Peter Skov Knudsen,
Dave Love <fx@gnu.org>
parents:
diff changeset
15516 Shuhei Kobayashi, @c Kobayashi
Dave Love <fx@gnu.org>
parents:
diff changeset
15517 Koseki Yoshinori, @c Koseki
Dave Love <fx@gnu.org>
parents:
diff changeset
15518 Thor Kristoffersen,
Dave Love <fx@gnu.org>
parents:
diff changeset
15519 Jens Lautenbacher,
Dave Love <fx@gnu.org>
parents:
diff changeset
15520 Martin Larose,
Dave Love <fx@gnu.org>
parents:
diff changeset
15521 Seokchan Lee, @c Lee
Dave Love <fx@gnu.org>
parents:
diff changeset
15522 Carsten Leonhardt,
Dave Love <fx@gnu.org>
parents:
diff changeset
15523 James LewisMoss,
Dave Love <fx@gnu.org>
parents:
diff changeset
15524 Christian Limpach,
Dave Love <fx@gnu.org>
parents:
diff changeset
15525 Markus Linnala,
Dave Love <fx@gnu.org>
parents:
diff changeset
15526 Dave Love,
Dave Love <fx@gnu.org>
parents:
diff changeset
15527 Mike McEwan,
Dave Love <fx@gnu.org>
parents:
diff changeset
15528 Tonny Madsen,
Dave Love <fx@gnu.org>
parents:
diff changeset
15529 Shlomo Mahlab,
Dave Love <fx@gnu.org>
parents:
diff changeset
15530 Nat Makarevitch,
Dave Love <fx@gnu.org>
parents:
diff changeset
15531 Istvan Marko,
Dave Love <fx@gnu.org>
parents:
diff changeset
15532 David Martin,
Dave Love <fx@gnu.org>
parents:
diff changeset
15533 Jason R. Mastaler,
Dave Love <fx@gnu.org>
parents:
diff changeset
15534 Gordon Matzigkeit,
Dave Love <fx@gnu.org>
parents:
diff changeset
15535 Timo Metzemakers,
Dave Love <fx@gnu.org>
parents:
diff changeset
15536 Richard Mlynarik,
Dave Love <fx@gnu.org>
parents:
diff changeset
15537 Lantz Moore,
Dave Love <fx@gnu.org>
parents:
diff changeset
15538 Morioka Tomohiko, @c Morioka
Dave Love <fx@gnu.org>
parents:
diff changeset
15539 Erik Toubro Nielsen,
Dave Love <fx@gnu.org>
parents:
diff changeset
15540 Hrvoje Niksic,
Dave Love <fx@gnu.org>
parents:
diff changeset
15541 Andy Norman,
Dave Love <fx@gnu.org>
parents:
diff changeset
15542 Fred Oberhauser,
Dave Love <fx@gnu.org>
parents:
diff changeset
15543 C. R. Oldham,
Dave Love <fx@gnu.org>
parents:
diff changeset
15544 Alexandre Oliva,
Dave Love <fx@gnu.org>
parents:
diff changeset
15545 Ken Olstad,
Dave Love <fx@gnu.org>
parents:
diff changeset
15546 Masaharu Onishi, @c Onishi
Dave Love <fx@gnu.org>
parents:
diff changeset
15547 Hideki Ono, @c Ono
Dave Love <fx@gnu.org>
parents:
diff changeset
15548 William Perry,
Dave Love <fx@gnu.org>
parents:
diff changeset
15549 Stephen Peters,
Dave Love <fx@gnu.org>
parents:
diff changeset
15550 Jens-Ulrik Holger Petersen,
Dave Love <fx@gnu.org>
parents:
diff changeset
15551 Ulrich Pfeifer,
Dave Love <fx@gnu.org>
parents:
diff changeset
15552 Matt Pharr,
Dave Love <fx@gnu.org>
parents:
diff changeset
15553 John McClary Prevost,
Dave Love <fx@gnu.org>
parents:
diff changeset
15554 Bill Pringlemeir,
Dave Love <fx@gnu.org>
parents:
diff changeset
15555 Mike Pullen,
Dave Love <fx@gnu.org>
parents:
diff changeset
15556 Jim Radford,
Dave Love <fx@gnu.org>
parents:
diff changeset
15557 Colin Rafferty,
Dave Love <fx@gnu.org>
parents:
diff changeset
15558 Lasse Rasinen,
Dave Love <fx@gnu.org>
parents:
diff changeset
15559 Lars Balker Rasmussen,
Dave Love <fx@gnu.org>
parents:
diff changeset
15560 Joe Reiss,
Dave Love <fx@gnu.org>
parents:
diff changeset
15561 Renaud Rioboo,
Dave Love <fx@gnu.org>
parents:
diff changeset
15562 Roland B. Roberts,
Dave Love <fx@gnu.org>
parents:
diff changeset
15563 Bart Robinson,
Dave Love <fx@gnu.org>
parents:
diff changeset
15564 Christian von Roques,
Dave Love <fx@gnu.org>
parents:
diff changeset
15565 Jason Rumney,
Dave Love <fx@gnu.org>
parents:
diff changeset
15566 Wolfgang Rupprecht,
Dave Love <fx@gnu.org>
parents:
diff changeset
15567 Jay Sachs,
Dave Love <fx@gnu.org>
parents:
diff changeset
15568 Dewey M. Sasser,
Dave Love <fx@gnu.org>
parents:
diff changeset
15569 Loren Schall,
Dave Love <fx@gnu.org>
parents:
diff changeset
15570 Dan Schmidt,
Dave Love <fx@gnu.org>
parents:
diff changeset
15571 Ralph Schleicher,
Dave Love <fx@gnu.org>
parents:
diff changeset
15572 Philippe Schnoebelen,
Dave Love <fx@gnu.org>
parents:
diff changeset
15573 Andreas Schwab,
Dave Love <fx@gnu.org>
parents:
diff changeset
15574 Randal L. Schwartz,
Dave Love <fx@gnu.org>
parents:
diff changeset
15575 Justin Sheehy,
Dave Love <fx@gnu.org>
parents:
diff changeset
15576 Danny Siu,
Dave Love <fx@gnu.org>
parents:
diff changeset
15577 Matt Simmons,
Dave Love <fx@gnu.org>
parents:
diff changeset
15578 Paul D. Smith,
Dave Love <fx@gnu.org>
parents:
diff changeset
15579 Jeff Sparkes,
Dave Love <fx@gnu.org>
parents:
diff changeset
15580 Toby Speight,
Dave Love <fx@gnu.org>
parents:
diff changeset
15581 Michael Sperber,
Dave Love <fx@gnu.org>
parents:
diff changeset
15582 Darren Stalder,
Dave Love <fx@gnu.org>
parents:
diff changeset
15583 Richard Stallman,
Dave Love <fx@gnu.org>
parents:
diff changeset
15584 Greg Stark,
Dave Love <fx@gnu.org>
parents:
diff changeset
15585 Sam Steingold,
Dave Love <fx@gnu.org>
parents:
diff changeset
15586 Paul Stodghill,
Dave Love <fx@gnu.org>
parents:
diff changeset
15587 Kurt Swanson,
Dave Love <fx@gnu.org>
parents:
diff changeset
15588 Samuel Tardieu,
Dave Love <fx@gnu.org>
parents:
diff changeset
15589 Teddy,
Dave Love <fx@gnu.org>
parents:
diff changeset
15590 Chuck Thompson,
Dave Love <fx@gnu.org>
parents:
diff changeset
15591 Philippe Troin,
Dave Love <fx@gnu.org>
parents:
diff changeset
15592 James Troup,
Dave Love <fx@gnu.org>
parents:
diff changeset
15593 Trung Tran-Duc,
Dave Love <fx@gnu.org>
parents:
diff changeset
15594 Aaron M. Ucko,
Dave Love <fx@gnu.org>
parents:
diff changeset
15595 Aki Vehtari,
Dave Love <fx@gnu.org>
parents:
diff changeset
15596 Didier Verna,
Dave Love <fx@gnu.org>
parents:
diff changeset
15597 Jan Vroonhof,
Dave Love <fx@gnu.org>
parents:
diff changeset
15598 Stefan Waldherr,
Dave Love <fx@gnu.org>
parents:
diff changeset
15599 Pete Ware,
Dave Love <fx@gnu.org>
parents:
diff changeset
15600 Barry A. Warsaw,
Dave Love <fx@gnu.org>
parents:
diff changeset
15601 Christoph Wedler,
Dave Love <fx@gnu.org>
parents:
diff changeset
15602 Joe Wells,
Dave Love <fx@gnu.org>
parents:
diff changeset
15603 Katsumi Yamaoka, @c Yamaoka
Dave Love <fx@gnu.org>
parents:
diff changeset
15604 and
Dave Love <fx@gnu.org>
parents:
diff changeset
15605 Shenghuo Zhu. @c Zhu
Dave Love <fx@gnu.org>
parents:
diff changeset
15606
Dave Love <fx@gnu.org>
parents:
diff changeset
15607 For a full overview of what each person has done, the ChangeLogs
Dave Love <fx@gnu.org>
parents:
diff changeset
15608 included in the Gnus alpha distributions should give ample reading
Dave Love <fx@gnu.org>
parents:
diff changeset
15609 (550kB and counting).
Dave Love <fx@gnu.org>
parents:
diff changeset
15610
Dave Love <fx@gnu.org>
parents:
diff changeset
15611 Apologies to everybody that I've forgotten, of which there are many, I'm
Dave Love <fx@gnu.org>
parents:
diff changeset
15612 sure.
Dave Love <fx@gnu.org>
parents:
diff changeset
15613
Dave Love <fx@gnu.org>
parents:
diff changeset
15614 Gee, that's quite a list of people. I guess that must mean that there
Dave Love <fx@gnu.org>
parents:
diff changeset
15615 actually are people who are using Gnus. Who'd'a thunk it!
Dave Love <fx@gnu.org>
parents:
diff changeset
15616
Dave Love <fx@gnu.org>
parents:
diff changeset
15617
Dave Love <fx@gnu.org>
parents:
diff changeset
15618 @node New Features
Dave Love <fx@gnu.org>
parents:
diff changeset
15619 @subsection New Features
Dave Love <fx@gnu.org>
parents:
diff changeset
15620 @cindex new features
Dave Love <fx@gnu.org>
parents:
diff changeset
15621
Dave Love <fx@gnu.org>
parents:
diff changeset
15622 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
15623 * ding Gnus:: New things in Gnus 5.0/5.1, the first new Gnus.
Dave Love <fx@gnu.org>
parents:
diff changeset
15624 * September Gnus:: The Thing Formally Known As Gnus 5.3/5.3.
Dave Love <fx@gnu.org>
parents:
diff changeset
15625 * Red Gnus:: Third time best---Gnus 5.4/5.5.
Dave Love <fx@gnu.org>
parents:
diff changeset
15626 * Quassia Gnus:: Two times two is four, or Gnus 5.6/5.7.
Dave Love <fx@gnu.org>
parents:
diff changeset
15627 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
15628
Dave Love <fx@gnu.org>
parents:
diff changeset
15629 These lists are, of course, just @emph{short} overviews of the
Dave Love <fx@gnu.org>
parents:
diff changeset
15630 @emph{most} important new features. No, really. There are tons more.
Dave Love <fx@gnu.org>
parents:
diff changeset
15631 Yes, we have feeping creaturism in full effect.
Dave Love <fx@gnu.org>
parents:
diff changeset
15632
Dave Love <fx@gnu.org>
parents:
diff changeset
15633
Dave Love <fx@gnu.org>
parents:
diff changeset
15634 @node ding Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
15635 @subsubsection (ding) Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
15636
Dave Love <fx@gnu.org>
parents:
diff changeset
15637 New features in Gnus 5.0/5.1:
Dave Love <fx@gnu.org>
parents:
diff changeset
15638
Dave Love <fx@gnu.org>
parents:
diff changeset
15639 @itemize @bullet
Dave Love <fx@gnu.org>
parents:
diff changeset
15640
Dave Love <fx@gnu.org>
parents:
diff changeset
15641 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15642 The look of all buffers can be changed by setting format-like variables
Dave Love <fx@gnu.org>
parents:
diff changeset
15643 (@pxref{Group Buffer Format} and @pxref{Summary Buffer Format}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15644
Dave Love <fx@gnu.org>
parents:
diff changeset
15645 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15646 Local spool and several @sc{nntp} servers can be used at once
Dave Love <fx@gnu.org>
parents:
diff changeset
15647 (@pxref{Select Methods}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15648
Dave Love <fx@gnu.org>
parents:
diff changeset
15649 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15650 You can combine groups into virtual groups (@pxref{Virtual Groups}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15651
Dave Love <fx@gnu.org>
parents:
diff changeset
15652 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15653 You can read a number of different mail formats (@pxref{Getting Mail}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15654 All the mail backends implement a convenient mail expiry scheme
Dave Love <fx@gnu.org>
parents:
diff changeset
15655 (@pxref{Expiring Mail}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15656
Dave Love <fx@gnu.org>
parents:
diff changeset
15657 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15658 Gnus can use various strategies for gathering threads that have lost
Dave Love <fx@gnu.org>
parents:
diff changeset
15659 their roots (thereby gathering loose sub-threads into one thread) or it
Dave Love <fx@gnu.org>
parents:
diff changeset
15660 can go back and retrieve enough headers to build a complete thread
Dave Love <fx@gnu.org>
parents:
diff changeset
15661 (@pxref{Customizing Threading}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15662
Dave Love <fx@gnu.org>
parents:
diff changeset
15663 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15664 Killed groups can be displayed in the group buffer, and you can read
Dave Love <fx@gnu.org>
parents:
diff changeset
15665 them as well (@pxref{Listing Groups}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15666
Dave Love <fx@gnu.org>
parents:
diff changeset
15667 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15668 Gnus can do partial group updates---you do not have to retrieve the
Dave Love <fx@gnu.org>
parents:
diff changeset
15669 entire active file just to check for new articles in a few groups
Dave Love <fx@gnu.org>
parents:
diff changeset
15670 (@pxref{The Active File}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15671
Dave Love <fx@gnu.org>
parents:
diff changeset
15672 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15673 Gnus implements a sliding scale of subscribedness to groups
Dave Love <fx@gnu.org>
parents:
diff changeset
15674 (@pxref{Group Levels}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15675
Dave Love <fx@gnu.org>
parents:
diff changeset
15676 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15677 You can score articles according to any number of criteria
Dave Love <fx@gnu.org>
parents:
diff changeset
15678 (@pxref{Scoring}). You can even get Gnus to find out how to score
Dave Love <fx@gnu.org>
parents:
diff changeset
15679 articles for you (@pxref{Adaptive Scoring}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15680
Dave Love <fx@gnu.org>
parents:
diff changeset
15681 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15682 Gnus maintains a dribble buffer that is auto-saved the normal Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
15683 manner, so it should be difficult to lose much data on what you have
Dave Love <fx@gnu.org>
parents:
diff changeset
15684 read if your machine should go down (@pxref{Auto Save}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15685
Dave Love <fx@gnu.org>
parents:
diff changeset
15686 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15687 Gnus now has its own startup file (@file{.gnus}) to avoid cluttering up
Dave Love <fx@gnu.org>
parents:
diff changeset
15688 the @file{.emacs} file.
Dave Love <fx@gnu.org>
parents:
diff changeset
15689
Dave Love <fx@gnu.org>
parents:
diff changeset
15690 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15691 You can set the process mark on both groups and articles and perform
Dave Love <fx@gnu.org>
parents:
diff changeset
15692 operations on all the marked items (@pxref{Process/Prefix}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15693
Dave Love <fx@gnu.org>
parents:
diff changeset
15694 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15695 You can grep through a subset of groups and create a group from the
Dave Love <fx@gnu.org>
parents:
diff changeset
15696 results (@pxref{Kibozed Groups}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15697
Dave Love <fx@gnu.org>
parents:
diff changeset
15698 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15699 You can list subsets of groups according to, well, anything
Dave Love <fx@gnu.org>
parents:
diff changeset
15700 (@pxref{Listing Groups}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15701
Dave Love <fx@gnu.org>
parents:
diff changeset
15702 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15703 You can browse foreign servers and subscribe to groups from those
Dave Love <fx@gnu.org>
parents:
diff changeset
15704 servers (@pxref{Browse Foreign Server}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15705
Dave Love <fx@gnu.org>
parents:
diff changeset
15706 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15707 Gnus can fetch articles, asynchronously, on a second connection to the
Dave Love <fx@gnu.org>
parents:
diff changeset
15708 server (@pxref{Asynchronous Fetching}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15709
Dave Love <fx@gnu.org>
parents:
diff changeset
15710 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15711 You can cache articles locally (@pxref{Article Caching}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15712
Dave Love <fx@gnu.org>
parents:
diff changeset
15713 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15714 The uudecode functions have been expanded and generalized
Dave Love <fx@gnu.org>
parents:
diff changeset
15715 (@pxref{Decoding Articles}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15716
Dave Love <fx@gnu.org>
parents:
diff changeset
15717 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15718 You can still post uuencoded articles, which was a little-known feature
Dave Love <fx@gnu.org>
parents:
diff changeset
15719 of @sc{gnus}' past (@pxref{Uuencoding and Posting}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15720
Dave Love <fx@gnu.org>
parents:
diff changeset
15721 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15722 Fetching parents (and other articles) now actually works without
Dave Love <fx@gnu.org>
parents:
diff changeset
15723 glitches (@pxref{Finding the Parent}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15724
Dave Love <fx@gnu.org>
parents:
diff changeset
15725 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15726 Gnus can fetch FAQs and group descriptions (@pxref{Group Information}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15727
Dave Love <fx@gnu.org>
parents:
diff changeset
15728 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15729 Digests (and other files) can be used as the basis for groups
Dave Love <fx@gnu.org>
parents:
diff changeset
15730 (@pxref{Document Groups}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15731
Dave Love <fx@gnu.org>
parents:
diff changeset
15732 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15733 Articles can be highlighted and customized (@pxref{Customizing
Dave Love <fx@gnu.org>
parents:
diff changeset
15734 Articles}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15735
Dave Love <fx@gnu.org>
parents:
diff changeset
15736 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15737 URLs and other external references can be buttonized (@pxref{Article
Dave Love <fx@gnu.org>
parents:
diff changeset
15738 Buttons}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15739
Dave Love <fx@gnu.org>
parents:
diff changeset
15740 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15741 You can do lots of strange stuff with the Gnus window & frame
Dave Love <fx@gnu.org>
parents:
diff changeset
15742 configuration (@pxref{Windows Configuration}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15743
Dave Love <fx@gnu.org>
parents:
diff changeset
15744 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15745 You can click on buttons instead of using the keyboard
Dave Love <fx@gnu.org>
parents:
diff changeset
15746 (@pxref{Buttons}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15747
Dave Love <fx@gnu.org>
parents:
diff changeset
15748 @end itemize
Dave Love <fx@gnu.org>
parents:
diff changeset
15749
Dave Love <fx@gnu.org>
parents:
diff changeset
15750
Dave Love <fx@gnu.org>
parents:
diff changeset
15751 @node September Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
15752 @subsubsection September Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
15753
Dave Love <fx@gnu.org>
parents:
diff changeset
15754 New features in Gnus 5.2/5.3:
Dave Love <fx@gnu.org>
parents:
diff changeset
15755
Dave Love <fx@gnu.org>
parents:
diff changeset
15756 @itemize @bullet
Dave Love <fx@gnu.org>
parents:
diff changeset
15757
Dave Love <fx@gnu.org>
parents:
diff changeset
15758 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15759 A new message composition mode is used. All old customization variables
Dave Love <fx@gnu.org>
parents:
diff changeset
15760 for @code{mail-mode}, @code{rnews-reply-mode} and @code{gnus-msg} are
Dave Love <fx@gnu.org>
parents:
diff changeset
15761 now obsolete.
Dave Love <fx@gnu.org>
parents:
diff changeset
15762
Dave Love <fx@gnu.org>
parents:
diff changeset
15763 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15764 Gnus is now able to generate @dfn{sparse} threads---threads where
Dave Love <fx@gnu.org>
parents:
diff changeset
15765 missing articles are represented by empty nodes (@pxref{Customizing
Dave Love <fx@gnu.org>
parents:
diff changeset
15766 Threading}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15767
Dave Love <fx@gnu.org>
parents:
diff changeset
15768 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
15769 (setq gnus-build-sparse-threads 'some)
Dave Love <fx@gnu.org>
parents:
diff changeset
15770 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
15771
Dave Love <fx@gnu.org>
parents:
diff changeset
15772 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15773 Outgoing articles are stored on a special archive server
Dave Love <fx@gnu.org>
parents:
diff changeset
15774 (@pxref{Archived Messages}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15775
Dave Love <fx@gnu.org>
parents:
diff changeset
15776 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15777 Partial thread regeneration now happens when articles are
Dave Love <fx@gnu.org>
parents:
diff changeset
15778 referred.
Dave Love <fx@gnu.org>
parents:
diff changeset
15779
Dave Love <fx@gnu.org>
parents:
diff changeset
15780 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15781 Gnus can make use of GroupLens predictions (@pxref{GroupLens}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15782
Dave Love <fx@gnu.org>
parents:
diff changeset
15783 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15784 Picons (personal icons) can be displayed under XEmacs (@pxref{Picons}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15785
Dave Love <fx@gnu.org>
parents:
diff changeset
15786 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15787 A @code{trn}-like tree buffer can be displayed (@pxref{Tree Display}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15788
Dave Love <fx@gnu.org>
parents:
diff changeset
15789 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
15790 (setq gnus-use-trees t)
Dave Love <fx@gnu.org>
parents:
diff changeset
15791 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
15792
Dave Love <fx@gnu.org>
parents:
diff changeset
15793 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15794 An @code{nn}-like pick-and-read minor mode is available for the summary
Dave Love <fx@gnu.org>
parents:
diff changeset
15795 buffers (@pxref{Pick and Read}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15796
Dave Love <fx@gnu.org>
parents:
diff changeset
15797 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
15798 (add-hook 'gnus-summary-mode-hook 'gnus-pick-mode)
Dave Love <fx@gnu.org>
parents:
diff changeset
15799 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
15800
Dave Love <fx@gnu.org>
parents:
diff changeset
15801 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15802 In binary groups you can use a special binary minor mode (@pxref{Binary
Dave Love <fx@gnu.org>
parents:
diff changeset
15803 Groups}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15804
Dave Love <fx@gnu.org>
parents:
diff changeset
15805 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15806 Groups can be grouped in a folding topic hierarchy (@pxref{Group
Dave Love <fx@gnu.org>
parents:
diff changeset
15807 Topics}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15808
Dave Love <fx@gnu.org>
parents:
diff changeset
15809 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
15810 (add-hook 'gnus-group-mode-hook 'gnus-topic-mode)
Dave Love <fx@gnu.org>
parents:
diff changeset
15811 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
15812
Dave Love <fx@gnu.org>
parents:
diff changeset
15813 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15814 Gnus can re-send and bounce mail (@pxref{Summary Mail Commands}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15815
Dave Love <fx@gnu.org>
parents:
diff changeset
15816 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15817 Groups can now have a score, and bubbling based on entry frequency
Dave Love <fx@gnu.org>
parents:
diff changeset
15818 is possible (@pxref{Group Score}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15819
Dave Love <fx@gnu.org>
parents:
diff changeset
15820 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
15821 (add-hook 'gnus-summary-exit-hook 'gnus-summary-bubble-group)
Dave Love <fx@gnu.org>
parents:
diff changeset
15822 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
15823
Dave Love <fx@gnu.org>
parents:
diff changeset
15824 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15825 Groups can be process-marked, and commands can be performed on
Dave Love <fx@gnu.org>
parents:
diff changeset
15826 groups of groups (@pxref{Marking Groups}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15827
Dave Love <fx@gnu.org>
parents:
diff changeset
15828 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15829 Caching is possible in virtual groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
15830
Dave Love <fx@gnu.org>
parents:
diff changeset
15831 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15832 @code{nndoc} now understands all kinds of digests, mail boxes, rnews
Dave Love <fx@gnu.org>
parents:
diff changeset
15833 news batches, ClariNet briefs collections, and just about everything
Dave Love <fx@gnu.org>
parents:
diff changeset
15834 else (@pxref{Document Groups}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15835
Dave Love <fx@gnu.org>
parents:
diff changeset
15836 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15837 Gnus has a new backend (@code{nnsoup}) to create/read SOUP packets
Dave Love <fx@gnu.org>
parents:
diff changeset
15838 (@pxref{SOUP}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15839
Dave Love <fx@gnu.org>
parents:
diff changeset
15840 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15841 The Gnus cache is much faster.
Dave Love <fx@gnu.org>
parents:
diff changeset
15842
Dave Love <fx@gnu.org>
parents:
diff changeset
15843 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15844 Groups can be sorted according to many criteria (@pxref{Sorting
Dave Love <fx@gnu.org>
parents:
diff changeset
15845 Groups}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15846
Dave Love <fx@gnu.org>
parents:
diff changeset
15847 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15848 New group parameters have been introduced to set list-addresses and
Dave Love <fx@gnu.org>
parents:
diff changeset
15849 expiry times (@pxref{Group Parameters}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15850
Dave Love <fx@gnu.org>
parents:
diff changeset
15851 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15852 All formatting specs allow specifying faces to be used
Dave Love <fx@gnu.org>
parents:
diff changeset
15853 (@pxref{Formatting Fonts}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15854
Dave Love <fx@gnu.org>
parents:
diff changeset
15855 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15856 There are several more commands for setting/removing/acting on process
Dave Love <fx@gnu.org>
parents:
diff changeset
15857 marked articles on the @kbd{M P} submap (@pxref{Setting Process Marks}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15858
Dave Love <fx@gnu.org>
parents:
diff changeset
15859 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15860 The summary buffer can be limited to show parts of the available
Dave Love <fx@gnu.org>
parents:
diff changeset
15861 articles based on a wide range of criteria. These commands have been
Dave Love <fx@gnu.org>
parents:
diff changeset
15862 bound to keys on the @kbd{/} submap (@pxref{Limiting}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15863
Dave Love <fx@gnu.org>
parents:
diff changeset
15864 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15865 Articles can be made persistent with the @kbd{*} command
Dave Love <fx@gnu.org>
parents:
diff changeset
15866 (@pxref{Persistent Articles}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15867
Dave Love <fx@gnu.org>
parents:
diff changeset
15868 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15869 All functions for hiding article elements are now toggles.
Dave Love <fx@gnu.org>
parents:
diff changeset
15870
Dave Love <fx@gnu.org>
parents:
diff changeset
15871 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15872 Article headers can be buttonized (@pxref{Article Washing}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15873
Dave Love <fx@gnu.org>
parents:
diff changeset
15874 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
15875 (add-hook 'gnus-article-display-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
15876 'gnus-article-add-buttons-to-head)
Dave Love <fx@gnu.org>
parents:
diff changeset
15877 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
15878
Dave Love <fx@gnu.org>
parents:
diff changeset
15879 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15880 All mail backends support fetching articles by @code{Message-ID}.
Dave Love <fx@gnu.org>
parents:
diff changeset
15881
Dave Love <fx@gnu.org>
parents:
diff changeset
15882 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15883 Duplicate mail can now be treated properly (@pxref{Duplicates}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15884
Dave Love <fx@gnu.org>
parents:
diff changeset
15885 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15886 All summary mode commands are available directly from the article
Dave Love <fx@gnu.org>
parents:
diff changeset
15887 buffer (@pxref{Article Keymap}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15888
Dave Love <fx@gnu.org>
parents:
diff changeset
15889 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15890 Frames can be part of @code{gnus-buffer-configuration} (@pxref{Windows
Dave Love <fx@gnu.org>
parents:
diff changeset
15891 Configuration}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15892
Dave Love <fx@gnu.org>
parents:
diff changeset
15893 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15894 Mail can be re-scanned by a daemonic process (@pxref{Daemons}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15895
Dave Love <fx@gnu.org>
parents:
diff changeset
15896 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15897 Gnus can make use of NoCeM files to weed out spam (@pxref{NoCeM}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15898
Dave Love <fx@gnu.org>
parents:
diff changeset
15899 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
15900 (setq gnus-use-nocem t)
Dave Love <fx@gnu.org>
parents:
diff changeset
15901 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
15902
Dave Love <fx@gnu.org>
parents:
diff changeset
15903 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15904 Groups can be made permanently visible (@pxref{Listing Groups}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15905
Dave Love <fx@gnu.org>
parents:
diff changeset
15906 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
15907 (setq gnus-permanently-visible-groups "^nnml:")
Dave Love <fx@gnu.org>
parents:
diff changeset
15908 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
15909
Dave Love <fx@gnu.org>
parents:
diff changeset
15910 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15911 Many new hooks have been introduced to make customizing easier.
Dave Love <fx@gnu.org>
parents:
diff changeset
15912
Dave Love <fx@gnu.org>
parents:
diff changeset
15913 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15914 Gnus respects the @code{Mail-Copies-To} header.
Dave Love <fx@gnu.org>
parents:
diff changeset
15915
Dave Love <fx@gnu.org>
parents:
diff changeset
15916 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15917 Threads can be gathered by looking at the @code{References} header
Dave Love <fx@gnu.org>
parents:
diff changeset
15918 (@pxref{Customizing Threading}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15919
Dave Love <fx@gnu.org>
parents:
diff changeset
15920 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
15921 (setq gnus-summary-thread-gathering-function
Dave Love <fx@gnu.org>
parents:
diff changeset
15922 'gnus-gather-threads-by-references)
Dave Love <fx@gnu.org>
parents:
diff changeset
15923 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
15924
Dave Love <fx@gnu.org>
parents:
diff changeset
15925 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15926 Read articles can be stored in a special backlog buffer to avoid
Dave Love <fx@gnu.org>
parents:
diff changeset
15927 refetching (@pxref{Article Backlog}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15928
Dave Love <fx@gnu.org>
parents:
diff changeset
15929 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
15930 (setq gnus-keep-backlog 50)
Dave Love <fx@gnu.org>
parents:
diff changeset
15931 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
15932
Dave Love <fx@gnu.org>
parents:
diff changeset
15933 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15934 A clean copy of the current article is always stored in a separate
Dave Love <fx@gnu.org>
parents:
diff changeset
15935 buffer to allow easier treatment.
Dave Love <fx@gnu.org>
parents:
diff changeset
15936
Dave Love <fx@gnu.org>
parents:
diff changeset
15937 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15938 Gnus can suggest where to save articles (@pxref{Saving Articles}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15939
Dave Love <fx@gnu.org>
parents:
diff changeset
15940 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15941 Gnus doesn't have to do as much prompting when saving (@pxref{Saving
Dave Love <fx@gnu.org>
parents:
diff changeset
15942 Articles}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15943
Dave Love <fx@gnu.org>
parents:
diff changeset
15944 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
15945 (setq gnus-prompt-before-saving t)
Dave Love <fx@gnu.org>
parents:
diff changeset
15946 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
15947
Dave Love <fx@gnu.org>
parents:
diff changeset
15948 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15949 @code{gnus-uu} can view decoded files asynchronously while fetching
Dave Love <fx@gnu.org>
parents:
diff changeset
15950 articles (@pxref{Other Decode Variables}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15951
Dave Love <fx@gnu.org>
parents:
diff changeset
15952 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
15953 (setq gnus-uu-grabbed-file-functions 'gnus-uu-grab-view)
Dave Love <fx@gnu.org>
parents:
diff changeset
15954 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
15955
Dave Love <fx@gnu.org>
parents:
diff changeset
15956 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15957 Filling in the article buffer now works properly on cited text
Dave Love <fx@gnu.org>
parents:
diff changeset
15958 (@pxref{Article Washing}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15959
Dave Love <fx@gnu.org>
parents:
diff changeset
15960 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15961 Hiding cited text adds buttons to toggle hiding, and how much
Dave Love <fx@gnu.org>
parents:
diff changeset
15962 cited text to hide is now customizable (@pxref{Article Hiding}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15963
Dave Love <fx@gnu.org>
parents:
diff changeset
15964 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
15965 (setq gnus-cited-lines-visible 2)
Dave Love <fx@gnu.org>
parents:
diff changeset
15966 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
15967
Dave Love <fx@gnu.org>
parents:
diff changeset
15968 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15969 Boring headers can be hidden (@pxref{Article Hiding}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15970
Dave Love <fx@gnu.org>
parents:
diff changeset
15971 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
15972 (add-hook 'gnus-article-display-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
15973 'gnus-article-hide-boring-headers t)
Dave Love <fx@gnu.org>
parents:
diff changeset
15974 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
15975
Dave Love <fx@gnu.org>
parents:
diff changeset
15976 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15977 Default scoring values can now be set from the menu bar.
Dave Love <fx@gnu.org>
parents:
diff changeset
15978
Dave Love <fx@gnu.org>
parents:
diff changeset
15979 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15980 Further syntax checking of outgoing articles have been added.
Dave Love <fx@gnu.org>
parents:
diff changeset
15981
Dave Love <fx@gnu.org>
parents:
diff changeset
15982 @end itemize
Dave Love <fx@gnu.org>
parents:
diff changeset
15983
Dave Love <fx@gnu.org>
parents:
diff changeset
15984
Dave Love <fx@gnu.org>
parents:
diff changeset
15985 @node Red Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
15986 @subsubsection Red Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
15987
Dave Love <fx@gnu.org>
parents:
diff changeset
15988 New features in Gnus 5.4/5.5:
Dave Love <fx@gnu.org>
parents:
diff changeset
15989
Dave Love <fx@gnu.org>
parents:
diff changeset
15990 @itemize @bullet
Dave Love <fx@gnu.org>
parents:
diff changeset
15991
Dave Love <fx@gnu.org>
parents:
diff changeset
15992 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15993 @file{nntp.el} has been totally rewritten in an asynchronous fashion.
Dave Love <fx@gnu.org>
parents:
diff changeset
15994
Dave Love <fx@gnu.org>
parents:
diff changeset
15995 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
15996 Article prefetching functionality has been moved up into
Dave Love <fx@gnu.org>
parents:
diff changeset
15997 Gnus (@pxref{Asynchronous Fetching}).
Dave Love <fx@gnu.org>
parents:
diff changeset
15998
Dave Love <fx@gnu.org>
parents:
diff changeset
15999 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16000 Scoring can now be performed with logical operators like @code{and},
Dave Love <fx@gnu.org>
parents:
diff changeset
16001 @code{or}, @code{not}, and parent redirection (@pxref{Advanced
Dave Love <fx@gnu.org>
parents:
diff changeset
16002 Scoring}).
Dave Love <fx@gnu.org>
parents:
diff changeset
16003
Dave Love <fx@gnu.org>
parents:
diff changeset
16004 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16005 Article washing status can be displayed in the
Dave Love <fx@gnu.org>
parents:
diff changeset
16006 article mode line (@pxref{Misc Article}).
Dave Love <fx@gnu.org>
parents:
diff changeset
16007
Dave Love <fx@gnu.org>
parents:
diff changeset
16008 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16009 @file{gnus.el} has been split into many smaller files.
Dave Love <fx@gnu.org>
parents:
diff changeset
16010
Dave Love <fx@gnu.org>
parents:
diff changeset
16011 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16012 Suppression of duplicate articles based on Message-ID can be done
Dave Love <fx@gnu.org>
parents:
diff changeset
16013 (@pxref{Duplicate Suppression}).
Dave Love <fx@gnu.org>
parents:
diff changeset
16014
Dave Love <fx@gnu.org>
parents:
diff changeset
16015 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
16016 (setq gnus-suppress-duplicates t)
Dave Love <fx@gnu.org>
parents:
diff changeset
16017 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
16018
Dave Love <fx@gnu.org>
parents:
diff changeset
16019 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16020 New variables for specifying what score and adapt files are to be
Dave Love <fx@gnu.org>
parents:
diff changeset
16021 considered home score and adapt files (@pxref{Home Score File}) have
Dave Love <fx@gnu.org>
parents:
diff changeset
16022 been added.
Dave Love <fx@gnu.org>
parents:
diff changeset
16023
Dave Love <fx@gnu.org>
parents:
diff changeset
16024 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16025 @code{nndoc} was rewritten to be easily extendable (@pxref{Document
Dave Love <fx@gnu.org>
parents:
diff changeset
16026 Server Internals}).
Dave Love <fx@gnu.org>
parents:
diff changeset
16027
Dave Love <fx@gnu.org>
parents:
diff changeset
16028 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16029 Groups can inherit group parameters from parent topics (@pxref{Topic
Dave Love <fx@gnu.org>
parents:
diff changeset
16030 Parameters}).
Dave Love <fx@gnu.org>
parents:
diff changeset
16031
Dave Love <fx@gnu.org>
parents:
diff changeset
16032 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16033 Article editing has been revamped and is now actually usable.
Dave Love <fx@gnu.org>
parents:
diff changeset
16034
Dave Love <fx@gnu.org>
parents:
diff changeset
16035 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16036 Signatures can be recognized in more intelligent fashions
Dave Love <fx@gnu.org>
parents:
diff changeset
16037 (@pxref{Article Signature}).
Dave Love <fx@gnu.org>
parents:
diff changeset
16038
Dave Love <fx@gnu.org>
parents:
diff changeset
16039 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16040 Summary pick mode has been made to look more @code{nn}-like. Line
Dave Love <fx@gnu.org>
parents:
diff changeset
16041 numbers are displayed and the @kbd{.} command can be used to pick
Dave Love <fx@gnu.org>
parents:
diff changeset
16042 articles (@code{Pick and Read}).
Dave Love <fx@gnu.org>
parents:
diff changeset
16043
Dave Love <fx@gnu.org>
parents:
diff changeset
16044 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16045 Commands for moving the @file{.newsrc.eld} from one server to
Dave Love <fx@gnu.org>
parents:
diff changeset
16046 another have been added (@pxref{Changing Servers}).
Dave Love <fx@gnu.org>
parents:
diff changeset
16047
Dave Love <fx@gnu.org>
parents:
diff changeset
16048 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16049 There's a way now to specify that ``uninteresting'' fields be suppressed
Dave Love <fx@gnu.org>
parents:
diff changeset
16050 when generating lines in buffers (@pxref{Advanced Formatting}).
Dave Love <fx@gnu.org>
parents:
diff changeset
16051
Dave Love <fx@gnu.org>
parents:
diff changeset
16052 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16053 Several commands in the group buffer can be undone with @kbd{M-C-_}
Dave Love <fx@gnu.org>
parents:
diff changeset
16054 (@pxref{Undo}).
Dave Love <fx@gnu.org>
parents:
diff changeset
16055
Dave Love <fx@gnu.org>
parents:
diff changeset
16056 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16057 Scoring can be done on words using the new score type @code{w}
Dave Love <fx@gnu.org>
parents:
diff changeset
16058 (@pxref{Score File Format}).
Dave Love <fx@gnu.org>
parents:
diff changeset
16059
Dave Love <fx@gnu.org>
parents:
diff changeset
16060 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16061 Adaptive scoring can be done on a Subject word-by-word basis
Dave Love <fx@gnu.org>
parents:
diff changeset
16062 (@pxref{Adaptive Scoring}).
Dave Love <fx@gnu.org>
parents:
diff changeset
16063
Dave Love <fx@gnu.org>
parents:
diff changeset
16064 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
16065 (setq gnus-use-adaptive-scoring '(word))
Dave Love <fx@gnu.org>
parents:
diff changeset
16066 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
16067
Dave Love <fx@gnu.org>
parents:
diff changeset
16068 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16069 Scores can be decayed (@pxref{Score Decays}).
Dave Love <fx@gnu.org>
parents:
diff changeset
16070
Dave Love <fx@gnu.org>
parents:
diff changeset
16071 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
16072 (setq gnus-decay-scores t)
Dave Love <fx@gnu.org>
parents:
diff changeset
16073 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
16074
Dave Love <fx@gnu.org>
parents:
diff changeset
16075 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16076 Scoring can be performed using a regexp on the Date header. The Date is
Dave Love <fx@gnu.org>
parents:
diff changeset
16077 normalized to compact ISO 8601 format first (@pxref{Score File Format}).
Dave Love <fx@gnu.org>
parents:
diff changeset
16078
Dave Love <fx@gnu.org>
parents:
diff changeset
16079 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16080 A new command has been added to remove all data on articles from
Dave Love <fx@gnu.org>
parents:
diff changeset
16081 the native server (@pxref{Changing Servers}).
Dave Love <fx@gnu.org>
parents:
diff changeset
16082
Dave Love <fx@gnu.org>
parents:
diff changeset
16083 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16084 A new command for reading collections of documents
Dave Love <fx@gnu.org>
parents:
diff changeset
16085 (@code{nndoc} with @code{nnvirtual} on top) has been added---@kbd{M-C-d}
Dave Love <fx@gnu.org>
parents:
diff changeset
16086 (@pxref{Really Various Summary Commands}).
Dave Love <fx@gnu.org>
parents:
diff changeset
16087
Dave Love <fx@gnu.org>
parents:
diff changeset
16088 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16089 Process mark sets can be pushed and popped (@pxref{Setting Process
Dave Love <fx@gnu.org>
parents:
diff changeset
16090 Marks}).
Dave Love <fx@gnu.org>
parents:
diff changeset
16091
Dave Love <fx@gnu.org>
parents:
diff changeset
16092 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16093 A new mail-to-news backend makes it possible to post even when the NNTP
Dave Love <fx@gnu.org>
parents:
diff changeset
16094 server doesn't allow posting (@pxref{Mail-To-News Gateways}).
Dave Love <fx@gnu.org>
parents:
diff changeset
16095
Dave Love <fx@gnu.org>
parents:
diff changeset
16096 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16097 A new backend for reading searches from Web search engines
Dave Love <fx@gnu.org>
parents:
diff changeset
16098 (@dfn{DejaNews}, @dfn{Alta Vista}, @dfn{InReference}) has been added
Dave Love <fx@gnu.org>
parents:
diff changeset
16099 (@pxref{Web Searches}).
Dave Love <fx@gnu.org>
parents:
diff changeset
16100
Dave Love <fx@gnu.org>
parents:
diff changeset
16101 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16102 Groups inside topics can now be sorted using the standard sorting
Dave Love <fx@gnu.org>
parents:
diff changeset
16103 functions, and each topic can be sorted independently (@pxref{Topic
Dave Love <fx@gnu.org>
parents:
diff changeset
16104 Sorting}).
Dave Love <fx@gnu.org>
parents:
diff changeset
16105
Dave Love <fx@gnu.org>
parents:
diff changeset
16106 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16107 Subsets of the groups can be sorted independently (@code{Sorting
Dave Love <fx@gnu.org>
parents:
diff changeset
16108 Groups}).
Dave Love <fx@gnu.org>
parents:
diff changeset
16109
Dave Love <fx@gnu.org>
parents:
diff changeset
16110 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16111 Cached articles can be pulled into the groups (@pxref{Summary Generation
Dave Love <fx@gnu.org>
parents:
diff changeset
16112 Commands}).
Dave Love <fx@gnu.org>
parents:
diff changeset
16113
Dave Love <fx@gnu.org>
parents:
diff changeset
16114 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16115 Score files are now applied in a more reliable order (@pxref{Score
Dave Love <fx@gnu.org>
parents:
diff changeset
16116 Variables}).
Dave Love <fx@gnu.org>
parents:
diff changeset
16117
Dave Love <fx@gnu.org>
parents:
diff changeset
16118 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16119 Reports on where mail messages end up can be generated (@pxref{Splitting
Dave Love <fx@gnu.org>
parents:
diff changeset
16120 Mail}).
Dave Love <fx@gnu.org>
parents:
diff changeset
16121
Dave Love <fx@gnu.org>
parents:
diff changeset
16122 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16123 More hooks and functions have been added to remove junk from incoming
Dave Love <fx@gnu.org>
parents:
diff changeset
16124 mail before saving the mail (@pxref{Washing Mail}).
Dave Love <fx@gnu.org>
parents:
diff changeset
16125
Dave Love <fx@gnu.org>
parents:
diff changeset
16126 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16127 Emphasized text can be properly fontisized:
Dave Love <fx@gnu.org>
parents:
diff changeset
16128
Dave Love <fx@gnu.org>
parents:
diff changeset
16129 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
16130 (add-hook 'gnus-article-display-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
16131 'gnus-article-emphasize)
Dave Love <fx@gnu.org>
parents:
diff changeset
16132 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
16133
Dave Love <fx@gnu.org>
parents:
diff changeset
16134 @end itemize
Dave Love <fx@gnu.org>
parents:
diff changeset
16135
Dave Love <fx@gnu.org>
parents:
diff changeset
16136
Dave Love <fx@gnu.org>
parents:
diff changeset
16137 @node Quassia Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
16138 @subsubsection Quassia Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
16139
Dave Love <fx@gnu.org>
parents:
diff changeset
16140 New features in Gnus 5.6:
Dave Love <fx@gnu.org>
parents:
diff changeset
16141
Dave Love <fx@gnu.org>
parents:
diff changeset
16142 @itemize @bullet
Dave Love <fx@gnu.org>
parents:
diff changeset
16143
Dave Love <fx@gnu.org>
parents:
diff changeset
16144 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16145 New functionality for using Gnus as an offline newsreader has been
Dave Love <fx@gnu.org>
parents:
diff changeset
16146 added. A plethora of new commands and modes have been added. See
Dave Love <fx@gnu.org>
parents:
diff changeset
16147 @pxref{Gnus Unplugged} for the full story.
Dave Love <fx@gnu.org>
parents:
diff changeset
16148
Dave Love <fx@gnu.org>
parents:
diff changeset
16149 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16150 The @code{nndraft} backend has returned, but works differently than
Dave Love <fx@gnu.org>
parents:
diff changeset
16151 before. All Message buffers are now also articles in the @code{nndraft}
Dave Love <fx@gnu.org>
parents:
diff changeset
16152 group, which is created automatically.
Dave Love <fx@gnu.org>
parents:
diff changeset
16153
Dave Love <fx@gnu.org>
parents:
diff changeset
16154 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16155 @code{gnus-alter-header-function} can now be used to alter header
Dave Love <fx@gnu.org>
parents:
diff changeset
16156 values.
Dave Love <fx@gnu.org>
parents:
diff changeset
16157
Dave Love <fx@gnu.org>
parents:
diff changeset
16158 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16159 @code{gnus-summary-goto-article} now accept Message-ID's.
Dave Love <fx@gnu.org>
parents:
diff changeset
16160
Dave Love <fx@gnu.org>
parents:
diff changeset
16161 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16162 A new Message command for deleting text in the body of a message
Dave Love <fx@gnu.org>
parents:
diff changeset
16163 outside the region: @kbd{C-c C-v}.
Dave Love <fx@gnu.org>
parents:
diff changeset
16164
Dave Love <fx@gnu.org>
parents:
diff changeset
16165 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16166 You can now post to component group in @code{nnvirtual} groups with
Dave Love <fx@gnu.org>
parents:
diff changeset
16167 @kbd{C-u C-c C-c}.
Dave Love <fx@gnu.org>
parents:
diff changeset
16168
Dave Love <fx@gnu.org>
parents:
diff changeset
16169 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16170 @code{nntp-rlogin-program}---new variable to ease customization.
Dave Love <fx@gnu.org>
parents:
diff changeset
16171
Dave Love <fx@gnu.org>
parents:
diff changeset
16172 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16173 @code{C-u C-c C-c} in @code{gnus-article-edit-mode} will now inhibit
Dave Love <fx@gnu.org>
parents:
diff changeset
16174 re-highlighting of the article buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
16175
Dave Love <fx@gnu.org>
parents:
diff changeset
16176 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16177 New element in @code{gnus-boring-article-headers}---@code{long-to}.
Dave Love <fx@gnu.org>
parents:
diff changeset
16178
Dave Love <fx@gnu.org>
parents:
diff changeset
16179 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16180 @kbd{M-i} symbolic prefix command. See the section "Symbolic
Dave Love <fx@gnu.org>
parents:
diff changeset
16181 Prefixes" in the Gnus manual for details.
Dave Love <fx@gnu.org>
parents:
diff changeset
16182
Dave Love <fx@gnu.org>
parents:
diff changeset
16183 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16184 @kbd{L} and @kbd{I} in the summary buffer now take the symbolic prefix
Dave Love <fx@gnu.org>
parents:
diff changeset
16185 @kbd{a} to add the score rule to the "all.SCORE" file.
Dave Love <fx@gnu.org>
parents:
diff changeset
16186
Dave Love <fx@gnu.org>
parents:
diff changeset
16187 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16188 @code{gnus-simplify-subject-functions} variable to allow greater
Dave Love <fx@gnu.org>
parents:
diff changeset
16189 control over simplification.
Dave Love <fx@gnu.org>
parents:
diff changeset
16190
Dave Love <fx@gnu.org>
parents:
diff changeset
16191 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16192 @kbd{A T}---new command for fetching the current thread.
Dave Love <fx@gnu.org>
parents:
diff changeset
16193
Dave Love <fx@gnu.org>
parents:
diff changeset
16194 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16195 @kbd{/ T}---new command for including the current thread in the
Dave Love <fx@gnu.org>
parents:
diff changeset
16196 limit.
Dave Love <fx@gnu.org>
parents:
diff changeset
16197
Dave Love <fx@gnu.org>
parents:
diff changeset
16198 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16199 @kbd{M-RET} is a new Message command for breaking cited text.
Dave Love <fx@gnu.org>
parents:
diff changeset
16200
Dave Love <fx@gnu.org>
parents:
diff changeset
16201 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16202 @samp{\\1}-expressions are now valid in @code{nnmail-split-methods}.
Dave Love <fx@gnu.org>
parents:
diff changeset
16203
Dave Love <fx@gnu.org>
parents:
diff changeset
16204 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16205 The @code{custom-face-lookup} function has been removed.
Dave Love <fx@gnu.org>
parents:
diff changeset
16206 If you used this function in your initialization files, you must
Dave Love <fx@gnu.org>
parents:
diff changeset
16207 rewrite them to use @code{face-spec-set} instead.
Dave Love <fx@gnu.org>
parents:
diff changeset
16208
Dave Love <fx@gnu.org>
parents:
diff changeset
16209 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16210 Canceling now uses the current select method. Symbolic prefix
Dave Love <fx@gnu.org>
parents:
diff changeset
16211 @kbd{a} forces normal posting method.
Dave Love <fx@gnu.org>
parents:
diff changeset
16212
Dave Love <fx@gnu.org>
parents:
diff changeset
16213 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16214 New command to translate M******** sm*rtq**t*s into proper
Dave Love <fx@gnu.org>
parents:
diff changeset
16215 text---@kbd{W d}.
Dave Love <fx@gnu.org>
parents:
diff changeset
16216
Dave Love <fx@gnu.org>
parents:
diff changeset
16217 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16218 For easier debugging of @code{nntp}, you can set
Dave Love <fx@gnu.org>
parents:
diff changeset
16219 @code{nntp-record-commands} to a non-@code{nil} value.
Dave Love <fx@gnu.org>
parents:
diff changeset
16220
Dave Love <fx@gnu.org>
parents:
diff changeset
16221 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16222 @code{nntp} now uses @file{~/.authinfo}, a @file{.netrc}-like file, for
Dave Love <fx@gnu.org>
parents:
diff changeset
16223 controlling where and how to send @sc{authinfo} to @sc{nntp} servers.
Dave Love <fx@gnu.org>
parents:
diff changeset
16224
Dave Love <fx@gnu.org>
parents:
diff changeset
16225 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16226 A command for editing group parameters from the summary buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
16227 has been added.
Dave Love <fx@gnu.org>
parents:
diff changeset
16228
Dave Love <fx@gnu.org>
parents:
diff changeset
16229 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16230 A history of where mails have been split is available.
Dave Love <fx@gnu.org>
parents:
diff changeset
16231
Dave Love <fx@gnu.org>
parents:
diff changeset
16232 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16233 A new article date command has been added---@code{article-date-iso8601}.
Dave Love <fx@gnu.org>
parents:
diff changeset
16234
Dave Love <fx@gnu.org>
parents:
diff changeset
16235 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16236 Subjects can be simplified when threading by setting
Dave Love <fx@gnu.org>
parents:
diff changeset
16237 @code{gnus-score-thread-simplify}.
Dave Love <fx@gnu.org>
parents:
diff changeset
16238
Dave Love <fx@gnu.org>
parents:
diff changeset
16239 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16240 A new function for citing in Message has been
Dave Love <fx@gnu.org>
parents:
diff changeset
16241 added---@code{message-cite-original-without-signature}.
Dave Love <fx@gnu.org>
parents:
diff changeset
16242
Dave Love <fx@gnu.org>
parents:
diff changeset
16243 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16244 @code{article-strip-all-blank-lines}---new article command.
Dave Love <fx@gnu.org>
parents:
diff changeset
16245
Dave Love <fx@gnu.org>
parents:
diff changeset
16246 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16247 A new Message command to kill to the end of the article has
Dave Love <fx@gnu.org>
parents:
diff changeset
16248 been added.
Dave Love <fx@gnu.org>
parents:
diff changeset
16249
Dave Love <fx@gnu.org>
parents:
diff changeset
16250 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16251 A minimum adaptive score can be specified by using the
Dave Love <fx@gnu.org>
parents:
diff changeset
16252 @code{gnus-adaptive-word-minimum} variable.
Dave Love <fx@gnu.org>
parents:
diff changeset
16253
Dave Love <fx@gnu.org>
parents:
diff changeset
16254 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16255 The "lapsed date" article header can be kept continually
Dave Love <fx@gnu.org>
parents:
diff changeset
16256 updated by the @code{gnus-start-date-timer} command.
Dave Love <fx@gnu.org>
parents:
diff changeset
16257
Dave Love <fx@gnu.org>
parents:
diff changeset
16258 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16259 Web listserv archives can be read with the @code{nnlistserv} backend.
Dave Love <fx@gnu.org>
parents:
diff changeset
16260
Dave Love <fx@gnu.org>
parents:
diff changeset
16261 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16262 Old dejanews archives can now be read by @code{nnweb}.
Dave Love <fx@gnu.org>
parents:
diff changeset
16263
Dave Love <fx@gnu.org>
parents:
diff changeset
16264 @end itemize
Dave Love <fx@gnu.org>
parents:
diff changeset
16265
Dave Love <fx@gnu.org>
parents:
diff changeset
16266
Dave Love <fx@gnu.org>
parents:
diff changeset
16267 @node Newest Features
Dave Love <fx@gnu.org>
parents:
diff changeset
16268 @subsection Newest Features
Dave Love <fx@gnu.org>
parents:
diff changeset
16269 @cindex todo
Dave Love <fx@gnu.org>
parents:
diff changeset
16270
Dave Love <fx@gnu.org>
parents:
diff changeset
16271 Also known as the @dfn{todo list}. Sure to be implemented before the
Dave Love <fx@gnu.org>
parents:
diff changeset
16272 next millennium.
Dave Love <fx@gnu.org>
parents:
diff changeset
16273
Dave Love <fx@gnu.org>
parents:
diff changeset
16274 Be afraid. Be very afraid.
Dave Love <fx@gnu.org>
parents:
diff changeset
16275
Dave Love <fx@gnu.org>
parents:
diff changeset
16276 (That a feature appears in this list doesn't necessarily mean that I've
Dave Love <fx@gnu.org>
parents:
diff changeset
16277 decided to actually implement it. It just means that I think it sounds
Dave Love <fx@gnu.org>
parents:
diff changeset
16278 interesting.)
Dave Love <fx@gnu.org>
parents:
diff changeset
16279
Dave Love <fx@gnu.org>
parents:
diff changeset
16280 (Yes, this is the actual, up-to-the-second todo list.)
Dave Love <fx@gnu.org>
parents:
diff changeset
16281
Dave Love <fx@gnu.org>
parents:
diff changeset
16282 @itemize @bullet
Dave Love <fx@gnu.org>
parents:
diff changeset
16283
Dave Love <fx@gnu.org>
parents:
diff changeset
16284 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16285 Native @sc{mime} support is something that should be done.
Dave Love <fx@gnu.org>
parents:
diff changeset
16286
Dave Love <fx@gnu.org>
parents:
diff changeset
16287 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16288 Really do unbinhexing.
Dave Love <fx@gnu.org>
parents:
diff changeset
16289
Dave Love <fx@gnu.org>
parents:
diff changeset
16290 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16291 I would like the zombie-page to contain an URL to the source of the
Dave Love <fx@gnu.org>
parents:
diff changeset
16292 latest version of gnus or some explanation on where to find it.
Dave Love <fx@gnu.org>
parents:
diff changeset
16293
Dave Love <fx@gnu.org>
parents:
diff changeset
16294 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16295 A way to continue editing the latest Message composition.
Dave Love <fx@gnu.org>
parents:
diff changeset
16296
Dave Love <fx@gnu.org>
parents:
diff changeset
16297 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16298 http://www.sonicnet.com/feature/ari3/
Dave Love <fx@gnu.org>
parents:
diff changeset
16299
Dave Love <fx@gnu.org>
parents:
diff changeset
16300 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16301 facep is not declared.
Dave Love <fx@gnu.org>
parents:
diff changeset
16302
Dave Love <fx@gnu.org>
parents:
diff changeset
16303 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16304 Include a section in the manual on why the number of articles
Dave Love <fx@gnu.org>
parents:
diff changeset
16305 isn't the same in the group buffer and on the SPC prompt.
Dave Love <fx@gnu.org>
parents:
diff changeset
16306
Dave Love <fx@gnu.org>
parents:
diff changeset
16307 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16308 Interacting with rmail fcc isn't easy.
Dave Love <fx@gnu.org>
parents:
diff changeset
16309
Dave Love <fx@gnu.org>
parents:
diff changeset
16310 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16311 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
16312 Hypermail:
Dave Love <fx@gnu.org>
parents:
diff changeset
16313 <URL:http://www.falch.no/people/pepper/DSSSL-Lite/archives/>
Dave Love <fx@gnu.org>
parents:
diff changeset
16314 <URL:http://www.eit.com/software/hypermail/hypermail.html>
Dave Love <fx@gnu.org>
parents:
diff changeset
16315 <URL:http://homer.ncm.com/>
Dave Love <fx@gnu.org>
parents:
diff changeset
16316 <URL:http://www.yahoo.com/Computers_and_Internet/Internet/World_Wide_Web/HTML_Converters/>
Dave Love <fx@gnu.org>
parents:
diff changeset
16317 http://www.uwsg.indiana.edu/hypermail/linux/kernel/9610/index.html
Dave Love <fx@gnu.org>
parents:
diff changeset
16318 <URL:http://union.ncsa.uiuc.edu/HyperNews/get/www/html/converters.html>
Dave Love <fx@gnu.org>
parents:
diff changeset
16319 http://www.miranova.com/gnus-list/
Dave Love <fx@gnu.org>
parents:
diff changeset
16320
Dave Love <fx@gnu.org>
parents:
diff changeset
16321 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
16322
Dave Love <fx@gnu.org>
parents:
diff changeset
16323 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16324 @samp{^-- } is made into - in LaTeX.
Dave Love <fx@gnu.org>
parents:
diff changeset
16325
Dave Love <fx@gnu.org>
parents:
diff changeset
16326 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16327 gnus-kill is much slower than it was in GNUS 4.1.3.
Dave Love <fx@gnu.org>
parents:
diff changeset
16328
Dave Love <fx@gnu.org>
parents:
diff changeset
16329 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16330 when expunging articles on low score, the sparse nodes keep hanging on?
Dave Love <fx@gnu.org>
parents:
diff changeset
16331 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16332 starting the first time seems to hang Gnus on some systems. Does
Dave Love <fx@gnu.org>
parents:
diff changeset
16333 NEWGROUPS answer too fast?
Dave Love <fx@gnu.org>
parents:
diff changeset
16334 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16335 nndir doesn't read gzipped files.
Dave Love <fx@gnu.org>
parents:
diff changeset
16336 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16337 FAQ doesn't have an up node?
Dave Love <fx@gnu.org>
parents:
diff changeset
16338 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16339 when moving mail from a procmail spool to the crash-box,
Dave Love <fx@gnu.org>
parents:
diff changeset
16340 the crash-box is only appropriate to one specific group.
Dave Love <fx@gnu.org>
parents:
diff changeset
16341 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16342 `t' `t' makes X-Faces disappear.
Dave Love <fx@gnu.org>
parents:
diff changeset
16343 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16344 nnmh-be-safe means that crossposted articles will
Dave Love <fx@gnu.org>
parents:
diff changeset
16345 be marked as unread.
Dave Love <fx@gnu.org>
parents:
diff changeset
16346 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16347 Orphan score entries don't show on "V t" score trace
Dave Love <fx@gnu.org>
parents:
diff changeset
16348 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16349 when clearing out data, the cache data should also be reset.
Dave Love <fx@gnu.org>
parents:
diff changeset
16350 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16351 rewrite gnus-summary-limit-children to be non-recursive
Dave Love <fx@gnu.org>
parents:
diff changeset
16352 to avoid exceeding lisp nesting on huge groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
16353 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16354 expunged articles are counted when computing scores.
Dave Love <fx@gnu.org>
parents:
diff changeset
16355 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16356 implement gnus-batch-brew-soup
Dave Love <fx@gnu.org>
parents:
diff changeset
16357 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16358 ticked articles aren't easy to read in pick mode -- `n' and
Dave Love <fx@gnu.org>
parents:
diff changeset
16359 stuff just skips past them. Read articles are the same.
Dave Love <fx@gnu.org>
parents:
diff changeset
16360 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16361 topics that contain just groups with ticked
Dave Love <fx@gnu.org>
parents:
diff changeset
16362 articles aren't displayed.
Dave Love <fx@gnu.org>
parents:
diff changeset
16363 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16364 nndoc should always allocate unique Message-IDs.
Dave Love <fx@gnu.org>
parents:
diff changeset
16365 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16366 If there are mail groups the first time you use Gnus, Gnus'll
Dave Love <fx@gnu.org>
parents:
diff changeset
16367 make the mail groups killed.
Dave Love <fx@gnu.org>
parents:
diff changeset
16368 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16369 no "no news is good news" when using topics.
Dave Love <fx@gnu.org>
parents:
diff changeset
16370 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16371 when doing crosspost marking, the cache has to be consulted
Dave Love <fx@gnu.org>
parents:
diff changeset
16372 and articles have to be removed.
Dave Love <fx@gnu.org>
parents:
diff changeset
16373 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16374 nnweb should fetch complete articles when they are split into several
Dave Love <fx@gnu.org>
parents:
diff changeset
16375 parts.
Dave Love <fx@gnu.org>
parents:
diff changeset
16376 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16377 scoring on head immediate doesn't work.
Dave Love <fx@gnu.org>
parents:
diff changeset
16378 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16379 finding short score file names takes forever.
Dave Love <fx@gnu.org>
parents:
diff changeset
16380 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16381 canceling articles in foreign groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
16382 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16383 nntp-open-rlogin no longer works.
Dave Love <fx@gnu.org>
parents:
diff changeset
16384 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16385 C-u C-x C-s (Summary) switches to the group buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
16386 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16387 move nnmail-split-history out to the backends.
Dave Love <fx@gnu.org>
parents:
diff changeset
16388 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16389 nnweb doesn't work properly.
Dave Love <fx@gnu.org>
parents:
diff changeset
16390 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16391 using a virtual server name as `gnus-select-method' doesn't work?
Dave Love <fx@gnu.org>
parents:
diff changeset
16392 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16393 when killing/yanking a group from one topic to another in a slave, the
Dave Love <fx@gnu.org>
parents:
diff changeset
16394 master will yank it first to one topic and then add it to another.
Dave Love <fx@gnu.org>
parents:
diff changeset
16395 Perhaps.
Dave Love <fx@gnu.org>
parents:
diff changeset
16396
Dave Love <fx@gnu.org>
parents:
diff changeset
16397 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16398 warn user about `=' redirection of a group in the active file?
Dave Love <fx@gnu.org>
parents:
diff changeset
16399 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16400 really unbinhex binhex files.
Dave Love <fx@gnu.org>
parents:
diff changeset
16401 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16402 take over the XEmacs menubar and offer a toggle between the XEmacs
Dave Love <fx@gnu.org>
parents:
diff changeset
16403 bar and the Gnus bar.
Dave Love <fx@gnu.org>
parents:
diff changeset
16404 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16405 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
16406 push active file and NOV file parsing down into C code.
Dave Love <fx@gnu.org>
parents:
diff changeset
16407 `(canonize-message-id id)'
Dave Love <fx@gnu.org>
parents:
diff changeset
16408 `(mail-parent-message-id references n)'
Dave Love <fx@gnu.org>
parents:
diff changeset
16409 `(parse-news-nov-line &optional dependency-hashtb)'
Dave Love <fx@gnu.org>
parents:
diff changeset
16410 `(parse-news-nov-region beg end &optional dependency-hashtb fullp)'
Dave Love <fx@gnu.org>
parents:
diff changeset
16411 `(parse-news-active-region beg end hashtb)'
Dave Love <fx@gnu.org>
parents:
diff changeset
16412
Dave Love <fx@gnu.org>
parents:
diff changeset
16413 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
16414
Dave Love <fx@gnu.org>
parents:
diff changeset
16415 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16416 nnml .overview directory with splits.
Dave Love <fx@gnu.org>
parents:
diff changeset
16417 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16418 asynchronous cache
Dave Love <fx@gnu.org>
parents:
diff changeset
16419 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16420 postponed commands.
Dave Love <fx@gnu.org>
parents:
diff changeset
16421 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16422 the selected article show have its Subject displayed in its summary line.
Dave Love <fx@gnu.org>
parents:
diff changeset
16423 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16424 when entering groups, get the real number of unread articles from
Dave Love <fx@gnu.org>
parents:
diff changeset
16425 the server?
Dave Love <fx@gnu.org>
parents:
diff changeset
16426 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16427 sort after gathering threads -- make false roots have the
Dave Love <fx@gnu.org>
parents:
diff changeset
16428 headers of the oldest orphan with a 0 article number?
Dave Love <fx@gnu.org>
parents:
diff changeset
16429 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16430 nndoc groups should inherit the score files of their parents? Also
Dave Love <fx@gnu.org>
parents:
diff changeset
16431 inherit copy prompts and save files.
Dave Love <fx@gnu.org>
parents:
diff changeset
16432 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16433 command to start up Gnus (if not running) and enter a mail mode buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
16434 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16435 allow editing the group description from the group buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
16436 for backends that support that.
Dave Love <fx@gnu.org>
parents:
diff changeset
16437 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16438 gnus-hide,show-all-topics
Dave Love <fx@gnu.org>
parents:
diff changeset
16439 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16440 groups and sub-topics should be allowed to mingle inside each topic,
Dave Love <fx@gnu.org>
parents:
diff changeset
16441 and not just list all subtopics at the end.
Dave Love <fx@gnu.org>
parents:
diff changeset
16442 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16443 a command to remove all read articles that are not needed to connect
Dave Love <fx@gnu.org>
parents:
diff changeset
16444 threads -- `gnus-summary-limit-to-sparse-unread'?
Dave Love <fx@gnu.org>
parents:
diff changeset
16445 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16446 a variable to turn off limiting/cutting of threads in the tree buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
16447 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16448 a variable to limit how many files are uudecoded.
Dave Love <fx@gnu.org>
parents:
diff changeset
16449 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16450 add zombie groups to a special "New Groups" topic.
Dave Love <fx@gnu.org>
parents:
diff changeset
16451 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16452 server mode command: close/open all connections
Dave Love <fx@gnu.org>
parents:
diff changeset
16453 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16454 put a file date in gnus-score-alist and check whether the file
Dave Love <fx@gnu.org>
parents:
diff changeset
16455 has been changed before using it.
Dave Love <fx@gnu.org>
parents:
diff changeset
16456 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16457 on exit from a digest group, go to the next article in the parent group.
Dave Love <fx@gnu.org>
parents:
diff changeset
16458 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16459 hide (sub)threads with low score.
Dave Love <fx@gnu.org>
parents:
diff changeset
16460 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16461 when expiring, remove all marks from expired articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
16462 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16463 gnus-summary-limit-to-body
Dave Love <fx@gnu.org>
parents:
diff changeset
16464 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16465 a regexp alist that says what level groups are to be subscribed
Dave Love <fx@gnu.org>
parents:
diff changeset
16466 on. Eg. -- `(("nnml:" . 1))'.
Dave Love <fx@gnu.org>
parents:
diff changeset
16467 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16468 easier interface to nnkiboze to create ephemeral groups that
Dave Love <fx@gnu.org>
parents:
diff changeset
16469 contain groups that match a regexp.
Dave Love <fx@gnu.org>
parents:
diff changeset
16470 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16471 allow newlines in <URL:> urls, but remove them before using
Dave Love <fx@gnu.org>
parents:
diff changeset
16472 the URL.
Dave Love <fx@gnu.org>
parents:
diff changeset
16473 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16474 If there is no From line, the mail backends should fudge one from the
Dave Love <fx@gnu.org>
parents:
diff changeset
16475 "From " line.
Dave Love <fx@gnu.org>
parents:
diff changeset
16476 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16477 fuzzy simplifying should strip all non-alpha-numerical info
Dave Love <fx@gnu.org>
parents:
diff changeset
16478 from subject lines.
Dave Love <fx@gnu.org>
parents:
diff changeset
16479 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16480 gnus-soup-brew-soup-with-high-scores.
Dave Love <fx@gnu.org>
parents:
diff changeset
16481 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16482 nntp-ping-before-connect
Dave Love <fx@gnu.org>
parents:
diff changeset
16483 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16484 command to check whether NOV is evil. "list overview.fmt".
Dave Love <fx@gnu.org>
parents:
diff changeset
16485 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16486 when entering a group, Gnus should look through the score
Dave Love <fx@gnu.org>
parents:
diff changeset
16487 files very early for `local' atoms and set those local variables.
Dave Love <fx@gnu.org>
parents:
diff changeset
16488 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16489 message annotations.
Dave Love <fx@gnu.org>
parents:
diff changeset
16490 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16491 topics are always yanked before groups, and that's not good.
Dave Love <fx@gnu.org>
parents:
diff changeset
16492 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16493 (set-extent-property extent 'help-echo "String to display in minibuf")
Dave Love <fx@gnu.org>
parents:
diff changeset
16494 to display help in the minibuffer on buttons under XEmacs.
Dave Love <fx@gnu.org>
parents:
diff changeset
16495 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16496 allow group line format spec to say how many articles there
Dave Love <fx@gnu.org>
parents:
diff changeset
16497 are in the cache.
Dave Love <fx@gnu.org>
parents:
diff changeset
16498 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16499 AUTHINFO GENERIC
Dave Love <fx@gnu.org>
parents:
diff changeset
16500 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16501 support qmail maildir spools
Dave Love <fx@gnu.org>
parents:
diff changeset
16502 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16503 `run-with-idle-timer' in gnus-demon.
Dave Love <fx@gnu.org>
parents:
diff changeset
16504 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16505 stop using invisible text properties and start using overlays instead
Dave Love <fx@gnu.org>
parents:
diff changeset
16506 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16507 C-c C-f C-e to add an Expires header.
Dave Love <fx@gnu.org>
parents:
diff changeset
16508 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16509 go from one group to the next; everything is expunged; go to the
Dave Love <fx@gnu.org>
parents:
diff changeset
16510 next group instead of going to the group buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
16511 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16512 gnus-renumber-cache -- to renumber the cache using "low" numbers.
Dave Love <fx@gnu.org>
parents:
diff changeset
16513 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16514 record topic changes in the dribble buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
16515 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16516 `nnfolder-generate-active-file' should look at the folders it
Dave Love <fx@gnu.org>
parents:
diff changeset
16517 finds and generate proper active ranges.
Dave Love <fx@gnu.org>
parents:
diff changeset
16518 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16519 nneething-look-in-files-for-article-heads variable to control
Dave Love <fx@gnu.org>
parents:
diff changeset
16520 whether nneething should sniff all files in the directories.
Dave Love <fx@gnu.org>
parents:
diff changeset
16521 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16522 gnus-fetch-article -- start Gnus, enter group, display article
Dave Love <fx@gnu.org>
parents:
diff changeset
16523 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16524 gnus-dont-move-articles-to-same-group variable when respooling.
Dave Love <fx@gnu.org>
parents:
diff changeset
16525 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16526 when messages are crossposted between several auto-expirable groups,
Dave Love <fx@gnu.org>
parents:
diff changeset
16527 articles aren't properly marked as expirable.
Dave Love <fx@gnu.org>
parents:
diff changeset
16528 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16529 nneething should allow deletion/moving.
Dave Love <fx@gnu.org>
parents:
diff changeset
16530 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16531 TAB on the last button should go to the first button.
Dave Love <fx@gnu.org>
parents:
diff changeset
16532 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16533 if the car of an element in `mail-split-methods' is a function,
Dave Love <fx@gnu.org>
parents:
diff changeset
16534 and the function returns non-nil, use that as the name of the group(s) to
Dave Love <fx@gnu.org>
parents:
diff changeset
16535 save mail in.
Dave Love <fx@gnu.org>
parents:
diff changeset
16536 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16537 command for listing all score files that have been applied.
Dave Love <fx@gnu.org>
parents:
diff changeset
16538 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16539 a command in the article buffer to return to `summary' config.
Dave Love <fx@gnu.org>
parents:
diff changeset
16540 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16541 `gnus-always-post-using-current-server' -- variable to override
Dave Love <fx@gnu.org>
parents:
diff changeset
16542 `C-c C-c' when posting.
Dave Love <fx@gnu.org>
parents:
diff changeset
16543 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16544 nnmail-group-spool-alist -- says where each group should use
Dave Love <fx@gnu.org>
parents:
diff changeset
16545 as a spool file.
Dave Love <fx@gnu.org>
parents:
diff changeset
16546 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16547 when an article is crossposted to an auto-expirable group, the article
Dave Love <fx@gnu.org>
parents:
diff changeset
16548 should be marker as expirable.
Dave Love <fx@gnu.org>
parents:
diff changeset
16549 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16550 article mode command/menu for "send region as URL to browser".
Dave Love <fx@gnu.org>
parents:
diff changeset
16551 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16552 on errors, jump to info nodes that explain the error. For instance,
Dave Love <fx@gnu.org>
parents:
diff changeset
16553 on invalid From headers, or on error messages from the nntp server.
Dave Love <fx@gnu.org>
parents:
diff changeset
16554 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16555 when gathering threads, make the article that has no "Re: " the parent.
Dave Love <fx@gnu.org>
parents:
diff changeset
16556 Also consult Date headers.
Dave Love <fx@gnu.org>
parents:
diff changeset
16557 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16558 a token in splits to call shrink-window-if-larger-than-buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
16559 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16560 `1 0 A M' to do matches on the active hashtb.
Dave Love <fx@gnu.org>
parents:
diff changeset
16561 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16562 duplicates -- command to remove Gnus-Warning header, use the read
Dave Love <fx@gnu.org>
parents:
diff changeset
16563 Message-ID, delete the "original".
Dave Love <fx@gnu.org>
parents:
diff changeset
16564 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16565 when replying to several messages at once, put the "other" message-ids
Dave Love <fx@gnu.org>
parents:
diff changeset
16566 into a See-Also header.
Dave Love <fx@gnu.org>
parents:
diff changeset
16567 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16568 support setext: URL:http://www.bsdi.com/setext/
Dave Love <fx@gnu.org>
parents:
diff changeset
16569 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16570 support ProleText: <URL:http://proletext.clari.net/prole/proletext.html>
Dave Love <fx@gnu.org>
parents:
diff changeset
16571 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16572 when browsing a foreign server, the groups that are already subscribed
Dave Love <fx@gnu.org>
parents:
diff changeset
16573 should be listed as such and not as "K".
Dave Love <fx@gnu.org>
parents:
diff changeset
16574 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16575 generate font names dynamically.
Dave Love <fx@gnu.org>
parents:
diff changeset
16576 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16577 score file mode auto-alist.
Dave Love <fx@gnu.org>
parents:
diff changeset
16578 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16579 allow nndoc to change/add/delete things from documents. Implement
Dave Love <fx@gnu.org>
parents:
diff changeset
16580 methods for each format for adding an article to the document.
Dave Love <fx@gnu.org>
parents:
diff changeset
16581 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16582 `gnus-fetch-old-headers' `all' value to incorporate
Dave Love <fx@gnu.org>
parents:
diff changeset
16583 absolutely all headers there is.
Dave Love <fx@gnu.org>
parents:
diff changeset
16584 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16585 function like `|', but concatenate all marked articles
Dave Love <fx@gnu.org>
parents:
diff changeset
16586 and pipe them to the process.
Dave Love <fx@gnu.org>
parents:
diff changeset
16587 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16588 cache the list of killed (or active) groups in a separate file. Update
Dave Love <fx@gnu.org>
parents:
diff changeset
16589 the file whenever we read the active file or the list
Dave Love <fx@gnu.org>
parents:
diff changeset
16590 of killed groups in the .eld file reaches a certain length.
Dave Love <fx@gnu.org>
parents:
diff changeset
16591 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16592 function for starting to edit a file to put into
Dave Love <fx@gnu.org>
parents:
diff changeset
16593 the current mail group.
Dave Love <fx@gnu.org>
parents:
diff changeset
16594 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16595 score-find-trace should display the total score of the article.
Dave Love <fx@gnu.org>
parents:
diff changeset
16596 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16597 "ghettozie" -- score on Xref header and nix it out after using it
Dave Love <fx@gnu.org>
parents:
diff changeset
16598 to avoid marking as read in other groups it has been crossposted to.
Dave Love <fx@gnu.org>
parents:
diff changeset
16599 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16600 look at procmail splitting. The backends should create
Dave Love <fx@gnu.org>
parents:
diff changeset
16601 the groups automatically if a spool file exists for that group.
Dave Love <fx@gnu.org>
parents:
diff changeset
16602 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16603 function for backends to register themselves with Gnus.
Dave Love <fx@gnu.org>
parents:
diff changeset
16604 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16605 when replying to several process-marked articles,
Dave Love <fx@gnu.org>
parents:
diff changeset
16606 have all the From end up in Cc headers? Variable to toggle.
Dave Love <fx@gnu.org>
parents:
diff changeset
16607 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16608 command to delete a crossposted mail article from all
Dave Love <fx@gnu.org>
parents:
diff changeset
16609 groups it has been mailed to.
Dave Love <fx@gnu.org>
parents:
diff changeset
16610 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16611 `B c' and `B m' should be crosspost aware.
Dave Love <fx@gnu.org>
parents:
diff changeset
16612 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16613 hide-pgp should also hide PGP public key blocks.
Dave Love <fx@gnu.org>
parents:
diff changeset
16614 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16615 Command in the group buffer to respool process-marked groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
16616 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16617 `gnus-summary-find-matching' should accept
Dave Love <fx@gnu.org>
parents:
diff changeset
16618 pseudo-"headers" like "body", "head" and "all"
Dave Love <fx@gnu.org>
parents:
diff changeset
16619 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16620 When buttifying <URL: > things, all white space (including
Dave Love <fx@gnu.org>
parents:
diff changeset
16621 newlines) should be ignored.
Dave Love <fx@gnu.org>
parents:
diff changeset
16622 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16623 Process-marking all groups in a topic should process-mark
Dave Love <fx@gnu.org>
parents:
diff changeset
16624 groups in subtopics as well.
Dave Love <fx@gnu.org>
parents:
diff changeset
16625 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16626 Add non-native groups to the list of killed groups when killing them.
Dave Love <fx@gnu.org>
parents:
diff changeset
16627 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16628 nntp-suggest-kewl-config to probe the nntp server and suggest
Dave Love <fx@gnu.org>
parents:
diff changeset
16629 variable settings.
Dave Love <fx@gnu.org>
parents:
diff changeset
16630 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16631 add edit and forward secondary marks.
Dave Love <fx@gnu.org>
parents:
diff changeset
16632 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16633 nnml shouldn't visit its .overview files.
Dave Love <fx@gnu.org>
parents:
diff changeset
16634 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16635 allow customizing sorting within gathered threads.
Dave Love <fx@gnu.org>
parents:
diff changeset
16636 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16637 `B q' shouldn't select the current article.
Dave Love <fx@gnu.org>
parents:
diff changeset
16638 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16639 nnmbox should support a newsgroups file for descriptions.
Dave Love <fx@gnu.org>
parents:
diff changeset
16640 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16641 allow fetching mail from several pop servers.
Dave Love <fx@gnu.org>
parents:
diff changeset
16642 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16643 Be able to specify whether the saving commands save the original
Dave Love <fx@gnu.org>
parents:
diff changeset
16644 or the formatted article.
Dave Love <fx@gnu.org>
parents:
diff changeset
16645 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16646 a command to reparent with the child process-marked (cf. `T ^'.).
Dave Love <fx@gnu.org>
parents:
diff changeset
16647 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16648 I think the possibility to send a password with nntp-open-rlogin
Dave Love <fx@gnu.org>
parents:
diff changeset
16649 should be a feature in Red Gnus.
Dave Love <fx@gnu.org>
parents:
diff changeset
16650 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16651 The `Z n' command should be possible to execute from a mouse click.
Dave Love <fx@gnu.org>
parents:
diff changeset
16652 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16653 more limiting functions -- date, etc.
Dave Love <fx@gnu.org>
parents:
diff changeset
16654 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16655 be able to limit on a random header; on body; using reverse matches.
Dave Love <fx@gnu.org>
parents:
diff changeset
16656 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16657 a group parameter (`absofucking-total-expiry') that will make Gnus expire
Dave Love <fx@gnu.org>
parents:
diff changeset
16658 even unread articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
16659 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16660 a command to print the article buffer as postscript.
Dave Love <fx@gnu.org>
parents:
diff changeset
16661 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16662 variable to disable password fetching when opening by nntp-open-telnet.
Dave Love <fx@gnu.org>
parents:
diff changeset
16663 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16664 manual: more example servers -- nntp with rlogin, telnet
Dave Love <fx@gnu.org>
parents:
diff changeset
16665 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16666 checking for bogus groups should clean topic alists as well.
Dave Love <fx@gnu.org>
parents:
diff changeset
16667 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16668 canceling articles in foreign groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
16669 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16670 article number in folded topics isn't properly updated by
Dave Love <fx@gnu.org>
parents:
diff changeset
16671 Xref handling.
Dave Love <fx@gnu.org>
parents:
diff changeset
16672 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16673 Movement in the group buffer to the next unread group should go to the
Dave Love <fx@gnu.org>
parents:
diff changeset
16674 next closed topic with unread messages if no group can be found.
Dave Love <fx@gnu.org>
parents:
diff changeset
16675 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16676 Extensive info pages generated on the fly with help everywhere --
Dave Love <fx@gnu.org>
parents:
diff changeset
16677 in the "*Gnus edit*" buffers, for instance.
Dave Love <fx@gnu.org>
parents:
diff changeset
16678 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16679 Topic movement commands -- like thread movement. Up, down, forward, next.
Dave Love <fx@gnu.org>
parents:
diff changeset
16680 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16681 a way to tick/mark as read Gcc'd articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
16682 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16683 a way to say that all groups within a specific topic comes
Dave Love <fx@gnu.org>
parents:
diff changeset
16684 from a particular server? Hm.
Dave Love <fx@gnu.org>
parents:
diff changeset
16685 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16686 `gnus-article-fill-if-long-lines' -- a function to fill
Dave Love <fx@gnu.org>
parents:
diff changeset
16687 the article buffer if there are any looong lines there.
Dave Love <fx@gnu.org>
parents:
diff changeset
16688 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16689 `T h' should jump to the parent topic and fold it.
Dave Love <fx@gnu.org>
parents:
diff changeset
16690 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16691 a command to create an ephemeral nndoc group out of a file,
Dave Love <fx@gnu.org>
parents:
diff changeset
16692 and then splitting it/moving it to some other group/backend.
Dave Love <fx@gnu.org>
parents:
diff changeset
16693 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16694 a group parameter for nnkiboze groups that says that
Dave Love <fx@gnu.org>
parents:
diff changeset
16695 all kibozed articles should be entered into the cache.
Dave Love <fx@gnu.org>
parents:
diff changeset
16696 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16697 It should also probably be possible to delimit what
Dave Love <fx@gnu.org>
parents:
diff changeset
16698 `gnus-jog-cache' does -- for instance, work on just some groups, or on
Dave Love <fx@gnu.org>
parents:
diff changeset
16699 some levels, and entering just articles that have a score higher than
Dave Love <fx@gnu.org>
parents:
diff changeset
16700 a certain number.
Dave Love <fx@gnu.org>
parents:
diff changeset
16701 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16702 nnfolder should append to the folder instead of re-writing
Dave Love <fx@gnu.org>
parents:
diff changeset
16703 the entire folder to disk when accepting new messages.
Dave Love <fx@gnu.org>
parents:
diff changeset
16704 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16705 allow all backends to do the proper thing with .gz files.
Dave Love <fx@gnu.org>
parents:
diff changeset
16706 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16707 a backend for reading collections of babyl files nnbabylfolder?
Dave Love <fx@gnu.org>
parents:
diff changeset
16708 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16709 a command for making the native groups into foreign groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
16710 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16711 server mode command for clearing read marks from all groups
Dave Love <fx@gnu.org>
parents:
diff changeset
16712 from a server.
Dave Love <fx@gnu.org>
parents:
diff changeset
16713 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16714 when following up multiple articles, include all To, Cc, etc headers
Dave Love <fx@gnu.org>
parents:
diff changeset
16715 from all articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
16716 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16717 a command for deciding what the total score of the current
Dave Love <fx@gnu.org>
parents:
diff changeset
16718 thread is. Also a way to highlight based on this.
Dave Love <fx@gnu.org>
parents:
diff changeset
16719 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16720 command to show and edit group scores
Dave Love <fx@gnu.org>
parents:
diff changeset
16721 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16722 a gnus-tree-minimize-horizontal to minimize tree buffers
Dave Love <fx@gnu.org>
parents:
diff changeset
16723 horizontally.
Dave Love <fx@gnu.org>
parents:
diff changeset
16724 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16725 command to generate nnml overview file for one group.
Dave Love <fx@gnu.org>
parents:
diff changeset
16726 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16727 `C-u C-u a' -- prompt for many crossposted groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
16728 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16729 keep track of which mail groups have received new articles (in this session).
Dave Love <fx@gnu.org>
parents:
diff changeset
16730 Be able to generate a report and perhaps do some marking in the group
Dave Love <fx@gnu.org>
parents:
diff changeset
16731 buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
16732 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16733 gnus-build-sparse-threads to a number -- build only sparse threads
Dave Love <fx@gnu.org>
parents:
diff changeset
16734 that are of that length.
Dave Love <fx@gnu.org>
parents:
diff changeset
16735 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16736 have nnmh respect mh's unseen sequence in .mh_profile.
Dave Love <fx@gnu.org>
parents:
diff changeset
16737 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16738 cache the newsgroups descriptions locally.
Dave Love <fx@gnu.org>
parents:
diff changeset
16739 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16740 asynchronous posting under nntp.
Dave Love <fx@gnu.org>
parents:
diff changeset
16741 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16742 be able to control word adaptive scoring from the score files.
Dave Love <fx@gnu.org>
parents:
diff changeset
16743 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16744 a variable to make `C-c C-c' post using the "current" select method.
Dave Love <fx@gnu.org>
parents:
diff changeset
16745 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16746 `limit-exclude-low-scored-articles'.
Dave Love <fx@gnu.org>
parents:
diff changeset
16747 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16748 if `gnus-summary-show-thread' is a number, hide threads that have
Dave Love <fx@gnu.org>
parents:
diff changeset
16749 a score lower than this number.
Dave Love <fx@gnu.org>
parents:
diff changeset
16750 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16751 split newsgroup subscription variable up into "order" and "method".
Dave Love <fx@gnu.org>
parents:
diff changeset
16752 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16753 buttonize ange-ftp file names.
Dave Love <fx@gnu.org>
parents:
diff changeset
16754 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16755 a command to make a duplicate copy of the current article
Dave Love <fx@gnu.org>
parents:
diff changeset
16756 so that each copy can be edited separately.
Dave Love <fx@gnu.org>
parents:
diff changeset
16757 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16758 nnweb should allow fetching from the local nntp server.
Dave Love <fx@gnu.org>
parents:
diff changeset
16759 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16760 record the sorting done in the summary buffer so that
Dave Love <fx@gnu.org>
parents:
diff changeset
16761 it can be repeated when limiting/regenerating the buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
16762 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16763 nnml-generate-nov-databses should generate for
Dave Love <fx@gnu.org>
parents:
diff changeset
16764 all nnml servers.
Dave Love <fx@gnu.org>
parents:
diff changeset
16765 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16766 when the user does commands in the group buffer, check
Dave Love <fx@gnu.org>
parents:
diff changeset
16767 the modification time of the .newsrc.eld file and use
Dave Love <fx@gnu.org>
parents:
diff changeset
16768 ask-user-about-supersession-threat. Also warn when trying
Dave Love <fx@gnu.org>
parents:
diff changeset
16769 to save .newsrc.eld and it has changed.
Dave Love <fx@gnu.org>
parents:
diff changeset
16770 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16771 M-g on a topic will display all groups with 0 articles in
Dave Love <fx@gnu.org>
parents:
diff changeset
16772 the topic.
Dave Love <fx@gnu.org>
parents:
diff changeset
16773 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16774 command to remove all topic stuff.
Dave Love <fx@gnu.org>
parents:
diff changeset
16775 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16776 allow exploding incoming digests when reading incoming mail
Dave Love <fx@gnu.org>
parents:
diff changeset
16777 and splitting the resulting digests.
Dave Love <fx@gnu.org>
parents:
diff changeset
16778 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16779 nnsoup shouldn't set the `message-' variables.
Dave Love <fx@gnu.org>
parents:
diff changeset
16780 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16781 command to nix out all nnoo state information.
Dave Love <fx@gnu.org>
parents:
diff changeset
16782 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16783 nnmail-process-alist that calls functions if group names
Dave Love <fx@gnu.org>
parents:
diff changeset
16784 matches an alist -- before saving.
Dave Love <fx@gnu.org>
parents:
diff changeset
16785 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16786 use buffer-invisibility-spec everywhere for hiding text.
Dave Love <fx@gnu.org>
parents:
diff changeset
16787 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16788 variable to activate each group before entering them
Dave Love <fx@gnu.org>
parents:
diff changeset
16789 to get the (new) number of articles. `gnus-activate-before-entering'.
Dave Love <fx@gnu.org>
parents:
diff changeset
16790 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16791 command to fetch a Message-ID from any buffer, even
Dave Love <fx@gnu.org>
parents:
diff changeset
16792 starting Gnus first if necessary.
Dave Love <fx@gnu.org>
parents:
diff changeset
16793 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16794 when posting and checking whether a group exists or not, just
Dave Love <fx@gnu.org>
parents:
diff changeset
16795 ask the nntp server instead of relying on the active hashtb.
Dave Love <fx@gnu.org>
parents:
diff changeset
16796 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16797 buttonize the output of `C-c C-a' in an apropos-like way.
Dave Love <fx@gnu.org>
parents:
diff changeset
16798 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16799 `G p' should understand process/prefix, and allow editing
Dave Love <fx@gnu.org>
parents:
diff changeset
16800 of several groups at once.
Dave Love <fx@gnu.org>
parents:
diff changeset
16801 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16802 command to create an ephemeral nnvirtual group that
Dave Love <fx@gnu.org>
parents:
diff changeset
16803 matches some regexp(s).
Dave Love <fx@gnu.org>
parents:
diff changeset
16804 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16805 nndoc should understand "Content-Type: message/rfc822" forwarded messages.
Dave Love <fx@gnu.org>
parents:
diff changeset
16806 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16807 it should be possible to score "thread" on the From header.
Dave Love <fx@gnu.org>
parents:
diff changeset
16808 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16809 hitting RET on a "gnus-uu-archive" pseudo article should unpack it.
Dave Love <fx@gnu.org>
parents:
diff changeset
16810 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16811 `B i' should display the article at once in the summary buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
16812 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16813 remove the "*" mark at once when unticking an article.
Dave Love <fx@gnu.org>
parents:
diff changeset
16814 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16815 `M-s' should highlight the matching text.
Dave Love <fx@gnu.org>
parents:
diff changeset
16816 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16817 when checking for duplicated mails, use Resent-Message-ID if present.
Dave Love <fx@gnu.org>
parents:
diff changeset
16818 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16819 killing and yanking groups in topics should be better. If killing one copy
Dave Love <fx@gnu.org>
parents:
diff changeset
16820 of a group that exists in multiple topics, only that copy should
Dave Love <fx@gnu.org>
parents:
diff changeset
16821 be removed. Yanking should insert the copy, and yanking topics
Dave Love <fx@gnu.org>
parents:
diff changeset
16822 should be possible to be interspersed with the other yankings.
Dave Love <fx@gnu.org>
parents:
diff changeset
16823 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16824 command for enter a group just to read the cached articles. A way to say
Dave Love <fx@gnu.org>
parents:
diff changeset
16825 "ignore the nntp connection; just read from the cache."
Dave Love <fx@gnu.org>
parents:
diff changeset
16826 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16827 `X u' should decode base64 articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
16828 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16829 a way to hide all "inner" cited text, leaving just the most
Dave Love <fx@gnu.org>
parents:
diff changeset
16830 recently cited text.
Dave Love <fx@gnu.org>
parents:
diff changeset
16831 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16832 nnvirtual should be asynchronous.
Dave Love <fx@gnu.org>
parents:
diff changeset
16833 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16834 after editing an article, gnus-original-article-buffer should
Dave Love <fx@gnu.org>
parents:
diff changeset
16835 be invalidated.
Dave Love <fx@gnu.org>
parents:
diff changeset
16836 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16837 there should probably be a way to make Gnus not connect to the
Dave Love <fx@gnu.org>
parents:
diff changeset
16838 server and just read the articles in the server
Dave Love <fx@gnu.org>
parents:
diff changeset
16839 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16840 allow a `set-default' (or something) to change the default
Dave Love <fx@gnu.org>
parents:
diff changeset
16841 value of nnoo variables.
Dave Love <fx@gnu.org>
parents:
diff changeset
16842 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16843 a command to import group infos from a .newsrc.eld file.
Dave Love <fx@gnu.org>
parents:
diff changeset
16844 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16845 groups from secondary servers have the entire select method
Dave Love <fx@gnu.org>
parents:
diff changeset
16846 listed in each group info.
Dave Love <fx@gnu.org>
parents:
diff changeset
16847 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16848 a command for just switching from the summary buffer to the group
Dave Love <fx@gnu.org>
parents:
diff changeset
16849 buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
16850 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16851 a way to specify that some incoming mail washing functions
Dave Love <fx@gnu.org>
parents:
diff changeset
16852 should only be applied to some groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
16853 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16854 Message `C-f C-t' should ask the user whether to heed
Dave Love <fx@gnu.org>
parents:
diff changeset
16855 mail-copies-to: never.
Dave Love <fx@gnu.org>
parents:
diff changeset
16856 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16857 new group parameter -- `post-to-server' that says to post
Dave Love <fx@gnu.org>
parents:
diff changeset
16858 using the current server. Also a variable to do the same.
Dave Love <fx@gnu.org>
parents:
diff changeset
16859 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16860 the slave dribble files should autosave to the slave file names.
Dave Love <fx@gnu.org>
parents:
diff changeset
16861 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16862 a group parameter that says what articles to display on group entry, based
Dave Love <fx@gnu.org>
parents:
diff changeset
16863 on article marks.
Dave Love <fx@gnu.org>
parents:
diff changeset
16864 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16865 a way to visually distinguish slave Gnusae from masters. (Whip instead
Dave Love <fx@gnu.org>
parents:
diff changeset
16866 of normal logo?)
Dave Love <fx@gnu.org>
parents:
diff changeset
16867 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16868 Use DJ Bernstein "From " quoting/dequoting, where applicable.
Dave Love <fx@gnu.org>
parents:
diff changeset
16869 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16870 Why is hide-citation-maybe and hide-citation different? Also
Dave Love <fx@gnu.org>
parents:
diff changeset
16871 clear up info.
Dave Love <fx@gnu.org>
parents:
diff changeset
16872 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16873 group user-defined meta-parameters.
Dave Love <fx@gnu.org>
parents:
diff changeset
16874
Dave Love <fx@gnu.org>
parents:
diff changeset
16875
Dave Love <fx@gnu.org>
parents:
diff changeset
16876
Dave Love <fx@gnu.org>
parents:
diff changeset
16877 From: John Griffith <griffith@@sfs.nphil.uni-tuebingen.de>
Dave Love <fx@gnu.org>
parents:
diff changeset
16878 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16879 I like the option for trying to retrieve the FAQ for a group and I was
Dave Love <fx@gnu.org>
parents:
diff changeset
16880 thinking it would be great if for those newsgroups that had archives
Dave Love <fx@gnu.org>
parents:
diff changeset
16881 you could also try to read the archive for that group. Part of the
Dave Love <fx@gnu.org>
parents:
diff changeset
16882 problem is that archives are spread all over the net, unlike FAQs.
Dave Love <fx@gnu.org>
parents:
diff changeset
16883 What would be best I suppose is to find the one closest to your site.
Dave Love <fx@gnu.org>
parents:
diff changeset
16884
Dave Love <fx@gnu.org>
parents:
diff changeset
16885 In any case, there is a list of general news group archives at @*
Dave Love <fx@gnu.org>
parents:
diff changeset
16886 ftp://ftp.neosoft.com/pub/users/claird/news.lists/newsgroup_archives.html
Dave Love <fx@gnu.org>
parents:
diff changeset
16887
Dave Love <fx@gnu.org>
parents:
diff changeset
16888
Dave Love <fx@gnu.org>
parents:
diff changeset
16889
Dave Love <fx@gnu.org>
parents:
diff changeset
16890
Dave Love <fx@gnu.org>
parents:
diff changeset
16891 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16892 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
16893 From: Jason L Tibbitts III <tibbs@@hpc.uh.edu>
Dave Love <fx@gnu.org>
parents:
diff changeset
16894 (add-hook 'gnus-select-group-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
16895 (lambda ()
Dave Love <fx@gnu.org>
parents:
diff changeset
16896 (gnus-group-add-parameter group
Dave Love <fx@gnu.org>
parents:
diff changeset
16897 (cons 'gnus-group-date-last-entered (list (current-time-string))))))
Dave Love <fx@gnu.org>
parents:
diff changeset
16898
Dave Love <fx@gnu.org>
parents:
diff changeset
16899 (defun gnus-user-format-function-d (headers)
Dave Love <fx@gnu.org>
parents:
diff changeset
16900 "Return the date the group was last read."
Dave Love <fx@gnu.org>
parents:
diff changeset
16901 (cond ((car (gnus-group-get-parameter gnus-tmp-group 'gnus-group-date-last-entered)))
Dave Love <fx@gnu.org>
parents:
diff changeset
16902 (t "")))
Dave Love <fx@gnu.org>
parents:
diff changeset
16903 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
16904
Dave Love <fx@gnu.org>
parents:
diff changeset
16905 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16906 tanken var at når du bruker `gnus-startup-file' som prefix (FOO) til å lete
Dave Love <fx@gnu.org>
parents:
diff changeset
16907 opp en fil FOO-SERVER, FOO-SERVER.el, FOO-SERVER.eld, kan du la den være en
Dave Love <fx@gnu.org>
parents:
diff changeset
16908 liste hvor du bruker hvert element i listen som FOO, istedet. da kunne man
Dave Love <fx@gnu.org>
parents:
diff changeset
16909 hatt forskjellige serveres startup-filer forskjellige steder.
Dave Love <fx@gnu.org>
parents:
diff changeset
16910
Dave Love <fx@gnu.org>
parents:
diff changeset
16911
Dave Love <fx@gnu.org>
parents:
diff changeset
16912 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16913 LMI> Well, nnbabyl could alter the group info to heed labels like
Dave Love <fx@gnu.org>
parents:
diff changeset
16914 LMI> answered and read, I guess.
Dave Love <fx@gnu.org>
parents:
diff changeset
16915
Dave Love <fx@gnu.org>
parents:
diff changeset
16916 It could also keep them updated (the same for the Status: header of
Dave Love <fx@gnu.org>
parents:
diff changeset
16917 unix mbox files).
Dave Love <fx@gnu.org>
parents:
diff changeset
16918
Dave Love <fx@gnu.org>
parents:
diff changeset
16919 They could be used like this:
Dave Love <fx@gnu.org>
parents:
diff changeset
16920
Dave Love <fx@gnu.org>
parents:
diff changeset
16921
Dave Love <fx@gnu.org>
parents:
diff changeset
16922 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
16923 `M l <name> RET' add label <name> to current message.
Dave Love <fx@gnu.org>
parents:
diff changeset
16924 `M u <name> RET' remove label <name> from current message.
Dave Love <fx@gnu.org>
parents:
diff changeset
16925 `/ l <expr> RET' limit summary buffer according to <expr>.
Dave Love <fx@gnu.org>
parents:
diff changeset
16926
Dave Love <fx@gnu.org>
parents:
diff changeset
16927 <expr> would be a boolean expression on the labels, e.g.
Dave Love <fx@gnu.org>
parents:
diff changeset
16928
Dave Love <fx@gnu.org>
parents:
diff changeset
16929 `/ l bug & !fixed RET'
Dave Love <fx@gnu.org>
parents:
diff changeset
16930 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
16931
Dave Love <fx@gnu.org>
parents:
diff changeset
16932 would show all the messages which are labeled `bug' but not labeled
Dave Love <fx@gnu.org>
parents:
diff changeset
16933 `fixed'.
Dave Love <fx@gnu.org>
parents:
diff changeset
16934
Dave Love <fx@gnu.org>
parents:
diff changeset
16935 One could also imagine the labels being used for highlighting, or
Dave Love <fx@gnu.org>
parents:
diff changeset
16936 affect the summary line format.
Dave Love <fx@gnu.org>
parents:
diff changeset
16937
Dave Love <fx@gnu.org>
parents:
diff changeset
16938
Dave Love <fx@gnu.org>
parents:
diff changeset
16939 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16940 Sender: abraham@@dina.kvl.dk
Dave Love <fx@gnu.org>
parents:
diff changeset
16941
Dave Love <fx@gnu.org>
parents:
diff changeset
16942 I'd like a gnus-find-file which work like find file, except that it
Dave Love <fx@gnu.org>
parents:
diff changeset
16943 would recognize things that looks like messages or folders:
Dave Love <fx@gnu.org>
parents:
diff changeset
16944
Dave Love <fx@gnu.org>
parents:
diff changeset
16945 - If it is a directory containing numbered files, create an nndir
Dave Love <fx@gnu.org>
parents:
diff changeset
16946 summary buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
16947
Dave Love <fx@gnu.org>
parents:
diff changeset
16948 - For other directories, create a nneething summary buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
16949
Dave Love <fx@gnu.org>
parents:
diff changeset
16950 - For files matching "\\`From ", create a nndoc/mbox summary.
Dave Love <fx@gnu.org>
parents:
diff changeset
16951
Dave Love <fx@gnu.org>
parents:
diff changeset
16952 - For files matching "\\`BABYL OPTIONS:", create a nndoc/baby summary.
Dave Love <fx@gnu.org>
parents:
diff changeset
16953
Dave Love <fx@gnu.org>
parents:
diff changeset
16954 - For files matching "\\`[^ \t\n]+:", create an *Article* buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
16955
Dave Love <fx@gnu.org>
parents:
diff changeset
16956 - For other files, just find them normally.
Dave Love <fx@gnu.org>
parents:
diff changeset
16957
Dave Love <fx@gnu.org>
parents:
diff changeset
16958 I'd like `nneething' to use this function, so it would work on a
Dave Love <fx@gnu.org>
parents:
diff changeset
16959 directory potentially containing mboxes or babyl files.
Dave Love <fx@gnu.org>
parents:
diff changeset
16960
Dave Love <fx@gnu.org>
parents:
diff changeset
16961 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16962 Please send a mail to bwarsaw@@cnri.reston.va.us (Barry A. Warsaw) and
Dave Love <fx@gnu.org>
parents:
diff changeset
16963 tell him what you are doing.
Dave Love <fx@gnu.org>
parents:
diff changeset
16964
Dave Love <fx@gnu.org>
parents:
diff changeset
16965 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16966 Currently, I get prompted:
Dave Love <fx@gnu.org>
parents:
diff changeset
16967
Dave Love <fx@gnu.org>
parents:
diff changeset
16968 decend into sci?
Dave Love <fx@gnu.org>
parents:
diff changeset
16969 - type y
Dave Love <fx@gnu.org>
parents:
diff changeset
16970 decend into sci.something ?
Dave Love <fx@gnu.org>
parents:
diff changeset
16971 - type n
Dave Love <fx@gnu.org>
parents:
diff changeset
16972 decend into ucd?
Dave Love <fx@gnu.org>
parents:
diff changeset
16973
Dave Love <fx@gnu.org>
parents:
diff changeset
16974 The problem above is that since there is really only one subsection of
Dave Love <fx@gnu.org>
parents:
diff changeset
16975 science, shouldn't it prompt you for only descending sci.something? If
Dave Love <fx@gnu.org>
parents:
diff changeset
16976 there was a sci.somethingelse group or section, then it should prompt
Dave Love <fx@gnu.org>
parents:
diff changeset
16977 for sci? first the sci.something? then sci.somethingelse?...
Dave Love <fx@gnu.org>
parents:
diff changeset
16978
Dave Love <fx@gnu.org>
parents:
diff changeset
16979 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16980 Ja, det burde være en måte å si slikt. Kanskje en ny variabel?
Dave Love <fx@gnu.org>
parents:
diff changeset
16981 `gnus-use-few-score-files'? Så kunne score-regler legges til den
Dave Love <fx@gnu.org>
parents:
diff changeset
16982 "mest" lokale score-fila. F. eks. ville no-gruppene betjenes av
Dave Love <fx@gnu.org>
parents:
diff changeset
16983 "no.all.SCORE", osv.
Dave Love <fx@gnu.org>
parents:
diff changeset
16984
Dave Love <fx@gnu.org>
parents:
diff changeset
16985 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
16986 What i want is for Gnus to treat any sequence or combination of the following
Dave Love <fx@gnu.org>
parents:
diff changeset
16987 as a single spoiler warning and hide it all, replacing it with a "Next Page"
Dave Love <fx@gnu.org>
parents:
diff changeset
16988 button:
Dave Love <fx@gnu.org>
parents:
diff changeset
16989
Dave Love <fx@gnu.org>
parents:
diff changeset
16990
Dave Love <fx@gnu.org>
parents:
diff changeset
16991 ^L's
Dave Love <fx@gnu.org>
parents:
diff changeset
16992
Dave Love <fx@gnu.org>
parents:
diff changeset
16993 more than n blank lines
Dave Love <fx@gnu.org>
parents:
diff changeset
16994
Dave Love <fx@gnu.org>
parents:
diff changeset
16995 more than m identical lines
Dave Love <fx@gnu.org>
parents:
diff changeset
16996 (which should be replaced with button to show them)
Dave Love <fx@gnu.org>
parents:
diff changeset
16997
Dave Love <fx@gnu.org>
parents:
diff changeset
16998 any whitespace surrounding any of the above
Dave Love <fx@gnu.org>
parents:
diff changeset
16999
Dave Love <fx@gnu.org>
parents:
diff changeset
17000
Dave Love <fx@gnu.org>
parents:
diff changeset
17001 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17002 Well, we could allow a new value to `gnus-thread-ignore-subject' --
Dave Love <fx@gnu.org>
parents:
diff changeset
17003 `spaces', or something. (We could even default to that.) And then
Dave Love <fx@gnu.org>
parents:
diff changeset
17004 subjects that differ in white space only could be considered the
Dave Love <fx@gnu.org>
parents:
diff changeset
17005 "same" subject for threading purposes.
Dave Love <fx@gnu.org>
parents:
diff changeset
17006
Dave Love <fx@gnu.org>
parents:
diff changeset
17007 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17008 Modes to preprocess the contents (e.g. jka-compr) use the second form
Dave Love <fx@gnu.org>
parents:
diff changeset
17009 "(REGEXP FUNCTION NON-NIL)" while ordinary modes (e.g. tex) use the first
Dave Love <fx@gnu.org>
parents:
diff changeset
17010 form "(REGEXP . FUNCTION)", so you could use it to distinguish between
Dave Love <fx@gnu.org>
parents:
diff changeset
17011 those two types of modes. (auto-modes-alist, insert-file-contents-literally.)
Dave Love <fx@gnu.org>
parents:
diff changeset
17012
Dave Love <fx@gnu.org>
parents:
diff changeset
17013 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17014 Under XEmacs -- do funny article marks:
Dave Love <fx@gnu.org>
parents:
diff changeset
17015 tick - thumb tack
Dave Love <fx@gnu.org>
parents:
diff changeset
17016 killed - skull
Dave Love <fx@gnu.org>
parents:
diff changeset
17017 soup - bowl of soup
Dave Love <fx@gnu.org>
parents:
diff changeset
17018 score below - dim light bulb
Dave Love <fx@gnu.org>
parents:
diff changeset
17019 score over - bright light bulb
Dave Love <fx@gnu.org>
parents:
diff changeset
17020
Dave Love <fx@gnu.org>
parents:
diff changeset
17021 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17022 Yes. I think the algorithm is as follows:
Dave Love <fx@gnu.org>
parents:
diff changeset
17023
Dave Love <fx@gnu.org>
parents:
diff changeset
17024 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
17025 Group-mode
Dave Love <fx@gnu.org>
parents:
diff changeset
17026
Dave Love <fx@gnu.org>
parents:
diff changeset
17027 show-list-of-articles-in-group
Dave Love <fx@gnu.org>
parents:
diff changeset
17028 if (key-pressed == SPACE)
Dave Love <fx@gnu.org>
parents:
diff changeset
17029 if (no-more-articles-in-group-to-select)
Dave Love <fx@gnu.org>
parents:
diff changeset
17030 if (articles-selected)
Dave Love <fx@gnu.org>
parents:
diff changeset
17031 start-reading-selected-articles;
Dave Love <fx@gnu.org>
parents:
diff changeset
17032 junk-unread-articles;
Dave Love <fx@gnu.org>
parents:
diff changeset
17033 next-group;
Dave Love <fx@gnu.org>
parents:
diff changeset
17034 else
Dave Love <fx@gnu.org>
parents:
diff changeset
17035 show-next-page;
Dave Love <fx@gnu.org>
parents:
diff changeset
17036
Dave Love <fx@gnu.org>
parents:
diff changeset
17037 else if (key-pressed = '.')
Dave Love <fx@gnu.org>
parents:
diff changeset
17038 if (consolidated-menus) # same as hide-thread in Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
17039 select-thread-under-cursor;
Dave Love <fx@gnu.org>
parents:
diff changeset
17040 else
Dave Love <fx@gnu.org>
parents:
diff changeset
17041 select-article-under-cursor;
Dave Love <fx@gnu.org>
parents:
diff changeset
17042
Dave Love <fx@gnu.org>
parents:
diff changeset
17043
Dave Love <fx@gnu.org>
parents:
diff changeset
17044 Article-mode
Dave Love <fx@gnu.org>
parents:
diff changeset
17045 if (key-pressed == SPACE)
Dave Love <fx@gnu.org>
parents:
diff changeset
17046 if (more-pages-in-article)
Dave Love <fx@gnu.org>
parents:
diff changeset
17047 next-page;
Dave Love <fx@gnu.org>
parents:
diff changeset
17048 else if (more-selected-articles-to-read)
Dave Love <fx@gnu.org>
parents:
diff changeset
17049 next-article;
Dave Love <fx@gnu.org>
parents:
diff changeset
17050 else
Dave Love <fx@gnu.org>
parents:
diff changeset
17051 next-group;
Dave Love <fx@gnu.org>
parents:
diff changeset
17052 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
17053
Dave Love <fx@gnu.org>
parents:
diff changeset
17054 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17055 My precise need here would have been to limit files to Incoming*.
Dave Love <fx@gnu.org>
parents:
diff changeset
17056 One could think of some `nneething-only-files' variable, but I guess
Dave Love <fx@gnu.org>
parents:
diff changeset
17057 it would have been unacceptable if one was using many unrelated such
Dave Love <fx@gnu.org>
parents:
diff changeset
17058 nneething groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
17059
Dave Love <fx@gnu.org>
parents:
diff changeset
17060 A more useful approach would be to, in response to the `G D' prompt, be
Dave Love <fx@gnu.org>
parents:
diff changeset
17061 allowed to say something like: `~/.mail/Incoming*', somewhat limiting
Dave Love <fx@gnu.org>
parents:
diff changeset
17062 the top-level directory only (in case directories would be matched by
Dave Love <fx@gnu.org>
parents:
diff changeset
17063 the wildcard expression).
Dave Love <fx@gnu.org>
parents:
diff changeset
17064
Dave Love <fx@gnu.org>
parents:
diff changeset
17065 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17066 It would be nice if it also handled
Dave Love <fx@gnu.org>
parents:
diff changeset
17067
Dave Love <fx@gnu.org>
parents:
diff changeset
17068 <URL:news://sunsite.auc.dk/>
Dave Love <fx@gnu.org>
parents:
diff changeset
17069
Dave Love <fx@gnu.org>
parents:
diff changeset
17070 which should correspond to `B nntp RET sunsite.auc.dk' in *Group*.
Dave Love <fx@gnu.org>
parents:
diff changeset
17071
Dave Love <fx@gnu.org>
parents:
diff changeset
17072
Dave Love <fx@gnu.org>
parents:
diff changeset
17073 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17074
Dave Love <fx@gnu.org>
parents:
diff changeset
17075 Take a look at w3-menu.el in the Emacs-W3 distribution - this works out
Dave Love <fx@gnu.org>
parents:
diff changeset
17076 really well. Each menu is 'named' by a symbol that would be on a
Dave Love <fx@gnu.org>
parents:
diff changeset
17077 gnus-*-menus (where * would be whatever, but at least group, summary, and
Dave Love <fx@gnu.org>
parents:
diff changeset
17078 article versions) variable.
Dave Love <fx@gnu.org>
parents:
diff changeset
17079
Dave Love <fx@gnu.org>
parents:
diff changeset
17080 So for gnus-summary-menus, I would set to '(sort mark dispose ...)
Dave Love <fx@gnu.org>
parents:
diff changeset
17081
Dave Love <fx@gnu.org>
parents:
diff changeset
17082 A value of '1' would just put _all_ the menus in a single 'GNUS' menu in
Dave Love <fx@gnu.org>
parents:
diff changeset
17083 the main menubar. This approach works really well for Emacs-W3 and VM.
Dave Love <fx@gnu.org>
parents:
diff changeset
17084
Dave Love <fx@gnu.org>
parents:
diff changeset
17085
Dave Love <fx@gnu.org>
parents:
diff changeset
17086 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17087 nndoc should take care to create unique Message-IDs for all its
Dave Love <fx@gnu.org>
parents:
diff changeset
17088 articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
17089 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17090 gnus-score-followup-article only works when you have a summary buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
17091 active. Make it work when posting from the group buffer as well.
Dave Love <fx@gnu.org>
parents:
diff changeset
17092 (message-sent-hook).
Dave Love <fx@gnu.org>
parents:
diff changeset
17093 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17094 rewrite gnus-demon to use run-with-idle-timers.
Dave Love <fx@gnu.org>
parents:
diff changeset
17095
Dave Love <fx@gnu.org>
parents:
diff changeset
17096 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17097 * Enhancements to Gnus:
Dave Love <fx@gnu.org>
parents:
diff changeset
17098
Dave Love <fx@gnu.org>
parents:
diff changeset
17099 Add two commands:
Dave Love <fx@gnu.org>
parents:
diff changeset
17100
Dave Love <fx@gnu.org>
parents:
diff changeset
17101 * gnus-servers (gnus-start-server-buffer?)--enters Gnus and goes
Dave Love <fx@gnu.org>
parents:
diff changeset
17102 straight to the server buffer, without opening any connections to
Dave Love <fx@gnu.org>
parents:
diff changeset
17103 servers first.
Dave Love <fx@gnu.org>
parents:
diff changeset
17104
Dave Love <fx@gnu.org>
parents:
diff changeset
17105 * gnus-server-read-server-newsrc--produces a buffer very similar to
Dave Love <fx@gnu.org>
parents:
diff changeset
17106 the group buffer, but with only groups from that server listed;
Dave Love <fx@gnu.org>
parents:
diff changeset
17107 quitting this buffer returns to the server buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
17108
Dave Love <fx@gnu.org>
parents:
diff changeset
17109 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17110 add a command to check the integrity of an nnfolder folder --
Dave Love <fx@gnu.org>
parents:
diff changeset
17111 go through the article numbers and see that there are no duplicates,
Dave Love <fx@gnu.org>
parents:
diff changeset
17112 and stuff.
Dave Love <fx@gnu.org>
parents:
diff changeset
17113
Dave Love <fx@gnu.org>
parents:
diff changeset
17114 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17115 `unsmileyfy-buffer' to undo smileification.
Dave Love <fx@gnu.org>
parents:
diff changeset
17116
Dave Love <fx@gnu.org>
parents:
diff changeset
17117 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17118 a command to give all relevant info on an article, including all
Dave Love <fx@gnu.org>
parents:
diff changeset
17119 secondary marks.
Dave Love <fx@gnu.org>
parents:
diff changeset
17120
Dave Love <fx@gnu.org>
parents:
diff changeset
17121 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17122 when doing `-request-accept-article', the backends should do
Dave Love <fx@gnu.org>
parents:
diff changeset
17123 the nnmail duplicate checking.
Dave Love <fx@gnu.org>
parents:
diff changeset
17124
Dave Love <fx@gnu.org>
parents:
diff changeset
17125 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17126 allow `message-signature-file' to be a function to return the
Dave Love <fx@gnu.org>
parents:
diff changeset
17127 value of the signature file.
Dave Love <fx@gnu.org>
parents:
diff changeset
17128
Dave Love <fx@gnu.org>
parents:
diff changeset
17129 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17130 In addition, I would love it if I could configure message-tab so that it
Dave Love <fx@gnu.org>
parents:
diff changeset
17131 could call `bbdb-complete-name' in other headers. So, some sort of
Dave Love <fx@gnu.org>
parents:
diff changeset
17132 interface like
Dave Love <fx@gnu.org>
parents:
diff changeset
17133
Dave Love <fx@gnu.org>
parents:
diff changeset
17134 (setq message-tab-alist
Dave Love <fx@gnu.org>
parents:
diff changeset
17135 '((message-header-regexp message-expand-group)
Dave Love <fx@gnu.org>
parents:
diff changeset
17136 ("^\\(To\\|[cC]c\\|[bB]cc\\)" bbdb-complete-name)))
Dave Love <fx@gnu.org>
parents:
diff changeset
17137
Dave Love <fx@gnu.org>
parents:
diff changeset
17138 then you could run the relevant function to complete the information in
Dave Love <fx@gnu.org>
parents:
diff changeset
17139 the header
Dave Love <fx@gnu.org>
parents:
diff changeset
17140
Dave Love <fx@gnu.org>
parents:
diff changeset
17141 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17142 cache the newsgroups file locally to avoid reloading it all the time.
Dave Love <fx@gnu.org>
parents:
diff changeset
17143
Dave Love <fx@gnu.org>
parents:
diff changeset
17144 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17145 a command to import a buffer into a group.
Dave Love <fx@gnu.org>
parents:
diff changeset
17146
Dave Love <fx@gnu.org>
parents:
diff changeset
17147 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17148 nnweb should allow fetching by Message-ID from servers.
Dave Love <fx@gnu.org>
parents:
diff changeset
17149
Dave Love <fx@gnu.org>
parents:
diff changeset
17150 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17151 point in the article buffer doesn't always go to the
Dave Love <fx@gnu.org>
parents:
diff changeset
17152 beginning of the buffer when selecting new articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
17153
Dave Love <fx@gnu.org>
parents:
diff changeset
17154 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17155 a command to process mark all unread articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
17156
Dave Love <fx@gnu.org>
parents:
diff changeset
17157 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17158 `gnus-gather-threads-by-references-and-subject' -- first
Dave Love <fx@gnu.org>
parents:
diff changeset
17159 do gathering by references, and then go through the dummy roots and
Dave Love <fx@gnu.org>
parents:
diff changeset
17160 do more gathering by subject.
Dave Love <fx@gnu.org>
parents:
diff changeset
17161
Dave Love <fx@gnu.org>
parents:
diff changeset
17162 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17163 gnus-uu-mark-in-numerical-order -- process mark articles in
Dave Love <fx@gnu.org>
parents:
diff changeset
17164 article numerical order.
Dave Love <fx@gnu.org>
parents:
diff changeset
17165
Dave Love <fx@gnu.org>
parents:
diff changeset
17166 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17167 (gnus-thread-total-score
Dave Love <fx@gnu.org>
parents:
diff changeset
17168 (gnus-id-to-thread (mail-header-id (gnus-summary-article-header))))
Dave Love <fx@gnu.org>
parents:
diff changeset
17169 bind to a key.
Dave Love <fx@gnu.org>
parents:
diff changeset
17170
Dave Love <fx@gnu.org>
parents:
diff changeset
17171 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17172 sorting by score is wrong when using sparse threads.
Dave Love <fx@gnu.org>
parents:
diff changeset
17173
Dave Love <fx@gnu.org>
parents:
diff changeset
17174 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17175 a command to fetch an arbitrary article -- without having to be
Dave Love <fx@gnu.org>
parents:
diff changeset
17176 in the summary buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
17177
Dave Love <fx@gnu.org>
parents:
diff changeset
17178 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17179 a new nncvs backend. Each group would show an article, using
Dave Love <fx@gnu.org>
parents:
diff changeset
17180 version branches as threading, checkin date as the date, etc.
Dave Love <fx@gnu.org>
parents:
diff changeset
17181
Dave Love <fx@gnu.org>
parents:
diff changeset
17182 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17183 http://www.dejanews.com/forms/dnsetfilter_exp.html ?
Dave Love <fx@gnu.org>
parents:
diff changeset
17184 This filter allows one to construct advance queries on the Dejanews
Dave Love <fx@gnu.org>
parents:
diff changeset
17185 database such as specifying start and end dates, subject, author,
Dave Love <fx@gnu.org>
parents:
diff changeset
17186 and/or newsgroup name.
Dave Love <fx@gnu.org>
parents:
diff changeset
17187
Dave Love <fx@gnu.org>
parents:
diff changeset
17188 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17189 new Date header scoring type -- older, newer
Dave Love <fx@gnu.org>
parents:
diff changeset
17190
Dave Love <fx@gnu.org>
parents:
diff changeset
17191 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17192 use the summary toolbar in the article buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
17193
Dave Love <fx@gnu.org>
parents:
diff changeset
17194 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17195 a command to fetch all articles that are less than X days old.
Dave Love <fx@gnu.org>
parents:
diff changeset
17196
Dave Love <fx@gnu.org>
parents:
diff changeset
17197 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17198 in pick mode, `q' should save the list of selected articles in the
Dave Love <fx@gnu.org>
parents:
diff changeset
17199 group info. The next time the group is selected, these articles
Dave Love <fx@gnu.org>
parents:
diff changeset
17200 will automatically get the process mark.
Dave Love <fx@gnu.org>
parents:
diff changeset
17201
Dave Love <fx@gnu.org>
parents:
diff changeset
17202 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17203 Isn't it possible to (also?) allow M-^ to automatically try the
Dave Love <fx@gnu.org>
parents:
diff changeset
17204 default server if it fails on the current server? (controlled by a
Dave Love <fx@gnu.org>
parents:
diff changeset
17205 user variable, (nil, t, 'ask)).
Dave Love <fx@gnu.org>
parents:
diff changeset
17206
Dave Love <fx@gnu.org>
parents:
diff changeset
17207 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17208 make it possible to cancel articles using the select method for the
Dave Love <fx@gnu.org>
parents:
diff changeset
17209 current group.
Dave Love <fx@gnu.org>
parents:
diff changeset
17210
Dave Love <fx@gnu.org>
parents:
diff changeset
17211 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17212 `gnus-summary-select-article-on-entry' or something. It'll default
Dave Love <fx@gnu.org>
parents:
diff changeset
17213 to t and will select whatever article decided by `gnus-auto-select-first'.
Dave Love <fx@gnu.org>
parents:
diff changeset
17214
Dave Love <fx@gnu.org>
parents:
diff changeset
17215 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17216 a new variable to control which selection commands should be unselecting.
Dave Love <fx@gnu.org>
parents:
diff changeset
17217 `first', `best', `next', `prev', `next-unread', `prev-unread' are
Dave Love <fx@gnu.org>
parents:
diff changeset
17218 candidates.
Dave Love <fx@gnu.org>
parents:
diff changeset
17219
Dave Love <fx@gnu.org>
parents:
diff changeset
17220 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17221 be able to select groups that have no articles in them
Dave Love <fx@gnu.org>
parents:
diff changeset
17222 to be able to post in them (using the current select method).
Dave Love <fx@gnu.org>
parents:
diff changeset
17223
Dave Love <fx@gnu.org>
parents:
diff changeset
17224 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17225 be able to post via DejaNews.
Dave Love <fx@gnu.org>
parents:
diff changeset
17226
Dave Love <fx@gnu.org>
parents:
diff changeset
17227 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17228 `x' should retain any sortings that have been performed.
Dave Love <fx@gnu.org>
parents:
diff changeset
17229
Dave Love <fx@gnu.org>
parents:
diff changeset
17230 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17231 allow the user to specify the precedence of the secondary marks. Also
Dave Love <fx@gnu.org>
parents:
diff changeset
17232 allow them to be displayed separately.
Dave Love <fx@gnu.org>
parents:
diff changeset
17233
Dave Love <fx@gnu.org>
parents:
diff changeset
17234 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17235 gnus-summary-save-in-pipe should concatenate the results from
Dave Love <fx@gnu.org>
parents:
diff changeset
17236 the processes when doing a process marked pipe.
Dave Love <fx@gnu.org>
parents:
diff changeset
17237
Dave Love <fx@gnu.org>
parents:
diff changeset
17238 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17239 a new match type, like Followup, but which adds Thread matches on all
Dave Love <fx@gnu.org>
parents:
diff changeset
17240 articles that match a certain From header.
Dave Love <fx@gnu.org>
parents:
diff changeset
17241
Dave Love <fx@gnu.org>
parents:
diff changeset
17242 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17243 a function that can be read from kill-emacs-query-functions to offer
Dave Love <fx@gnu.org>
parents:
diff changeset
17244 saving living summary buffers.
Dave Love <fx@gnu.org>
parents:
diff changeset
17245
Dave Love <fx@gnu.org>
parents:
diff changeset
17246 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17247 a function for selecting a particular group which will contain
Dave Love <fx@gnu.org>
parents:
diff changeset
17248 the articles listed in a list of article numbers/id's.
Dave Love <fx@gnu.org>
parents:
diff changeset
17249
Dave Love <fx@gnu.org>
parents:
diff changeset
17250 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17251 a battery of character translation functions to translate common
Dave Love <fx@gnu.org>
parents:
diff changeset
17252 Mac, MS (etc) characters into ISO 8859-1.
Dave Love <fx@gnu.org>
parents:
diff changeset
17253
Dave Love <fx@gnu.org>
parents:
diff changeset
17254 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
17255 (defun article-fix-m$word ()
Dave Love <fx@gnu.org>
parents:
diff changeset
17256 "Fix M$Word smartquotes in an article."
Dave Love <fx@gnu.org>
parents:
diff changeset
17257 (interactive)
Dave Love <fx@gnu.org>
parents:
diff changeset
17258 (save-excursion
Dave Love <fx@gnu.org>
parents:
diff changeset
17259 (let ((buffer-read-only nil))
Dave Love <fx@gnu.org>
parents:
diff changeset
17260 (goto-char (point-min))
Dave Love <fx@gnu.org>
parents:
diff changeset
17261 (while (search-forward "\221" nil t)
Dave Love <fx@gnu.org>
parents:
diff changeset
17262 (replace-match "`" t t))
Dave Love <fx@gnu.org>
parents:
diff changeset
17263 (goto-char (point-min))
Dave Love <fx@gnu.org>
parents:
diff changeset
17264 (while (search-forward "\222" nil t)
Dave Love <fx@gnu.org>
parents:
diff changeset
17265 (replace-match "'" t t))
Dave Love <fx@gnu.org>
parents:
diff changeset
17266 (goto-char (point-min))
Dave Love <fx@gnu.org>
parents:
diff changeset
17267 (while (search-forward "\223" nil t)
Dave Love <fx@gnu.org>
parents:
diff changeset
17268 (replace-match "\"" t t))
Dave Love <fx@gnu.org>
parents:
diff changeset
17269 (goto-char (point-min))
Dave Love <fx@gnu.org>
parents:
diff changeset
17270 (while (search-forward "\224" nil t)
Dave Love <fx@gnu.org>
parents:
diff changeset
17271 (replace-match "\"" t t)))))
Dave Love <fx@gnu.org>
parents:
diff changeset
17272 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
17273
Dave Love <fx@gnu.org>
parents:
diff changeset
17274 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17275 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
17276 (add-hook 'gnus-exit-query-functions
Dave Love <fx@gnu.org>
parents:
diff changeset
17277 '(lambda ()
Dave Love <fx@gnu.org>
parents:
diff changeset
17278 (if (and (file-exists-p nnmail-spool-file)
Dave Love <fx@gnu.org>
parents:
diff changeset
17279 (> (nnheader-file-size nnmail-spool-file) 0))
Dave Love <fx@gnu.org>
parents:
diff changeset
17280 (yes-or-no-p "New mail has arrived. Quit Gnus anyways? ")
Dave Love <fx@gnu.org>
parents:
diff changeset
17281 (y-or-n-p "Are you sure you want to quit Gnus? "))))
Dave Love <fx@gnu.org>
parents:
diff changeset
17282 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
17283
Dave Love <fx@gnu.org>
parents:
diff changeset
17284 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17285 allow message-default-headers to be a function.
Dave Love <fx@gnu.org>
parents:
diff changeset
17286
Dave Love <fx@gnu.org>
parents:
diff changeset
17287 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17288 new Date score match types -- < > = (etc) that take floating point
Dave Love <fx@gnu.org>
parents:
diff changeset
17289 numbers and match on the age of the article.
Dave Love <fx@gnu.org>
parents:
diff changeset
17290
Dave Love <fx@gnu.org>
parents:
diff changeset
17291 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17292 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
17293 > > > If so, I've got one gripe: It seems that when I fire up gnus 5.2.25
Dave Love <fx@gnu.org>
parents:
diff changeset
17294 > > > under xemacs-19.14, it's creating a new frame, but is erasing the
Dave Love <fx@gnu.org>
parents:
diff changeset
17295 > > > buffer in the frame that it was called from =:-O
Dave Love <fx@gnu.org>
parents:
diff changeset
17296 >
Dave Love <fx@gnu.org>
parents:
diff changeset
17297 > > Hm. How do you start up Gnus? From the toolbar or with
Dave Love <fx@gnu.org>
parents:
diff changeset
17298 > > `M-x gnus-other-frame'?
Dave Love <fx@gnu.org>
parents:
diff changeset
17299 >
Dave Love <fx@gnu.org>
parents:
diff changeset
17300 > I normally start it up from the toolbar; at
Dave Love <fx@gnu.org>
parents:
diff changeset
17301 > least that's the way I've caught it doing the
Dave Love <fx@gnu.org>
parents:
diff changeset
17302 > deed before.
Dave Love <fx@gnu.org>
parents:
diff changeset
17303 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
17304
Dave Love <fx@gnu.org>
parents:
diff changeset
17305 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17306 all commands that react to the process mark should push
Dave Love <fx@gnu.org>
parents:
diff changeset
17307 the current process mark set onto the stack.
Dave Love <fx@gnu.org>
parents:
diff changeset
17308
Dave Love <fx@gnu.org>
parents:
diff changeset
17309 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17310 gnus-article-hide-pgp
Dave Love <fx@gnu.org>
parents:
diff changeset
17311 Selv ville jeg nok ha valgt å slette den dersom teksten matcher
Dave Love <fx@gnu.org>
parents:
diff changeset
17312 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
17313 "\\(This\s+\\)?[^ ]+ has been automatically signed by"
Dave Love <fx@gnu.org>
parents:
diff changeset
17314 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
17315 og det er maks hundre tegn mellom match-end og ----linja. Men -det-
Dave Love <fx@gnu.org>
parents:
diff changeset
17316 er min type heuristikk og langt fra alles.
Dave Love <fx@gnu.org>
parents:
diff changeset
17317
Dave Love <fx@gnu.org>
parents:
diff changeset
17318 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17319 `gnus-subscribe-sorted' -- insert new groups where they would have been
Dave Love <fx@gnu.org>
parents:
diff changeset
17320 sorted to if `gnus-group-sort-function' were run.
Dave Love <fx@gnu.org>
parents:
diff changeset
17321
Dave Love <fx@gnu.org>
parents:
diff changeset
17322 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17323 gnus-(group,summary)-highlight should respect any `face' text props set
Dave Love <fx@gnu.org>
parents:
diff changeset
17324 on the lines.
Dave Love <fx@gnu.org>
parents:
diff changeset
17325
Dave Love <fx@gnu.org>
parents:
diff changeset
17326 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17327 use run-with-idle-timer for gnus-demon instead of the
Dave Love <fx@gnu.org>
parents:
diff changeset
17328 home-brewed stuff for better reliability.
Dave Love <fx@gnu.org>
parents:
diff changeset
17329
Dave Love <fx@gnu.org>
parents:
diff changeset
17330 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17331 add a way to select which NoCeM type to apply -- spam, troll, etc.
Dave Love <fx@gnu.org>
parents:
diff changeset
17332
Dave Love <fx@gnu.org>
parents:
diff changeset
17333 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17334 nndraft-request-group should tally autosave files.
Dave Love <fx@gnu.org>
parents:
diff changeset
17335
Dave Love <fx@gnu.org>
parents:
diff changeset
17336 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17337 implement nntp-retry-on-break and nntp-command-timeout.
Dave Love <fx@gnu.org>
parents:
diff changeset
17338
Dave Love <fx@gnu.org>
parents:
diff changeset
17339 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17340 gnus-article-highlight-limit that says when not to highlight (long)
Dave Love <fx@gnu.org>
parents:
diff changeset
17341 articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
17342
Dave Love <fx@gnu.org>
parents:
diff changeset
17343 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17344 (nnoo-set SERVER VARIABLE VALUE)
Dave Love <fx@gnu.org>
parents:
diff changeset
17345
Dave Love <fx@gnu.org>
parents:
diff changeset
17346 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17347 nn*-spool-methods
Dave Love <fx@gnu.org>
parents:
diff changeset
17348
Dave Love <fx@gnu.org>
parents:
diff changeset
17349 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17350 interrupitng agent fetching of articles should save articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
17351
Dave Love <fx@gnu.org>
parents:
diff changeset
17352 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17353 command to open a digest group, and copy all the articles there to the
Dave Love <fx@gnu.org>
parents:
diff changeset
17354 current group.
Dave Love <fx@gnu.org>
parents:
diff changeset
17355
Dave Love <fx@gnu.org>
parents:
diff changeset
17356 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17357 a variable to disable article body highlights if there's more than
Dave Love <fx@gnu.org>
parents:
diff changeset
17358 X characters in the body.
Dave Love <fx@gnu.org>
parents:
diff changeset
17359
Dave Love <fx@gnu.org>
parents:
diff changeset
17360 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17361 handle 480/381 authinfo requests separately.
Dave Love <fx@gnu.org>
parents:
diff changeset
17362
Dave Love <fx@gnu.org>
parents:
diff changeset
17363 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17364 include the texi/dir file in the distribution.
Dave Love <fx@gnu.org>
parents:
diff changeset
17365
Dave Love <fx@gnu.org>
parents:
diff changeset
17366 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17367 format spec to "tab" to a position.
Dave Love <fx@gnu.org>
parents:
diff changeset
17368
Dave Love <fx@gnu.org>
parents:
diff changeset
17369 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17370 Move all prompting to the new `M-n' default style.
Dave Love <fx@gnu.org>
parents:
diff changeset
17371
Dave Love <fx@gnu.org>
parents:
diff changeset
17372 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17373 command to display all dormant articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
17374
Dave Love <fx@gnu.org>
parents:
diff changeset
17375 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17376 gnus-auto-select-next makeover -- list of things it should do.
Dave Love <fx@gnu.org>
parents:
diff changeset
17377
Dave Love <fx@gnu.org>
parents:
diff changeset
17378 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17379 a score match type that adds scores matching on From if From has replied
Dave Love <fx@gnu.org>
parents:
diff changeset
17380 to something someone else has said.
Dave Love <fx@gnu.org>
parents:
diff changeset
17381
Dave Love <fx@gnu.org>
parents:
diff changeset
17382 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17383 Read Netscape discussion groups:
Dave Love <fx@gnu.org>
parents:
diff changeset
17384 snews://secnews.netscape.com/netscape.communicator.unix
Dave Love <fx@gnu.org>
parents:
diff changeset
17385
Dave Love <fx@gnu.org>
parents:
diff changeset
17386 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17387 One command to edit the original version if an article, and one to edit
Dave Love <fx@gnu.org>
parents:
diff changeset
17388 the displayed version.
Dave Love <fx@gnu.org>
parents:
diff changeset
17389
Dave Love <fx@gnu.org>
parents:
diff changeset
17390 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17391 @kbd{T v} -- make all process-marked articles the children of the
Dave Love <fx@gnu.org>
parents:
diff changeset
17392 current article.
Dave Love <fx@gnu.org>
parents:
diff changeset
17393
Dave Love <fx@gnu.org>
parents:
diff changeset
17394 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17395 Switch from initial text to the new default text mechanism.
Dave Love <fx@gnu.org>
parents:
diff changeset
17396
Dave Love <fx@gnu.org>
parents:
diff changeset
17397 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17398 How about making it possible to expire local articles? Will it be
Dave Love <fx@gnu.org>
parents:
diff changeset
17399 possible to make various constraints on when an article can be
Dave Love <fx@gnu.org>
parents:
diff changeset
17400 expired, e.g. (read), (age > 14 days), or the more interesting (read
Dave Love <fx@gnu.org>
parents:
diff changeset
17401 & age > 14 days)?
Dave Love <fx@gnu.org>
parents:
diff changeset
17402
Dave Love <fx@gnu.org>
parents:
diff changeset
17403 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17404 New limit command---limit to articles that have a certain string
Dave Love <fx@gnu.org>
parents:
diff changeset
17405 in the head or body.
Dave Love <fx@gnu.org>
parents:
diff changeset
17406
Dave Love <fx@gnu.org>
parents:
diff changeset
17407 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17408 Allow breaking lengthy NNTP commands.
Dave Love <fx@gnu.org>
parents:
diff changeset
17409
Dave Love <fx@gnu.org>
parents:
diff changeset
17410 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17411 gnus-article-highlight-limit, to disable highlighting in big articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
17412
Dave Love <fx@gnu.org>
parents:
diff changeset
17413 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17414 Editing an article should put the article to be edited
Dave Love <fx@gnu.org>
parents:
diff changeset
17415 in a special, unique buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
17416
Dave Love <fx@gnu.org>
parents:
diff changeset
17417 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17418 A command to send a mail to the admin-address group param.
Dave Love <fx@gnu.org>
parents:
diff changeset
17419
Dave Love <fx@gnu.org>
parents:
diff changeset
17420 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17421 A Date scoring type that will match if the article
Dave Love <fx@gnu.org>
parents:
diff changeset
17422 is less than a certain number of days old.
Dave Love <fx@gnu.org>
parents:
diff changeset
17423
Dave Love <fx@gnu.org>
parents:
diff changeset
17424 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17425 New spec: %~(tab 56) to put point on column 56
Dave Love <fx@gnu.org>
parents:
diff changeset
17426
Dave Love <fx@gnu.org>
parents:
diff changeset
17427 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17428 Allow Gnus Agent scoring to use normal score files.
Dave Love <fx@gnu.org>
parents:
diff changeset
17429
Dave Love <fx@gnu.org>
parents:
diff changeset
17430 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17431 Rething the Agent active file thing. `M-g' doesn't update the active
Dave Love <fx@gnu.org>
parents:
diff changeset
17432 file, for instance.
Dave Love <fx@gnu.org>
parents:
diff changeset
17433
Dave Love <fx@gnu.org>
parents:
diff changeset
17434 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17435 With dummy roots, `^' and then selecing the first article
Dave Love <fx@gnu.org>
parents:
diff changeset
17436 in any other dummy thread will make Gnus highlight the
Dave Love <fx@gnu.org>
parents:
diff changeset
17437 dummy root instead of the first article.
Dave Love <fx@gnu.org>
parents:
diff changeset
17438
Dave Love <fx@gnu.org>
parents:
diff changeset
17439 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17440 Propagate all group properties (marks, article numbers, etc) up to the
Dave Love <fx@gnu.org>
parents:
diff changeset
17441 topics for displaying.
Dave Love <fx@gnu.org>
parents:
diff changeset
17442
Dave Love <fx@gnu.org>
parents:
diff changeset
17443 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17444 `n' in the group buffer with topics should go to the next group
Dave Love <fx@gnu.org>
parents:
diff changeset
17445 with unread articles, even if that group is hidden in a topic.
Dave Love <fx@gnu.org>
parents:
diff changeset
17446
Dave Love <fx@gnu.org>
parents:
diff changeset
17447 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17448 gnus-posting-styles doesn't work in drafts.
Dave Love <fx@gnu.org>
parents:
diff changeset
17449
Dave Love <fx@gnu.org>
parents:
diff changeset
17450 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17451 gnus-summary-limit-include-cached is slow when there are
Dave Love <fx@gnu.org>
parents:
diff changeset
17452 many articles in the cache, since it regenerates big parts of the
Dave Love <fx@gnu.org>
parents:
diff changeset
17453 summary buffer for each article.
Dave Love <fx@gnu.org>
parents:
diff changeset
17454
Dave Love <fx@gnu.org>
parents:
diff changeset
17455 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17456 Implement gnus-batch-brew-soup.
Dave Love <fx@gnu.org>
parents:
diff changeset
17457
Dave Love <fx@gnu.org>
parents:
diff changeset
17458 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17459 Group parameters and summary commands for un/subscribing to mailing
Dave Love <fx@gnu.org>
parents:
diff changeset
17460 lists.
Dave Love <fx@gnu.org>
parents:
diff changeset
17461
Dave Love <fx@gnu.org>
parents:
diff changeset
17462 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17463 Introduce nnmail-home-directory.
Dave Love <fx@gnu.org>
parents:
diff changeset
17464
Dave Love <fx@gnu.org>
parents:
diff changeset
17465 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17466 gnus-fetch-group and friends should exit Gnus when the user
Dave Love <fx@gnu.org>
parents:
diff changeset
17467 exits the group.
Dave Love <fx@gnu.org>
parents:
diff changeset
17468
Dave Love <fx@gnu.org>
parents:
diff changeset
17469 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17470 Solve the halting problem.
Dave Love <fx@gnu.org>
parents:
diff changeset
17471
Dave Love <fx@gnu.org>
parents:
diff changeset
17472 @c TODO
Dave Love <fx@gnu.org>
parents:
diff changeset
17473 @end itemize
Dave Love <fx@gnu.org>
parents:
diff changeset
17474
Dave Love <fx@gnu.org>
parents:
diff changeset
17475 @iftex
Dave Love <fx@gnu.org>
parents:
diff changeset
17476
Dave Love <fx@gnu.org>
parents:
diff changeset
17477 @page
Dave Love <fx@gnu.org>
parents:
diff changeset
17478 @node The Manual
Dave Love <fx@gnu.org>
parents:
diff changeset
17479 @section The Manual
Dave Love <fx@gnu.org>
parents:
diff changeset
17480 @cindex colophon
Dave Love <fx@gnu.org>
parents:
diff changeset
17481 @cindex manual
Dave Love <fx@gnu.org>
parents:
diff changeset
17482
Dave Love <fx@gnu.org>
parents:
diff changeset
17483 This manual was generated from a TeXinfo file and then run through
Dave Love <fx@gnu.org>
parents:
diff changeset
17484 either @code{texi2dvi}
Dave Love <fx@gnu.org>
parents:
diff changeset
17485 to get what you hold in your hands now.
Dave Love <fx@gnu.org>
parents:
diff changeset
17486
Dave Love <fx@gnu.org>
parents:
diff changeset
17487 The following conventions have been used:
Dave Love <fx@gnu.org>
parents:
diff changeset
17488
Dave Love <fx@gnu.org>
parents:
diff changeset
17489 @enumerate
Dave Love <fx@gnu.org>
parents:
diff changeset
17490
Dave Love <fx@gnu.org>
parents:
diff changeset
17491 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17492 This is a @samp{string}
Dave Love <fx@gnu.org>
parents:
diff changeset
17493
Dave Love <fx@gnu.org>
parents:
diff changeset
17494 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17495 This is a @kbd{keystroke}
Dave Love <fx@gnu.org>
parents:
diff changeset
17496
Dave Love <fx@gnu.org>
parents:
diff changeset
17497 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17498 This is a @file{file}
Dave Love <fx@gnu.org>
parents:
diff changeset
17499
Dave Love <fx@gnu.org>
parents:
diff changeset
17500 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17501 This is a @code{symbol}
Dave Love <fx@gnu.org>
parents:
diff changeset
17502
Dave Love <fx@gnu.org>
parents:
diff changeset
17503 @end enumerate
Dave Love <fx@gnu.org>
parents:
diff changeset
17504
Dave Love <fx@gnu.org>
parents:
diff changeset
17505 So if I were to say ``set @code{flargnoze} to @samp{yes}'', that would
Dave Love <fx@gnu.org>
parents:
diff changeset
17506 mean:
Dave Love <fx@gnu.org>
parents:
diff changeset
17507
Dave Love <fx@gnu.org>
parents:
diff changeset
17508 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
17509 (setq flargnoze "yes")
Dave Love <fx@gnu.org>
parents:
diff changeset
17510 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
17511
Dave Love <fx@gnu.org>
parents:
diff changeset
17512 If I say ``set @code{flumphel} to @code{yes}'', that would mean:
Dave Love <fx@gnu.org>
parents:
diff changeset
17513
Dave Love <fx@gnu.org>
parents:
diff changeset
17514 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
17515 (setq flumphel 'yes)
Dave Love <fx@gnu.org>
parents:
diff changeset
17516 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
17517
Dave Love <fx@gnu.org>
parents:
diff changeset
17518 @samp{yes} and @code{yes} are two @emph{very} different things---don't
Dave Love <fx@gnu.org>
parents:
diff changeset
17519 ever get them confused.
Dave Love <fx@gnu.org>
parents:
diff changeset
17520
Dave Love <fx@gnu.org>
parents:
diff changeset
17521
Dave Love <fx@gnu.org>
parents:
diff changeset
17522 @end iftex
Dave Love <fx@gnu.org>
parents:
diff changeset
17523
Dave Love <fx@gnu.org>
parents:
diff changeset
17524
Dave Love <fx@gnu.org>
parents:
diff changeset
17525 @page
Dave Love <fx@gnu.org>
parents:
diff changeset
17526 @node Terminology
Dave Love <fx@gnu.org>
parents:
diff changeset
17527 @section Terminology
Dave Love <fx@gnu.org>
parents:
diff changeset
17528
Dave Love <fx@gnu.org>
parents:
diff changeset
17529 @cindex terminology
Dave Love <fx@gnu.org>
parents:
diff changeset
17530 @table @dfn
Dave Love <fx@gnu.org>
parents:
diff changeset
17531
Dave Love <fx@gnu.org>
parents:
diff changeset
17532 @item news
Dave Love <fx@gnu.org>
parents:
diff changeset
17533 @cindex news
Dave Love <fx@gnu.org>
parents:
diff changeset
17534 This is what you are supposed to use this thing for---reading news.
Dave Love <fx@gnu.org>
parents:
diff changeset
17535 News is generally fetched from a nearby @sc{nntp} server, and is
Dave Love <fx@gnu.org>
parents:
diff changeset
17536 generally publicly available to everybody. If you post news, the entire
Dave Love <fx@gnu.org>
parents:
diff changeset
17537 world is likely to read just what you have written, and they'll all
Dave Love <fx@gnu.org>
parents:
diff changeset
17538 snigger mischievously. Behind your back.
Dave Love <fx@gnu.org>
parents:
diff changeset
17539
Dave Love <fx@gnu.org>
parents:
diff changeset
17540 @item mail
Dave Love <fx@gnu.org>
parents:
diff changeset
17541 @cindex mail
Dave Love <fx@gnu.org>
parents:
diff changeset
17542 Everything that's delivered to you personally is mail. Some news/mail
Dave Love <fx@gnu.org>
parents:
diff changeset
17543 readers (like Gnus) blur the distinction between mail and news, but
Dave Love <fx@gnu.org>
parents:
diff changeset
17544 there is a difference. Mail is private. News is public. Mailing is
Dave Love <fx@gnu.org>
parents:
diff changeset
17545 not posting, and replying is not following up.
Dave Love <fx@gnu.org>
parents:
diff changeset
17546
Dave Love <fx@gnu.org>
parents:
diff changeset
17547 @item reply
Dave Love <fx@gnu.org>
parents:
diff changeset
17548 @cindex reply
Dave Love <fx@gnu.org>
parents:
diff changeset
17549 Send a mail to the person who has written what you are reading.
Dave Love <fx@gnu.org>
parents:
diff changeset
17550
Dave Love <fx@gnu.org>
parents:
diff changeset
17551 @item follow up
Dave Love <fx@gnu.org>
parents:
diff changeset
17552 @cindex follow up
Dave Love <fx@gnu.org>
parents:
diff changeset
17553 Post an article to the current newsgroup responding to the article you
Dave Love <fx@gnu.org>
parents:
diff changeset
17554 are reading.
Dave Love <fx@gnu.org>
parents:
diff changeset
17555
Dave Love <fx@gnu.org>
parents:
diff changeset
17556 @item backend
Dave Love <fx@gnu.org>
parents:
diff changeset
17557 @cindex backend
Dave Love <fx@gnu.org>
parents:
diff changeset
17558 Gnus gets fed articles from a number of backends, both news and mail
Dave Love <fx@gnu.org>
parents:
diff changeset
17559 backends. Gnus does not handle the underlying media, so to speak---this
Dave Love <fx@gnu.org>
parents:
diff changeset
17560 is all done by the backends.
Dave Love <fx@gnu.org>
parents:
diff changeset
17561
Dave Love <fx@gnu.org>
parents:
diff changeset
17562 @item native
Dave Love <fx@gnu.org>
parents:
diff changeset
17563 @cindex native
Dave Love <fx@gnu.org>
parents:
diff changeset
17564 Gnus will always use one method (and backend) as the @dfn{native}, or
Dave Love <fx@gnu.org>
parents:
diff changeset
17565 default, way of getting news.
Dave Love <fx@gnu.org>
parents:
diff changeset
17566
Dave Love <fx@gnu.org>
parents:
diff changeset
17567 @item foreign
Dave Love <fx@gnu.org>
parents:
diff changeset
17568 @cindex foreign
Dave Love <fx@gnu.org>
parents:
diff changeset
17569 You can also have any number of foreign groups active at the same time.
Dave Love <fx@gnu.org>
parents:
diff changeset
17570 These are groups that use non-native non-secondary backends for getting
Dave Love <fx@gnu.org>
parents:
diff changeset
17571 news.
Dave Love <fx@gnu.org>
parents:
diff changeset
17572
Dave Love <fx@gnu.org>
parents:
diff changeset
17573 @item secondary
Dave Love <fx@gnu.org>
parents:
diff changeset
17574 @cindex secondary
Dave Love <fx@gnu.org>
parents:
diff changeset
17575 Secondary backends are somewhere half-way between being native and being
Dave Love <fx@gnu.org>
parents:
diff changeset
17576 foreign, but they mostly act like they are native.
Dave Love <fx@gnu.org>
parents:
diff changeset
17577
Dave Love <fx@gnu.org>
parents:
diff changeset
17578 @item article
Dave Love <fx@gnu.org>
parents:
diff changeset
17579 @cindex article
Dave Love <fx@gnu.org>
parents:
diff changeset
17580 A message that has been posted as news.
Dave Love <fx@gnu.org>
parents:
diff changeset
17581
Dave Love <fx@gnu.org>
parents:
diff changeset
17582 @item mail message
Dave Love <fx@gnu.org>
parents:
diff changeset
17583 @cindex mail message
Dave Love <fx@gnu.org>
parents:
diff changeset
17584 A message that has been mailed.
Dave Love <fx@gnu.org>
parents:
diff changeset
17585
Dave Love <fx@gnu.org>
parents:
diff changeset
17586 @item message
Dave Love <fx@gnu.org>
parents:
diff changeset
17587 @cindex message
Dave Love <fx@gnu.org>
parents:
diff changeset
17588 A mail message or news article
Dave Love <fx@gnu.org>
parents:
diff changeset
17589
Dave Love <fx@gnu.org>
parents:
diff changeset
17590 @item head
Dave Love <fx@gnu.org>
parents:
diff changeset
17591 @cindex head
Dave Love <fx@gnu.org>
parents:
diff changeset
17592 The top part of a message, where administrative information (etc.) is
Dave Love <fx@gnu.org>
parents:
diff changeset
17593 put.
Dave Love <fx@gnu.org>
parents:
diff changeset
17594
Dave Love <fx@gnu.org>
parents:
diff changeset
17595 @item body
Dave Love <fx@gnu.org>
parents:
diff changeset
17596 @cindex body
Dave Love <fx@gnu.org>
parents:
diff changeset
17597 The rest of an article. Everything not in the head is in the
Dave Love <fx@gnu.org>
parents:
diff changeset
17598 body.
Dave Love <fx@gnu.org>
parents:
diff changeset
17599
Dave Love <fx@gnu.org>
parents:
diff changeset
17600 @item header
Dave Love <fx@gnu.org>
parents:
diff changeset
17601 @cindex header
Dave Love <fx@gnu.org>
parents:
diff changeset
17602 A line from the head of an article.
Dave Love <fx@gnu.org>
parents:
diff changeset
17603
Dave Love <fx@gnu.org>
parents:
diff changeset
17604 @item headers
Dave Love <fx@gnu.org>
parents:
diff changeset
17605 @cindex headers
Dave Love <fx@gnu.org>
parents:
diff changeset
17606 A collection of such lines, or a collection of heads. Or even a
Dave Love <fx@gnu.org>
parents:
diff changeset
17607 collection of @sc{nov} lines.
Dave Love <fx@gnu.org>
parents:
diff changeset
17608
Dave Love <fx@gnu.org>
parents:
diff changeset
17609 @item @sc{nov}
Dave Love <fx@gnu.org>
parents:
diff changeset
17610 @cindex nov
Dave Love <fx@gnu.org>
parents:
diff changeset
17611 When Gnus enters a group, it asks the backend for the headers of all
Dave Love <fx@gnu.org>
parents:
diff changeset
17612 unread articles in the group. Most servers support the News OverView
Dave Love <fx@gnu.org>
parents:
diff changeset
17613 format, which is more compact and much faster to read and parse than the
Dave Love <fx@gnu.org>
parents:
diff changeset
17614 normal @sc{head} format.
Dave Love <fx@gnu.org>
parents:
diff changeset
17615
Dave Love <fx@gnu.org>
parents:
diff changeset
17616 @item level
Dave Love <fx@gnu.org>
parents:
diff changeset
17617 @cindex levels
Dave Love <fx@gnu.org>
parents:
diff changeset
17618 Each group is subscribed at some @dfn{level} or other (1-9). The ones
Dave Love <fx@gnu.org>
parents:
diff changeset
17619 that have a lower level are ``more'' subscribed than the groups with a
Dave Love <fx@gnu.org>
parents:
diff changeset
17620 higher level. In fact, groups on levels 1-5 are considered
Dave Love <fx@gnu.org>
parents:
diff changeset
17621 @dfn{subscribed}; 6-7 are @dfn{unsubscribed}; 8 are @dfn{zombies}; and 9
Dave Love <fx@gnu.org>
parents:
diff changeset
17622 are @dfn{killed}. Commands for listing groups and scanning for new
Dave Love <fx@gnu.org>
parents:
diff changeset
17623 articles will all use the numeric prefix as @dfn{working level}.
Dave Love <fx@gnu.org>
parents:
diff changeset
17624
Dave Love <fx@gnu.org>
parents:
diff changeset
17625 @item killed groups
Dave Love <fx@gnu.org>
parents:
diff changeset
17626 @cindex killed groups
Dave Love <fx@gnu.org>
parents:
diff changeset
17627 No information on killed groups is stored or updated, which makes killed
Dave Love <fx@gnu.org>
parents:
diff changeset
17628 groups much easier to handle than subscribed groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
17629
Dave Love <fx@gnu.org>
parents:
diff changeset
17630 @item zombie groups
Dave Love <fx@gnu.org>
parents:
diff changeset
17631 @cindex zombie groups
Dave Love <fx@gnu.org>
parents:
diff changeset
17632 Just like killed groups, only slightly less dead.
Dave Love <fx@gnu.org>
parents:
diff changeset
17633
Dave Love <fx@gnu.org>
parents:
diff changeset
17634 @item active file
Dave Love <fx@gnu.org>
parents:
diff changeset
17635 @cindex active file
Dave Love <fx@gnu.org>
parents:
diff changeset
17636 The news server has to keep track of what articles it carries, and what
Dave Love <fx@gnu.org>
parents:
diff changeset
17637 groups exist. All this information in stored in the active file, which
Dave Love <fx@gnu.org>
parents:
diff changeset
17638 is rather large, as you might surmise.
Dave Love <fx@gnu.org>
parents:
diff changeset
17639
Dave Love <fx@gnu.org>
parents:
diff changeset
17640 @item bogus groups
Dave Love <fx@gnu.org>
parents:
diff changeset
17641 @cindex bogus groups
Dave Love <fx@gnu.org>
parents:
diff changeset
17642 A group that exists in the @file{.newsrc} file, but isn't known to the
Dave Love <fx@gnu.org>
parents:
diff changeset
17643 server (i.e., it isn't in the active file), is a @emph{bogus group}.
Dave Love <fx@gnu.org>
parents:
diff changeset
17644 This means that the group probably doesn't exist (any more).
Dave Love <fx@gnu.org>
parents:
diff changeset
17645
Dave Love <fx@gnu.org>
parents:
diff changeset
17646 @item activating
Dave Love <fx@gnu.org>
parents:
diff changeset
17647 @cindex activating groups
Dave Love <fx@gnu.org>
parents:
diff changeset
17648 The act of asking the server for info on a group and computing the
Dave Love <fx@gnu.org>
parents:
diff changeset
17649 number of unread articles is called @dfn{activating the group}.
Dave Love <fx@gnu.org>
parents:
diff changeset
17650 Un-activated groups are listed with @samp{*} in the group buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
17651
Dave Love <fx@gnu.org>
parents:
diff changeset
17652 @item server
Dave Love <fx@gnu.org>
parents:
diff changeset
17653 @cindex server
Dave Love <fx@gnu.org>
parents:
diff changeset
17654 A machine one can connect to and get news (or mail) from.
Dave Love <fx@gnu.org>
parents:
diff changeset
17655
Dave Love <fx@gnu.org>
parents:
diff changeset
17656 @item select method
Dave Love <fx@gnu.org>
parents:
diff changeset
17657 @cindex select method
Dave Love <fx@gnu.org>
parents:
diff changeset
17658 A structure that specifies the backend, the server and the virtual
Dave Love <fx@gnu.org>
parents:
diff changeset
17659 server settings.
Dave Love <fx@gnu.org>
parents:
diff changeset
17660
Dave Love <fx@gnu.org>
parents:
diff changeset
17661 @item virtual server
Dave Love <fx@gnu.org>
parents:
diff changeset
17662 @cindex virtual server
Dave Love <fx@gnu.org>
parents:
diff changeset
17663 A named select method. Since a select method defines all there is to
Dave Love <fx@gnu.org>
parents:
diff changeset
17664 know about connecting to a (physical) server, taking the thing as a
Dave Love <fx@gnu.org>
parents:
diff changeset
17665 whole is a virtual server.
Dave Love <fx@gnu.org>
parents:
diff changeset
17666
Dave Love <fx@gnu.org>
parents:
diff changeset
17667 @item washing
Dave Love <fx@gnu.org>
parents:
diff changeset
17668 @cindex washing
Dave Love <fx@gnu.org>
parents:
diff changeset
17669 Taking a buffer and running it through a filter of some sort. The
Dave Love <fx@gnu.org>
parents:
diff changeset
17670 result will (more often than not) be cleaner and more pleasing than the
Dave Love <fx@gnu.org>
parents:
diff changeset
17671 original.
Dave Love <fx@gnu.org>
parents:
diff changeset
17672
Dave Love <fx@gnu.org>
parents:
diff changeset
17673 @item ephemeral groups
Dave Love <fx@gnu.org>
parents:
diff changeset
17674 @cindex ephemeral groups
Dave Love <fx@gnu.org>
parents:
diff changeset
17675 Most groups store data on what articles you have read. @dfn{Ephemeral}
Dave Love <fx@gnu.org>
parents:
diff changeset
17676 groups are groups that will have no data stored---when you exit the
Dave Love <fx@gnu.org>
parents:
diff changeset
17677 group, it'll disappear into the aether.
Dave Love <fx@gnu.org>
parents:
diff changeset
17678
Dave Love <fx@gnu.org>
parents:
diff changeset
17679 @item solid groups
Dave Love <fx@gnu.org>
parents:
diff changeset
17680 @cindex solid groups
Dave Love <fx@gnu.org>
parents:
diff changeset
17681 This is the opposite of ephemeral groups. All groups listed in the
Dave Love <fx@gnu.org>
parents:
diff changeset
17682 group buffer are solid groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
17683
Dave Love <fx@gnu.org>
parents:
diff changeset
17684 @item sparse articles
Dave Love <fx@gnu.org>
parents:
diff changeset
17685 @cindex sparse articles
Dave Love <fx@gnu.org>
parents:
diff changeset
17686 These are article placeholders shown in the summary buffer when
Dave Love <fx@gnu.org>
parents:
diff changeset
17687 @code{gnus-build-sparse-threads} has been switched on.
Dave Love <fx@gnu.org>
parents:
diff changeset
17688
Dave Love <fx@gnu.org>
parents:
diff changeset
17689 @item threading
Dave Love <fx@gnu.org>
parents:
diff changeset
17690 @cindex threading
Dave Love <fx@gnu.org>
parents:
diff changeset
17691 To put responses to articles directly after the articles they respond
Dave Love <fx@gnu.org>
parents:
diff changeset
17692 to---in a hierarchical fashion.
Dave Love <fx@gnu.org>
parents:
diff changeset
17693
Dave Love <fx@gnu.org>
parents:
diff changeset
17694 @item root
Dave Love <fx@gnu.org>
parents:
diff changeset
17695 @cindex root
Dave Love <fx@gnu.org>
parents:
diff changeset
17696 @cindex thread root
Dave Love <fx@gnu.org>
parents:
diff changeset
17697 The first article in a thread is the root. It is the ancestor of all
Dave Love <fx@gnu.org>
parents:
diff changeset
17698 articles in the thread.
Dave Love <fx@gnu.org>
parents:
diff changeset
17699
Dave Love <fx@gnu.org>
parents:
diff changeset
17700 @item parent
Dave Love <fx@gnu.org>
parents:
diff changeset
17701 @cindex parent
Dave Love <fx@gnu.org>
parents:
diff changeset
17702 An article that has responses.
Dave Love <fx@gnu.org>
parents:
diff changeset
17703
Dave Love <fx@gnu.org>
parents:
diff changeset
17704 @item child
Dave Love <fx@gnu.org>
parents:
diff changeset
17705 @cindex child
Dave Love <fx@gnu.org>
parents:
diff changeset
17706 An article that responds to a different article---its parent.
Dave Love <fx@gnu.org>
parents:
diff changeset
17707
Dave Love <fx@gnu.org>
parents:
diff changeset
17708 @item digest
Dave Love <fx@gnu.org>
parents:
diff changeset
17709 @cindex digest
Dave Love <fx@gnu.org>
parents:
diff changeset
17710 A collection of messages in one file. The most common digest format is
Dave Love <fx@gnu.org>
parents:
diff changeset
17711 specified by RFC1153.
Dave Love <fx@gnu.org>
parents:
diff changeset
17712
Dave Love <fx@gnu.org>
parents:
diff changeset
17713 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
17714
Dave Love <fx@gnu.org>
parents:
diff changeset
17715
Dave Love <fx@gnu.org>
parents:
diff changeset
17716 @page
Dave Love <fx@gnu.org>
parents:
diff changeset
17717 @node Customization
Dave Love <fx@gnu.org>
parents:
diff changeset
17718 @section Customization
Dave Love <fx@gnu.org>
parents:
diff changeset
17719 @cindex general customization
Dave Love <fx@gnu.org>
parents:
diff changeset
17720
Dave Love <fx@gnu.org>
parents:
diff changeset
17721 All variables are properly documented elsewhere in this manual. This
Dave Love <fx@gnu.org>
parents:
diff changeset
17722 section is designed to give general pointers on how to customize Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
17723 for some quite common situations.
Dave Love <fx@gnu.org>
parents:
diff changeset
17724
Dave Love <fx@gnu.org>
parents:
diff changeset
17725 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
17726 * Slow/Expensive Connection:: You run a local Emacs and get the news elsewhere.
Dave Love <fx@gnu.org>
parents:
diff changeset
17727 * Slow Terminal Connection:: You run a remote Emacs.
Dave Love <fx@gnu.org>
parents:
diff changeset
17728 * Little Disk Space:: You feel that having large setup files is icky.
Dave Love <fx@gnu.org>
parents:
diff changeset
17729 * Slow Machine:: You feel like buying a faster machine.
Dave Love <fx@gnu.org>
parents:
diff changeset
17730 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
17731
Dave Love <fx@gnu.org>
parents:
diff changeset
17732
Dave Love <fx@gnu.org>
parents:
diff changeset
17733 @node Slow/Expensive Connection
Dave Love <fx@gnu.org>
parents:
diff changeset
17734 @subsection Slow/Expensive @sc{nntp} Connection
Dave Love <fx@gnu.org>
parents:
diff changeset
17735
Dave Love <fx@gnu.org>
parents:
diff changeset
17736 If you run Emacs on a machine locally, and get your news from a machine
Dave Love <fx@gnu.org>
parents:
diff changeset
17737 over some very thin strings, you want to cut down on the amount of data
Dave Love <fx@gnu.org>
parents:
diff changeset
17738 Gnus has to get from the @sc{nntp} server.
Dave Love <fx@gnu.org>
parents:
diff changeset
17739
Dave Love <fx@gnu.org>
parents:
diff changeset
17740 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
17741
Dave Love <fx@gnu.org>
parents:
diff changeset
17742 @item gnus-read-active-file
Dave Love <fx@gnu.org>
parents:
diff changeset
17743 Set this to @code{nil}, which will inhibit Gnus from requesting the
Dave Love <fx@gnu.org>
parents:
diff changeset
17744 entire active file from the server. This file is often v. large. You
Dave Love <fx@gnu.org>
parents:
diff changeset
17745 also have to set @code{gnus-check-new-newsgroups} and
Dave Love <fx@gnu.org>
parents:
diff changeset
17746 @code{gnus-check-bogus-newsgroups} to @code{nil} to make sure that Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
17747 doesn't suddenly decide to fetch the active file anyway.
Dave Love <fx@gnu.org>
parents:
diff changeset
17748
Dave Love <fx@gnu.org>
parents:
diff changeset
17749 @item gnus-nov-is-evil
Dave Love <fx@gnu.org>
parents:
diff changeset
17750 This one has to be @code{nil}. If not, grabbing article headers from
Dave Love <fx@gnu.org>
parents:
diff changeset
17751 the @sc{nntp} server will not be very fast. Not all @sc{nntp} servers
Dave Love <fx@gnu.org>
parents:
diff changeset
17752 support @sc{xover}; Gnus will detect this by itself.
Dave Love <fx@gnu.org>
parents:
diff changeset
17753 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
17754
Dave Love <fx@gnu.org>
parents:
diff changeset
17755
Dave Love <fx@gnu.org>
parents:
diff changeset
17756 @node Slow Terminal Connection
Dave Love <fx@gnu.org>
parents:
diff changeset
17757 @subsection Slow Terminal Connection
Dave Love <fx@gnu.org>
parents:
diff changeset
17758
Dave Love <fx@gnu.org>
parents:
diff changeset
17759 Let's say you use your home computer for dialing up the system that runs
Dave Love <fx@gnu.org>
parents:
diff changeset
17760 Emacs and Gnus. If your modem is slow, you want to reduce (as much as
Dave Love <fx@gnu.org>
parents:
diff changeset
17761 possible) the amount of data sent over the wires.
Dave Love <fx@gnu.org>
parents:
diff changeset
17762
Dave Love <fx@gnu.org>
parents:
diff changeset
17763 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
17764
Dave Love <fx@gnu.org>
parents:
diff changeset
17765 @item gnus-auto-center-summary
Dave Love <fx@gnu.org>
parents:
diff changeset
17766 Set this to @code{nil} to inhibit Gnus from re-centering the summary
Dave Love <fx@gnu.org>
parents:
diff changeset
17767 buffer all the time. If it is @code{vertical}, do only vertical
Dave Love <fx@gnu.org>
parents:
diff changeset
17768 re-centering. If it is neither @code{nil} nor @code{vertical}, do both
Dave Love <fx@gnu.org>
parents:
diff changeset
17769 horizontal and vertical recentering.
Dave Love <fx@gnu.org>
parents:
diff changeset
17770
Dave Love <fx@gnu.org>
parents:
diff changeset
17771 @item gnus-visible-headers
Dave Love <fx@gnu.org>
parents:
diff changeset
17772 Cut down on the headers included in the articles to the
Dave Love <fx@gnu.org>
parents:
diff changeset
17773 minimum. You can, in fact, make do without them altogether---most of the
Dave Love <fx@gnu.org>
parents:
diff changeset
17774 useful data is in the summary buffer, anyway. Set this variable to
Dave Love <fx@gnu.org>
parents:
diff changeset
17775 @samp{^NEVVVVER} or @samp{From:}, or whatever you feel you need.
Dave Love <fx@gnu.org>
parents:
diff changeset
17776
Dave Love <fx@gnu.org>
parents:
diff changeset
17777 @item gnus-article-display-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
17778 Set this hook to all the available hiding commands:
Dave Love <fx@gnu.org>
parents:
diff changeset
17779 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
17780 (setq gnus-article-display-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
17781 '(gnus-article-hide-headers
Dave Love <fx@gnu.org>
parents:
diff changeset
17782 gnus-article-hide-signature
Dave Love <fx@gnu.org>
parents:
diff changeset
17783 gnus-article-hide-citation))
Dave Love <fx@gnu.org>
parents:
diff changeset
17784 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
17785
Dave Love <fx@gnu.org>
parents:
diff changeset
17786 @item gnus-use-full-window
Dave Love <fx@gnu.org>
parents:
diff changeset
17787 By setting this to @code{nil}, you can make all the windows smaller.
Dave Love <fx@gnu.org>
parents:
diff changeset
17788 While this doesn't really cut down much generally, it means that you
Dave Love <fx@gnu.org>
parents:
diff changeset
17789 have to see smaller portions of articles before deciding that you didn't
Dave Love <fx@gnu.org>
parents:
diff changeset
17790 want to read them anyway.
Dave Love <fx@gnu.org>
parents:
diff changeset
17791
Dave Love <fx@gnu.org>
parents:
diff changeset
17792 @item gnus-thread-hide-subtree
Dave Love <fx@gnu.org>
parents:
diff changeset
17793 If this is non-@code{nil}, all threads in the summary buffer will be
Dave Love <fx@gnu.org>
parents:
diff changeset
17794 hidden initially.
Dave Love <fx@gnu.org>
parents:
diff changeset
17795
Dave Love <fx@gnu.org>
parents:
diff changeset
17796 @item gnus-updated-mode-lines
Dave Love <fx@gnu.org>
parents:
diff changeset
17797 If this is @code{nil}, Gnus will not put information in the buffer mode
Dave Love <fx@gnu.org>
parents:
diff changeset
17798 lines, which might save some time.
Dave Love <fx@gnu.org>
parents:
diff changeset
17799 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
17800
Dave Love <fx@gnu.org>
parents:
diff changeset
17801
Dave Love <fx@gnu.org>
parents:
diff changeset
17802 @node Little Disk Space
Dave Love <fx@gnu.org>
parents:
diff changeset
17803 @subsection Little Disk Space
Dave Love <fx@gnu.org>
parents:
diff changeset
17804 @cindex disk space
Dave Love <fx@gnu.org>
parents:
diff changeset
17805
Dave Love <fx@gnu.org>
parents:
diff changeset
17806 The startup files can get rather large, so you may want to cut their
Dave Love <fx@gnu.org>
parents:
diff changeset
17807 sizes a bit if you are running out of space.
Dave Love <fx@gnu.org>
parents:
diff changeset
17808
Dave Love <fx@gnu.org>
parents:
diff changeset
17809 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
17810
Dave Love <fx@gnu.org>
parents:
diff changeset
17811 @item gnus-save-newsrc-file
Dave Love <fx@gnu.org>
parents:
diff changeset
17812 If this is @code{nil}, Gnus will never save @file{.newsrc}---it will
Dave Love <fx@gnu.org>
parents:
diff changeset
17813 only save @file{.newsrc.eld}. This means that you will not be able to
Dave Love <fx@gnu.org>
parents:
diff changeset
17814 use any other newsreaders than Gnus. This variable is @code{t} by
Dave Love <fx@gnu.org>
parents:
diff changeset
17815 default.
Dave Love <fx@gnu.org>
parents:
diff changeset
17816
Dave Love <fx@gnu.org>
parents:
diff changeset
17817 @item gnus-save-killed-list
Dave Love <fx@gnu.org>
parents:
diff changeset
17818 If this is @code{nil}, Gnus will not save the list of dead groups. You
Dave Love <fx@gnu.org>
parents:
diff changeset
17819 should also set @code{gnus-check-new-newsgroups} to @code{ask-server}
Dave Love <fx@gnu.org>
parents:
diff changeset
17820 and @code{gnus-check-bogus-newsgroups} to @code{nil} if you set this
Dave Love <fx@gnu.org>
parents:
diff changeset
17821 variable to @code{nil}. This variable is @code{t} by default.
Dave Love <fx@gnu.org>
parents:
diff changeset
17822
Dave Love <fx@gnu.org>
parents:
diff changeset
17823 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
17824
Dave Love <fx@gnu.org>
parents:
diff changeset
17825
Dave Love <fx@gnu.org>
parents:
diff changeset
17826 @node Slow Machine
Dave Love <fx@gnu.org>
parents:
diff changeset
17827 @subsection Slow Machine
Dave Love <fx@gnu.org>
parents:
diff changeset
17828 @cindex slow machine
Dave Love <fx@gnu.org>
parents:
diff changeset
17829
Dave Love <fx@gnu.org>
parents:
diff changeset
17830 If you have a slow machine, or are just really impatient, there are a
Dave Love <fx@gnu.org>
parents:
diff changeset
17831 few things you can do to make Gnus run faster.
Dave Love <fx@gnu.org>
parents:
diff changeset
17832
Dave Love <fx@gnu.org>
parents:
diff changeset
17833 Set @code{gnus-check-new-newsgroups} and
Dave Love <fx@gnu.org>
parents:
diff changeset
17834 @code{gnus-check-bogus-newsgroups} to @code{nil} to make startup faster.
Dave Love <fx@gnu.org>
parents:
diff changeset
17835
Dave Love <fx@gnu.org>
parents:
diff changeset
17836 Set @code{gnus-show-threads}, @code{gnus-use-cross-reference} and
Dave Love <fx@gnu.org>
parents:
diff changeset
17837 @code{gnus-nov-is-evil} to @code{nil} to make entering and exiting the
Dave Love <fx@gnu.org>
parents:
diff changeset
17838 summary buffer faster.
Dave Love <fx@gnu.org>
parents:
diff changeset
17839
Dave Love <fx@gnu.org>
parents:
diff changeset
17840 Set @code{gnus-article-display-hook} to @code{nil} to make article
Dave Love <fx@gnu.org>
parents:
diff changeset
17841 processing a bit faster.
Dave Love <fx@gnu.org>
parents:
diff changeset
17842
Dave Love <fx@gnu.org>
parents:
diff changeset
17843
Dave Love <fx@gnu.org>
parents:
diff changeset
17844 @page
Dave Love <fx@gnu.org>
parents:
diff changeset
17845 @node Troubleshooting
Dave Love <fx@gnu.org>
parents:
diff changeset
17846 @section Troubleshooting
Dave Love <fx@gnu.org>
parents:
diff changeset
17847 @cindex troubleshooting
Dave Love <fx@gnu.org>
parents:
diff changeset
17848
Dave Love <fx@gnu.org>
parents:
diff changeset
17849 Gnus works @emph{so} well straight out of the box---I can't imagine any
Dave Love <fx@gnu.org>
parents:
diff changeset
17850 problems, really.
Dave Love <fx@gnu.org>
parents:
diff changeset
17851
Dave Love <fx@gnu.org>
parents:
diff changeset
17852 Ahem.
Dave Love <fx@gnu.org>
parents:
diff changeset
17853
Dave Love <fx@gnu.org>
parents:
diff changeset
17854 @enumerate
Dave Love <fx@gnu.org>
parents:
diff changeset
17855
Dave Love <fx@gnu.org>
parents:
diff changeset
17856 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17857 Make sure your computer is switched on.
Dave Love <fx@gnu.org>
parents:
diff changeset
17858
Dave Love <fx@gnu.org>
parents:
diff changeset
17859 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17860 Make sure that you really load the current Gnus version. If you have
Dave Love <fx@gnu.org>
parents:
diff changeset
17861 been running @sc{gnus}, you need to exit Emacs and start it up again before
Dave Love <fx@gnu.org>
parents:
diff changeset
17862 Gnus will work.
Dave Love <fx@gnu.org>
parents:
diff changeset
17863
Dave Love <fx@gnu.org>
parents:
diff changeset
17864 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17865 Try doing an @kbd{M-x gnus-version}. If you get something that looks
Dave Love <fx@gnu.org>
parents:
diff changeset
17866 like @samp{Gnus v5.46; nntp 4.0} you have the right files loaded. If,
Dave Love <fx@gnu.org>
parents:
diff changeset
17867 on the other hand, you get something like @samp{NNTP 3.x} or @samp{nntp
Dave Love <fx@gnu.org>
parents:
diff changeset
17868 flee}, you have some old @file{.el} files lying around. Delete these.
Dave Love <fx@gnu.org>
parents:
diff changeset
17869
Dave Love <fx@gnu.org>
parents:
diff changeset
17870 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17871 Read the help group (@kbd{G h} in the group buffer) for a FAQ and a
Dave Love <fx@gnu.org>
parents:
diff changeset
17872 how-to.
Dave Love <fx@gnu.org>
parents:
diff changeset
17873
Dave Love <fx@gnu.org>
parents:
diff changeset
17874 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
17875 @vindex max-lisp-eval-depth
Dave Love <fx@gnu.org>
parents:
diff changeset
17876 Gnus works on many recursive structures, and in some extreme (and very
Dave Love <fx@gnu.org>
parents:
diff changeset
17877 rare) cases Gnus may recurse down ``too deeply'' and Emacs will beep at
Dave Love <fx@gnu.org>
parents:
diff changeset
17878 you. If this happens to you, set @code{max-lisp-eval-depth} to 500 or
Dave Love <fx@gnu.org>
parents:
diff changeset
17879 something like that.
Dave Love <fx@gnu.org>
parents:
diff changeset
17880 @end enumerate
Dave Love <fx@gnu.org>
parents:
diff changeset
17881
Dave Love <fx@gnu.org>
parents:
diff changeset
17882 If all else fails, report the problem as a bug.
Dave Love <fx@gnu.org>
parents:
diff changeset
17883
Dave Love <fx@gnu.org>
parents:
diff changeset
17884 @cindex bugs
Dave Love <fx@gnu.org>
parents:
diff changeset
17885 @cindex reporting bugs
Dave Love <fx@gnu.org>
parents:
diff changeset
17886
Dave Love <fx@gnu.org>
parents:
diff changeset
17887 @kindex M-x gnus-bug
Dave Love <fx@gnu.org>
parents:
diff changeset
17888 @findex gnus-bug
Dave Love <fx@gnu.org>
parents:
diff changeset
17889 If you find a bug in Gnus, you can report it with the @kbd{M-x gnus-bug}
Dave Love <fx@gnu.org>
parents:
diff changeset
17890 command. @kbd{M-x set-variable RET debug-on-error RET t RET}, and send
Dave Love <fx@gnu.org>
parents:
diff changeset
17891 me the backtrace. I will fix bugs, but I can only fix them if you send
Dave Love <fx@gnu.org>
parents:
diff changeset
17892 me a precise description as to how to reproduce the bug.
Dave Love <fx@gnu.org>
parents:
diff changeset
17893
Dave Love <fx@gnu.org>
parents:
diff changeset
17894 You really can never be too detailed in a bug report. Always use the
Dave Love <fx@gnu.org>
parents:
diff changeset
17895 @kbd{M-x gnus-bug} command when you make bug reports, even if it creates
Dave Love <fx@gnu.org>
parents:
diff changeset
17896 a 10Kb mail each time you use it, and even if you have sent me your
Dave Love <fx@gnu.org>
parents:
diff changeset
17897 environment 500 times before. I don't care. I want the full info each
Dave Love <fx@gnu.org>
parents:
diff changeset
17898 time.
Dave Love <fx@gnu.org>
parents:
diff changeset
17899
Dave Love <fx@gnu.org>
parents:
diff changeset
17900 It is also important to remember that I have no memory whatsoever. If
Dave Love <fx@gnu.org>
parents:
diff changeset
17901 you send a bug report, and I send you a reply, and then you just send
Dave Love <fx@gnu.org>
parents:
diff changeset
17902 back ``No, it's not! Moron!'', I will have no idea what you are
Dave Love <fx@gnu.org>
parents:
diff changeset
17903 insulting me about. Always over-explain everything. It's much easier
Dave Love <fx@gnu.org>
parents:
diff changeset
17904 for all of us---if I don't have all the information I need, I will just
Dave Love <fx@gnu.org>
parents:
diff changeset
17905 mail you and ask for more info, and everything takes more time.
Dave Love <fx@gnu.org>
parents:
diff changeset
17906
Dave Love <fx@gnu.org>
parents:
diff changeset
17907 If the problem you're seeing is very visual, and you can't quite explain
Dave Love <fx@gnu.org>
parents:
diff changeset
17908 it, copy the Emacs window to a file (with @code{xwd}, for instance), put
Dave Love <fx@gnu.org>
parents:
diff changeset
17909 it somewhere it can be reached, and include the URL of the picture in
Dave Love <fx@gnu.org>
parents:
diff changeset
17910 the bug report.
Dave Love <fx@gnu.org>
parents:
diff changeset
17911
Dave Love <fx@gnu.org>
parents:
diff changeset
17912 If you just need help, you are better off asking on
Dave Love <fx@gnu.org>
parents:
diff changeset
17913 @samp{gnu.emacs.gnus}. I'm not very helpful.
Dave Love <fx@gnu.org>
parents:
diff changeset
17914
Dave Love <fx@gnu.org>
parents:
diff changeset
17915 @cindex gnu.emacs.gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
17916 @cindex ding mailing list
Dave Love <fx@gnu.org>
parents:
diff changeset
17917 You can also ask on the ding mailing list---@samp{ding@@gnus.org}.
Dave Love <fx@gnu.org>
parents:
diff changeset
17918 Write to @samp{ding-request@@gnus.org} to subscribe.
Dave Love <fx@gnu.org>
parents:
diff changeset
17919
Dave Love <fx@gnu.org>
parents:
diff changeset
17920
Dave Love <fx@gnu.org>
parents:
diff changeset
17921 @page
Dave Love <fx@gnu.org>
parents:
diff changeset
17922 @node A Programmers Guide to Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
17923 @section A Programmer@'s Guide to Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
17924
Dave Love <fx@gnu.org>
parents:
diff changeset
17925 It is my hope that other people will figure out smart stuff that Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
17926 can do, and that other people will write those smart things as well. To
Dave Love <fx@gnu.org>
parents:
diff changeset
17927 facilitate that I thought it would be a good idea to describe the inner
Dave Love <fx@gnu.org>
parents:
diff changeset
17928 workings of Gnus. And some of the not-so-inner workings, while I'm at
Dave Love <fx@gnu.org>
parents:
diff changeset
17929 it.
Dave Love <fx@gnu.org>
parents:
diff changeset
17930
Dave Love <fx@gnu.org>
parents:
diff changeset
17931 You can never expect the internals of a program not to change, but I
Dave Love <fx@gnu.org>
parents:
diff changeset
17932 will be defining (in some details) the interface between Gnus and its
Dave Love <fx@gnu.org>
parents:
diff changeset
17933 backends (this is written in stone), the format of the score files
Dave Love <fx@gnu.org>
parents:
diff changeset
17934 (ditto), data structures (some are less likely to change than others)
Dave Love <fx@gnu.org>
parents:
diff changeset
17935 and general methods of operation.
Dave Love <fx@gnu.org>
parents:
diff changeset
17936
Dave Love <fx@gnu.org>
parents:
diff changeset
17937 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
17938 * Gnus Utility Functions:: Common functions and variable to use.
Dave Love <fx@gnu.org>
parents:
diff changeset
17939 * Backend Interface:: How Gnus communicates with the servers.
Dave Love <fx@gnu.org>
parents:
diff changeset
17940 * Score File Syntax:: A BNF definition of the score file standard.
Dave Love <fx@gnu.org>
parents:
diff changeset
17941 * Headers:: How Gnus stores headers internally.
Dave Love <fx@gnu.org>
parents:
diff changeset
17942 * Ranges:: A handy format for storing mucho numbers.
Dave Love <fx@gnu.org>
parents:
diff changeset
17943 * Group Info:: The group info format.
Dave Love <fx@gnu.org>
parents:
diff changeset
17944 * Extended Interactive:: Symbolic prefixes and stuff.
Dave Love <fx@gnu.org>
parents:
diff changeset
17945 * Emacs/XEmacs Code:: Gnus can be run under all modern Emacsen.
Dave Love <fx@gnu.org>
parents:
diff changeset
17946 * Various File Formats:: Formats of files that Gnus use.
Dave Love <fx@gnu.org>
parents:
diff changeset
17947 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
17948
Dave Love <fx@gnu.org>
parents:
diff changeset
17949
Dave Love <fx@gnu.org>
parents:
diff changeset
17950 @node Gnus Utility Functions
Dave Love <fx@gnu.org>
parents:
diff changeset
17951 @subsection Gnus Utility Functions
Dave Love <fx@gnu.org>
parents:
diff changeset
17952 @cindex Gnus utility functions
Dave Love <fx@gnu.org>
parents:
diff changeset
17953 @cindex utility functions
Dave Love <fx@gnu.org>
parents:
diff changeset
17954 @cindex functions
Dave Love <fx@gnu.org>
parents:
diff changeset
17955 @cindex internal variables
Dave Love <fx@gnu.org>
parents:
diff changeset
17956
Dave Love <fx@gnu.org>
parents:
diff changeset
17957 When writing small functions to be run from hooks (and stuff), it's
Dave Love <fx@gnu.org>
parents:
diff changeset
17958 vital to have access to the Gnus internal functions and variables.
Dave Love <fx@gnu.org>
parents:
diff changeset
17959 Below is a list of the most common ones.
Dave Love <fx@gnu.org>
parents:
diff changeset
17960
Dave Love <fx@gnu.org>
parents:
diff changeset
17961 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
17962
Dave Love <fx@gnu.org>
parents:
diff changeset
17963 @item gnus-newsgroup-name
Dave Love <fx@gnu.org>
parents:
diff changeset
17964 @vindex gnus-newsgroup-name
Dave Love <fx@gnu.org>
parents:
diff changeset
17965 This variable holds the name of the current newsgroup.
Dave Love <fx@gnu.org>
parents:
diff changeset
17966
Dave Love <fx@gnu.org>
parents:
diff changeset
17967 @item gnus-find-method-for-group
Dave Love <fx@gnu.org>
parents:
diff changeset
17968 @findex gnus-find-method-for-group
Dave Love <fx@gnu.org>
parents:
diff changeset
17969 A function that returns the select method for @var{group}.
Dave Love <fx@gnu.org>
parents:
diff changeset
17970
Dave Love <fx@gnu.org>
parents:
diff changeset
17971 @item gnus-group-real-name
Dave Love <fx@gnu.org>
parents:
diff changeset
17972 @findex gnus-group-real-name
Dave Love <fx@gnu.org>
parents:
diff changeset
17973 Takes a full (prefixed) Gnus group name, and returns the unprefixed
Dave Love <fx@gnu.org>
parents:
diff changeset
17974 name.
Dave Love <fx@gnu.org>
parents:
diff changeset
17975
Dave Love <fx@gnu.org>
parents:
diff changeset
17976 @item gnus-group-prefixed-name
Dave Love <fx@gnu.org>
parents:
diff changeset
17977 @findex gnus-group-prefixed-name
Dave Love <fx@gnu.org>
parents:
diff changeset
17978 Takes an unprefixed group name and a select method, and returns the full
Dave Love <fx@gnu.org>
parents:
diff changeset
17979 (prefixed) Gnus group name.
Dave Love <fx@gnu.org>
parents:
diff changeset
17980
Dave Love <fx@gnu.org>
parents:
diff changeset
17981 @item gnus-get-info
Dave Love <fx@gnu.org>
parents:
diff changeset
17982 @findex gnus-get-info
Dave Love <fx@gnu.org>
parents:
diff changeset
17983 Returns the group info list for @var{group}.
Dave Love <fx@gnu.org>
parents:
diff changeset
17984
Dave Love <fx@gnu.org>
parents:
diff changeset
17985 @item gnus-group-unread
Dave Love <fx@gnu.org>
parents:
diff changeset
17986 @findex gnus-group-unread
Dave Love <fx@gnu.org>
parents:
diff changeset
17987 The number of unread articles in @var{group}, or @code{t} if that is
Dave Love <fx@gnu.org>
parents:
diff changeset
17988 unknown.
Dave Love <fx@gnu.org>
parents:
diff changeset
17989
Dave Love <fx@gnu.org>
parents:
diff changeset
17990 @item gnus-active
Dave Love <fx@gnu.org>
parents:
diff changeset
17991 @findex gnus-active
Dave Love <fx@gnu.org>
parents:
diff changeset
17992 The active entry for @var{group}.
Dave Love <fx@gnu.org>
parents:
diff changeset
17993
Dave Love <fx@gnu.org>
parents:
diff changeset
17994 @item gnus-set-active
Dave Love <fx@gnu.org>
parents:
diff changeset
17995 @findex gnus-set-active
Dave Love <fx@gnu.org>
parents:
diff changeset
17996 Set the active entry for @var{group}.
Dave Love <fx@gnu.org>
parents:
diff changeset
17997
Dave Love <fx@gnu.org>
parents:
diff changeset
17998 @item gnus-add-current-to-buffer-list
Dave Love <fx@gnu.org>
parents:
diff changeset
17999 @findex gnus-add-current-to-buffer-list
Dave Love <fx@gnu.org>
parents:
diff changeset
18000 Adds the current buffer to the list of buffers to be killed on Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
18001 exit.
Dave Love <fx@gnu.org>
parents:
diff changeset
18002
Dave Love <fx@gnu.org>
parents:
diff changeset
18003 @item gnus-continuum-version
Dave Love <fx@gnu.org>
parents:
diff changeset
18004 @findex gnus-continuum-version
Dave Love <fx@gnu.org>
parents:
diff changeset
18005 Takes a Gnus version string as a parameter and returns a floating point
Dave Love <fx@gnu.org>
parents:
diff changeset
18006 number. Earlier versions will always get a lower number than later
Dave Love <fx@gnu.org>
parents:
diff changeset
18007 versions.
Dave Love <fx@gnu.org>
parents:
diff changeset
18008
Dave Love <fx@gnu.org>
parents:
diff changeset
18009 @item gnus-group-read-only-p
Dave Love <fx@gnu.org>
parents:
diff changeset
18010 @findex gnus-group-read-only-p
Dave Love <fx@gnu.org>
parents:
diff changeset
18011 Says whether @var{group} is read-only or not.
Dave Love <fx@gnu.org>
parents:
diff changeset
18012
Dave Love <fx@gnu.org>
parents:
diff changeset
18013 @item gnus-news-group-p
Dave Love <fx@gnu.org>
parents:
diff changeset
18014 @findex gnus-news-group-p
Dave Love <fx@gnu.org>
parents:
diff changeset
18015 Says whether @var{group} came from a news backend.
Dave Love <fx@gnu.org>
parents:
diff changeset
18016
Dave Love <fx@gnu.org>
parents:
diff changeset
18017 @item gnus-ephemeral-group-p
Dave Love <fx@gnu.org>
parents:
diff changeset
18018 @findex gnus-ephemeral-group-p
Dave Love <fx@gnu.org>
parents:
diff changeset
18019 Says whether @var{group} is ephemeral or not.
Dave Love <fx@gnu.org>
parents:
diff changeset
18020
Dave Love <fx@gnu.org>
parents:
diff changeset
18021 @item gnus-server-to-method
Dave Love <fx@gnu.org>
parents:
diff changeset
18022 @findex gnus-server-to-method
Dave Love <fx@gnu.org>
parents:
diff changeset
18023 Returns the select method corresponding to @var{server}.
Dave Love <fx@gnu.org>
parents:
diff changeset
18024
Dave Love <fx@gnu.org>
parents:
diff changeset
18025 @item gnus-server-equal
Dave Love <fx@gnu.org>
parents:
diff changeset
18026 @findex gnus-server-equal
Dave Love <fx@gnu.org>
parents:
diff changeset
18027 Says whether two virtual servers are equal.
Dave Love <fx@gnu.org>
parents:
diff changeset
18028
Dave Love <fx@gnu.org>
parents:
diff changeset
18029 @item gnus-group-native-p
Dave Love <fx@gnu.org>
parents:
diff changeset
18030 @findex gnus-group-native-p
Dave Love <fx@gnu.org>
parents:
diff changeset
18031 Says whether @var{group} is native or not.
Dave Love <fx@gnu.org>
parents:
diff changeset
18032
Dave Love <fx@gnu.org>
parents:
diff changeset
18033 @item gnus-group-secondary-p
Dave Love <fx@gnu.org>
parents:
diff changeset
18034 @findex gnus-group-secondary-p
Dave Love <fx@gnu.org>
parents:
diff changeset
18035 Says whether @var{group} is secondary or not.
Dave Love <fx@gnu.org>
parents:
diff changeset
18036
Dave Love <fx@gnu.org>
parents:
diff changeset
18037 @item gnus-group-foreign-p
Dave Love <fx@gnu.org>
parents:
diff changeset
18038 @findex gnus-group-foreign-p
Dave Love <fx@gnu.org>
parents:
diff changeset
18039 Says whether @var{group} is foreign or not.
Dave Love <fx@gnu.org>
parents:
diff changeset
18040
Dave Love <fx@gnu.org>
parents:
diff changeset
18041 @item group-group-find-parameter
Dave Love <fx@gnu.org>
parents:
diff changeset
18042 @findex group-group-find-parameter
Dave Love <fx@gnu.org>
parents:
diff changeset
18043 Returns the parameter list of @var{group}. If given a second parameter,
Dave Love <fx@gnu.org>
parents:
diff changeset
18044 returns the value of that parameter for @var{group}.
Dave Love <fx@gnu.org>
parents:
diff changeset
18045
Dave Love <fx@gnu.org>
parents:
diff changeset
18046 @item gnus-group-set-parameter
Dave Love <fx@gnu.org>
parents:
diff changeset
18047 @findex gnus-group-set-parameter
Dave Love <fx@gnu.org>
parents:
diff changeset
18048 Takes three parameters; @var{group}, @var{parameter} and @var{value}.
Dave Love <fx@gnu.org>
parents:
diff changeset
18049
Dave Love <fx@gnu.org>
parents:
diff changeset
18050 @item gnus-narrow-to-body
Dave Love <fx@gnu.org>
parents:
diff changeset
18051 @findex gnus-narrow-to-body
Dave Love <fx@gnu.org>
parents:
diff changeset
18052 Narrows the current buffer to the body of the article.
Dave Love <fx@gnu.org>
parents:
diff changeset
18053
Dave Love <fx@gnu.org>
parents:
diff changeset
18054 @item gnus-check-backend-function
Dave Love <fx@gnu.org>
parents:
diff changeset
18055 @findex gnus-check-backend-function
Dave Love <fx@gnu.org>
parents:
diff changeset
18056 Takes two parameters, @var{function} and @var{group}. If the backend
Dave Love <fx@gnu.org>
parents:
diff changeset
18057 @var{group} comes from supports @var{function}, return non-@code{nil}.
Dave Love <fx@gnu.org>
parents:
diff changeset
18058
Dave Love <fx@gnu.org>
parents:
diff changeset
18059 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
18060 (gnus-check-backend-function "request-scan" "nnml:misc")
Dave Love <fx@gnu.org>
parents:
diff changeset
18061 => t
Dave Love <fx@gnu.org>
parents:
diff changeset
18062 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
18063
Dave Love <fx@gnu.org>
parents:
diff changeset
18064 @item gnus-read-method
Dave Love <fx@gnu.org>
parents:
diff changeset
18065 @findex gnus-read-method
Dave Love <fx@gnu.org>
parents:
diff changeset
18066 Prompts the user for a select method.
Dave Love <fx@gnu.org>
parents:
diff changeset
18067
Dave Love <fx@gnu.org>
parents:
diff changeset
18068 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
18069
Dave Love <fx@gnu.org>
parents:
diff changeset
18070
Dave Love <fx@gnu.org>
parents:
diff changeset
18071 @node Backend Interface
Dave Love <fx@gnu.org>
parents:
diff changeset
18072 @subsection Backend Interface
Dave Love <fx@gnu.org>
parents:
diff changeset
18073
Dave Love <fx@gnu.org>
parents:
diff changeset
18074 Gnus doesn't know anything about @sc{nntp}, spools, mail or virtual
Dave Love <fx@gnu.org>
parents:
diff changeset
18075 groups. It only knows how to talk to @dfn{virtual servers}. A virtual
Dave Love <fx@gnu.org>
parents:
diff changeset
18076 server is a @dfn{backend} and some @dfn{backend variables}. As examples
Dave Love <fx@gnu.org>
parents:
diff changeset
18077 of the first, we have @code{nntp}, @code{nnspool} and @code{nnmbox}. As
Dave Love <fx@gnu.org>
parents:
diff changeset
18078 examples of the latter we have @code{nntp-port-number} and
Dave Love <fx@gnu.org>
parents:
diff changeset
18079 @code{nnmbox-directory}.
Dave Love <fx@gnu.org>
parents:
diff changeset
18080
Dave Love <fx@gnu.org>
parents:
diff changeset
18081 When Gnus asks for information from a backend---say @code{nntp}---on
Dave Love <fx@gnu.org>
parents:
diff changeset
18082 something, it will normally include a virtual server name in the
Dave Love <fx@gnu.org>
parents:
diff changeset
18083 function parameters. (If not, the backend should use the ``current''
Dave Love <fx@gnu.org>
parents:
diff changeset
18084 virtual server.) For instance, @code{nntp-request-list} takes a virtual
Dave Love <fx@gnu.org>
parents:
diff changeset
18085 server as its only (optional) parameter. If this virtual server hasn't
Dave Love <fx@gnu.org>
parents:
diff changeset
18086 been opened, the function should fail.
Dave Love <fx@gnu.org>
parents:
diff changeset
18087
Dave Love <fx@gnu.org>
parents:
diff changeset
18088 Note that a virtual server name has no relation to some physical server
Dave Love <fx@gnu.org>
parents:
diff changeset
18089 name. Take this example:
Dave Love <fx@gnu.org>
parents:
diff changeset
18090
Dave Love <fx@gnu.org>
parents:
diff changeset
18091 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
18092 (nntp "odd-one"
Dave Love <fx@gnu.org>
parents:
diff changeset
18093 (nntp-address "ifi.uio.no")
Dave Love <fx@gnu.org>
parents:
diff changeset
18094 (nntp-port-number 4324))
Dave Love <fx@gnu.org>
parents:
diff changeset
18095 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
18096
Dave Love <fx@gnu.org>
parents:
diff changeset
18097 Here the virtual server name is @samp{odd-one} while the name of
Dave Love <fx@gnu.org>
parents:
diff changeset
18098 the physical server is @samp{ifi.uio.no}.
Dave Love <fx@gnu.org>
parents:
diff changeset
18099
Dave Love <fx@gnu.org>
parents:
diff changeset
18100 The backends should be able to switch between several virtual servers.
Dave Love <fx@gnu.org>
parents:
diff changeset
18101 The standard backends implement this by keeping an alist of virtual
Dave Love <fx@gnu.org>
parents:
diff changeset
18102 server environments that they pull down/push up when needed.
Dave Love <fx@gnu.org>
parents:
diff changeset
18103
Dave Love <fx@gnu.org>
parents:
diff changeset
18104 There are two groups of interface functions: @dfn{required functions},
Dave Love <fx@gnu.org>
parents:
diff changeset
18105 which must be present, and @dfn{optional functions}, which Gnus will
Dave Love <fx@gnu.org>
parents:
diff changeset
18106 always check for presence before attempting to call 'em.
Dave Love <fx@gnu.org>
parents:
diff changeset
18107
Dave Love <fx@gnu.org>
parents:
diff changeset
18108 All these functions are expected to return data in the buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
18109 @code{nntp-server-buffer} (@samp{ *nntpd*}), which is somewhat
Dave Love <fx@gnu.org>
parents:
diff changeset
18110 unfortunately named, but we'll have to live with it. When I talk about
Dave Love <fx@gnu.org>
parents:
diff changeset
18111 @dfn{resulting data}, I always refer to the data in that buffer. When I
Dave Love <fx@gnu.org>
parents:
diff changeset
18112 talk about @dfn{return value}, I talk about the function value returned by
Dave Love <fx@gnu.org>
parents:
diff changeset
18113 the function call. Functions that fail should return @code{nil} as the
Dave Love <fx@gnu.org>
parents:
diff changeset
18114 return value.
Dave Love <fx@gnu.org>
parents:
diff changeset
18115
Dave Love <fx@gnu.org>
parents:
diff changeset
18116 Some backends could be said to be @dfn{server-forming} backends, and
Dave Love <fx@gnu.org>
parents:
diff changeset
18117 some might be said not to be. The latter are backends that generally
Dave Love <fx@gnu.org>
parents:
diff changeset
18118 only operate on one group at a time, and have no concept of ``server''
Dave Love <fx@gnu.org>
parents:
diff changeset
18119 -- they have a group, and they deliver info on that group and nothing
Dave Love <fx@gnu.org>
parents:
diff changeset
18120 more.
Dave Love <fx@gnu.org>
parents:
diff changeset
18121
Dave Love <fx@gnu.org>
parents:
diff changeset
18122 In the examples and definitions I will refer to the imaginary backend
Dave Love <fx@gnu.org>
parents:
diff changeset
18123 @code{nnchoke}.
Dave Love <fx@gnu.org>
parents:
diff changeset
18124
Dave Love <fx@gnu.org>
parents:
diff changeset
18125 @cindex @code{nnchoke}
Dave Love <fx@gnu.org>
parents:
diff changeset
18126
Dave Love <fx@gnu.org>
parents:
diff changeset
18127 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
18128 * Required Backend Functions:: Functions that must be implemented.
Dave Love <fx@gnu.org>
parents:
diff changeset
18129 * Optional Backend Functions:: Functions that need not be implemented.
Dave Love <fx@gnu.org>
parents:
diff changeset
18130 * Error Messaging:: How to get messages and report errors.
Dave Love <fx@gnu.org>
parents:
diff changeset
18131 * Writing New Backends:: Extending old backends.
Dave Love <fx@gnu.org>
parents:
diff changeset
18132 * Hooking New Backends Into Gnus:: What has to be done on the Gnus end.
Dave Love <fx@gnu.org>
parents:
diff changeset
18133 * Mail-like Backends:: Some tips on mail backends.
Dave Love <fx@gnu.org>
parents:
diff changeset
18134 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
18135
Dave Love <fx@gnu.org>
parents:
diff changeset
18136
Dave Love <fx@gnu.org>
parents:
diff changeset
18137 @node Required Backend Functions
Dave Love <fx@gnu.org>
parents:
diff changeset
18138 @subsubsection Required Backend Functions
Dave Love <fx@gnu.org>
parents:
diff changeset
18139
Dave Love <fx@gnu.org>
parents:
diff changeset
18140 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
18141
Dave Love <fx@gnu.org>
parents:
diff changeset
18142 @item (nnchoke-retrieve-headers ARTICLES &optional GROUP SERVER FETCH-OLD)
Dave Love <fx@gnu.org>
parents:
diff changeset
18143
Dave Love <fx@gnu.org>
parents:
diff changeset
18144 @var{articles} is either a range of article numbers or a list of
Dave Love <fx@gnu.org>
parents:
diff changeset
18145 @code{Message-ID}s. Current backends do not fully support either---only
Dave Love <fx@gnu.org>
parents:
diff changeset
18146 sequences (lists) of article numbers, and most backends do not support
Dave Love <fx@gnu.org>
parents:
diff changeset
18147 retrieval of @code{Message-ID}s. But they should try for both.
Dave Love <fx@gnu.org>
parents:
diff changeset
18148
Dave Love <fx@gnu.org>
parents:
diff changeset
18149 The result data should either be HEADs or NOV lines, and the result
Dave Love <fx@gnu.org>
parents:
diff changeset
18150 value should either be @code{headers} or @code{nov} to reflect this.
Dave Love <fx@gnu.org>
parents:
diff changeset
18151 This might later be expanded to @code{various}, which will be a mixture
Dave Love <fx@gnu.org>
parents:
diff changeset
18152 of HEADs and NOV lines, but this is currently not supported by Gnus.
Dave Love <fx@gnu.org>
parents:
diff changeset
18153
Dave Love <fx@gnu.org>
parents:
diff changeset
18154 If @var{fetch-old} is non-@code{nil} it says to try fetching "extra
Dave Love <fx@gnu.org>
parents:
diff changeset
18155 headers", in some meaning of the word. This is generally done by
Dave Love <fx@gnu.org>
parents:
diff changeset
18156 fetching (at most) @var{fetch-old} extra headers less than the smallest
Dave Love <fx@gnu.org>
parents:
diff changeset
18157 article number in @code{articles}, and filling the gaps as well. The
Dave Love <fx@gnu.org>
parents:
diff changeset
18158 presence of this parameter can be ignored if the backend finds it
Dave Love <fx@gnu.org>
parents:
diff changeset
18159 cumbersome to follow the request. If this is non-@code{nil} and not a
Dave Love <fx@gnu.org>
parents:
diff changeset
18160 number, do maximum fetches.
Dave Love <fx@gnu.org>
parents:
diff changeset
18161
Dave Love <fx@gnu.org>
parents:
diff changeset
18162 Here's an example HEAD:
Dave Love <fx@gnu.org>
parents:
diff changeset
18163
Dave Love <fx@gnu.org>
parents:
diff changeset
18164 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
18165 221 1056 Article retrieved.
Dave Love <fx@gnu.org>
parents:
diff changeset
18166 Path: ifi.uio.no!sturles
Dave Love <fx@gnu.org>
parents:
diff changeset
18167 From: sturles@@ifi.uio.no (Sturle Sunde)
Dave Love <fx@gnu.org>
parents:
diff changeset
18168 Newsgroups: ifi.discussion
Dave Love <fx@gnu.org>
parents:
diff changeset
18169 Subject: Re: Something very droll
Dave Love <fx@gnu.org>
parents:
diff changeset
18170 Date: 27 Oct 1994 14:02:57 +0100
Dave Love <fx@gnu.org>
parents:
diff changeset
18171 Organization: Dept. of Informatics, University of Oslo, Norway
Dave Love <fx@gnu.org>
parents:
diff changeset
18172 Lines: 26
Dave Love <fx@gnu.org>
parents:
diff changeset
18173 Message-ID: <38o8e1$a0o@@holmenkollen.ifi.uio.no>
Dave Love <fx@gnu.org>
parents:
diff changeset
18174 References: <38jdmq$4qu@@visbur.ifi.uio.no>
Dave Love <fx@gnu.org>
parents:
diff changeset
18175 NNTP-Posting-Host: holmenkollen.ifi.uio.no
Dave Love <fx@gnu.org>
parents:
diff changeset
18176 .
Dave Love <fx@gnu.org>
parents:
diff changeset
18177 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
18178
Dave Love <fx@gnu.org>
parents:
diff changeset
18179 So a @code{headers} return value would imply that there's a number of
Dave Love <fx@gnu.org>
parents:
diff changeset
18180 these in the data buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
18181
Dave Love <fx@gnu.org>
parents:
diff changeset
18182 Here's a BNF definition of such a buffer:
Dave Love <fx@gnu.org>
parents:
diff changeset
18183
Dave Love <fx@gnu.org>
parents:
diff changeset
18184 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
18185 headers = *head
Dave Love <fx@gnu.org>
parents:
diff changeset
18186 head = error / valid-head
Dave Love <fx@gnu.org>
parents:
diff changeset
18187 error-message = [ "4" / "5" ] 2number " " <error message> eol
Dave Love <fx@gnu.org>
parents:
diff changeset
18188 valid-head = valid-message *header "." eol
Dave Love <fx@gnu.org>
parents:
diff changeset
18189 valid-message = "221 " <number> " Article retrieved." eol
Dave Love <fx@gnu.org>
parents:
diff changeset
18190 header = <text> eol
Dave Love <fx@gnu.org>
parents:
diff changeset
18191 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
18192
Dave Love <fx@gnu.org>
parents:
diff changeset
18193 If the return value is @code{nov}, the data buffer should contain
Dave Love <fx@gnu.org>
parents:
diff changeset
18194 @dfn{network overview database} lines. These are basically fields
Dave Love <fx@gnu.org>
parents:
diff changeset
18195 separated by tabs.
Dave Love <fx@gnu.org>
parents:
diff changeset
18196
Dave Love <fx@gnu.org>
parents:
diff changeset
18197 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
18198 nov-buffer = *nov-line
Dave Love <fx@gnu.org>
parents:
diff changeset
18199 nov-line = 8*9 [ field <TAB> ] eol
Dave Love <fx@gnu.org>
parents:
diff changeset
18200 field = <text except TAB>
Dave Love <fx@gnu.org>
parents:
diff changeset
18201 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
18202
Dave Love <fx@gnu.org>
parents:
diff changeset
18203 For a closer look at what should be in those fields,
Dave Love <fx@gnu.org>
parents:
diff changeset
18204 @pxref{Headers}.
Dave Love <fx@gnu.org>
parents:
diff changeset
18205
Dave Love <fx@gnu.org>
parents:
diff changeset
18206
Dave Love <fx@gnu.org>
parents:
diff changeset
18207 @item (nnchoke-open-server SERVER &optional DEFINITIONS)
Dave Love <fx@gnu.org>
parents:
diff changeset
18208
Dave Love <fx@gnu.org>
parents:
diff changeset
18209 @var{server} is here the virtual server name. @var{definitions} is a
Dave Love <fx@gnu.org>
parents:
diff changeset
18210 list of @code{(VARIABLE VALUE)} pairs that define this virtual server.
Dave Love <fx@gnu.org>
parents:
diff changeset
18211
Dave Love <fx@gnu.org>
parents:
diff changeset
18212 If the server can't be opened, no error should be signaled. The backend
Dave Love <fx@gnu.org>
parents:
diff changeset
18213 may then choose to refuse further attempts at connecting to this
Dave Love <fx@gnu.org>
parents:
diff changeset
18214 server. In fact, it should do so.
Dave Love <fx@gnu.org>
parents:
diff changeset
18215
Dave Love <fx@gnu.org>
parents:
diff changeset
18216 If the server is opened already, this function should return a
Dave Love <fx@gnu.org>
parents:
diff changeset
18217 non-@code{nil} value. There should be no data returned.
Dave Love <fx@gnu.org>
parents:
diff changeset
18218
Dave Love <fx@gnu.org>
parents:
diff changeset
18219
Dave Love <fx@gnu.org>
parents:
diff changeset
18220 @item (nnchoke-close-server &optional SERVER)
Dave Love <fx@gnu.org>
parents:
diff changeset
18221
Dave Love <fx@gnu.org>
parents:
diff changeset
18222 Close connection to @var{server} and free all resources connected
Dave Love <fx@gnu.org>
parents:
diff changeset
18223 to it. Return @code{nil} if the server couldn't be closed for some
Dave Love <fx@gnu.org>
parents:
diff changeset
18224 reason.
Dave Love <fx@gnu.org>
parents:
diff changeset
18225
Dave Love <fx@gnu.org>
parents:
diff changeset
18226 There should be no data returned.
Dave Love <fx@gnu.org>
parents:
diff changeset
18227
Dave Love <fx@gnu.org>
parents:
diff changeset
18228
Dave Love <fx@gnu.org>
parents:
diff changeset
18229 @item (nnchoke-request-close)
Dave Love <fx@gnu.org>
parents:
diff changeset
18230
Dave Love <fx@gnu.org>
parents:
diff changeset
18231 Close connection to all servers and free all resources that the backend
Dave Love <fx@gnu.org>
parents:
diff changeset
18232 have reserved. All buffers that have been created by that backend
Dave Love <fx@gnu.org>
parents:
diff changeset
18233 should be killed. (Not the @code{nntp-server-buffer}, though.) This
Dave Love <fx@gnu.org>
parents:
diff changeset
18234 function is generally only called when Gnus is shutting down.
Dave Love <fx@gnu.org>
parents:
diff changeset
18235
Dave Love <fx@gnu.org>
parents:
diff changeset
18236 There should be no data returned.
Dave Love <fx@gnu.org>
parents:
diff changeset
18237
Dave Love <fx@gnu.org>
parents:
diff changeset
18238
Dave Love <fx@gnu.org>
parents:
diff changeset
18239 @item (nnchoke-server-opened &optional SERVER)
Dave Love <fx@gnu.org>
parents:
diff changeset
18240
Dave Love <fx@gnu.org>
parents:
diff changeset
18241 If @var{server} is the current virtual server, and the connection to the
Dave Love <fx@gnu.org>
parents:
diff changeset
18242 physical server is alive, then this function should return a
Dave Love <fx@gnu.org>
parents:
diff changeset
18243 non-@code{nil} vlue. This function should under no circumstances
Dave Love <fx@gnu.org>
parents:
diff changeset
18244 attempt to reconnect to a server we have lost connection to.
Dave Love <fx@gnu.org>
parents:
diff changeset
18245
Dave Love <fx@gnu.org>
parents:
diff changeset
18246 There should be no data returned.
Dave Love <fx@gnu.org>
parents:
diff changeset
18247
Dave Love <fx@gnu.org>
parents:
diff changeset
18248
Dave Love <fx@gnu.org>
parents:
diff changeset
18249 @item (nnchoke-status-message &optional SERVER)
Dave Love <fx@gnu.org>
parents:
diff changeset
18250
Dave Love <fx@gnu.org>
parents:
diff changeset
18251 This function should return the last error message from @var{server}.
Dave Love <fx@gnu.org>
parents:
diff changeset
18252
Dave Love <fx@gnu.org>
parents:
diff changeset
18253 There should be no data returned.
Dave Love <fx@gnu.org>
parents:
diff changeset
18254
Dave Love <fx@gnu.org>
parents:
diff changeset
18255
Dave Love <fx@gnu.org>
parents:
diff changeset
18256 @item (nnchoke-request-article ARTICLE &optional GROUP SERVER TO-BUFFER)
Dave Love <fx@gnu.org>
parents:
diff changeset
18257
Dave Love <fx@gnu.org>
parents:
diff changeset
18258 The result data from this function should be the article specified by
Dave Love <fx@gnu.org>
parents:
diff changeset
18259 @var{article}. This might either be a @code{Message-ID} or a number.
Dave Love <fx@gnu.org>
parents:
diff changeset
18260 It is optional whether to implement retrieval by @code{Message-ID}, but
Dave Love <fx@gnu.org>
parents:
diff changeset
18261 it would be nice if that were possible.
Dave Love <fx@gnu.org>
parents:
diff changeset
18262
Dave Love <fx@gnu.org>
parents:
diff changeset
18263 If @var{to-buffer} is non-@code{nil}, the result data should be returned
Dave Love <fx@gnu.org>
parents:
diff changeset
18264 in this buffer instead of the normal data buffer. This is to make it
Dave Love <fx@gnu.org>
parents:
diff changeset
18265 possible to avoid copying large amounts of data from one buffer to
Dave Love <fx@gnu.org>
parents:
diff changeset
18266 another, while Gnus mainly requests articles to be inserted directly
Dave Love <fx@gnu.org>
parents:
diff changeset
18267 into its article buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
18268
Dave Love <fx@gnu.org>
parents:
diff changeset
18269 If it is at all possible, this function should return a cons cell where
Dave Love <fx@gnu.org>
parents:
diff changeset
18270 the @code{car} is the group name the article was fetched from, and the @code{cdr} is
Dave Love <fx@gnu.org>
parents:
diff changeset
18271 the article number. This will enable Gnus to find out what the real
Dave Love <fx@gnu.org>
parents:
diff changeset
18272 group and article numbers are when fetching articles by
Dave Love <fx@gnu.org>
parents:
diff changeset
18273 @code{Message-ID}. If this isn't possible, @code{t} should be returned
Dave Love <fx@gnu.org>
parents:
diff changeset
18274 on successful article retrieval.
Dave Love <fx@gnu.org>
parents:
diff changeset
18275
Dave Love <fx@gnu.org>
parents:
diff changeset
18276
Dave Love <fx@gnu.org>
parents:
diff changeset
18277 @item (nnchoke-request-group GROUP &optional SERVER FAST)
Dave Love <fx@gnu.org>
parents:
diff changeset
18278
Dave Love <fx@gnu.org>
parents:
diff changeset
18279 Get data on @var{group}. This function also has the side effect of
Dave Love <fx@gnu.org>
parents:
diff changeset
18280 making @var{group} the current group.
Dave Love <fx@gnu.org>
parents:
diff changeset
18281
Dave Love <fx@gnu.org>
parents:
diff changeset
18282 If @var{FAST}, don't bother to return useful data, just make @var{group}
Dave Love <fx@gnu.org>
parents:
diff changeset
18283 the current group.
Dave Love <fx@gnu.org>
parents:
diff changeset
18284
Dave Love <fx@gnu.org>
parents:
diff changeset
18285 Here's an example of some result data and a definition of the same:
Dave Love <fx@gnu.org>
parents:
diff changeset
18286
Dave Love <fx@gnu.org>
parents:
diff changeset
18287 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
18288 211 56 1000 1059 ifi.discussion
Dave Love <fx@gnu.org>
parents:
diff changeset
18289 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
18290
Dave Love <fx@gnu.org>
parents:
diff changeset
18291 The first number is the status, which should be 211. Next is the
Dave Love <fx@gnu.org>
parents:
diff changeset
18292 total number of articles in the group, the lowest article number, the
Dave Love <fx@gnu.org>
parents:
diff changeset
18293 highest article number, and finally the group name. Note that the total
Dave Love <fx@gnu.org>
parents:
diff changeset
18294 number of articles may be less than one might think while just
Dave Love <fx@gnu.org>
parents:
diff changeset
18295 considering the highest and lowest article numbers, but some articles
Dave Love <fx@gnu.org>
parents:
diff changeset
18296 may have been canceled. Gnus just discards the total-number, so
Dave Love <fx@gnu.org>
parents:
diff changeset
18297 whether one should take the bother to generate it properly (if that is a
Dave Love <fx@gnu.org>
parents:
diff changeset
18298 problem) is left as an exercise to the reader.
Dave Love <fx@gnu.org>
parents:
diff changeset
18299
Dave Love <fx@gnu.org>
parents:
diff changeset
18300 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
18301 group-status = [ error / info ] eol
Dave Love <fx@gnu.org>
parents:
diff changeset
18302 error = [ "4" / "5" ] 2<number> " " <Error message>
Dave Love <fx@gnu.org>
parents:
diff changeset
18303 info = "211 " 3* [ <number> " " ] <string>
Dave Love <fx@gnu.org>
parents:
diff changeset
18304 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
18305
Dave Love <fx@gnu.org>
parents:
diff changeset
18306
Dave Love <fx@gnu.org>
parents:
diff changeset
18307 @item (nnchoke-close-group GROUP &optional SERVER)
Dave Love <fx@gnu.org>
parents:
diff changeset
18308
Dave Love <fx@gnu.org>
parents:
diff changeset
18309 Close @var{group} and free any resources connected to it. This will be
Dave Love <fx@gnu.org>
parents:
diff changeset
18310 a no-op on most backends.
Dave Love <fx@gnu.org>
parents:
diff changeset
18311
Dave Love <fx@gnu.org>
parents:
diff changeset
18312 There should be no data returned.
Dave Love <fx@gnu.org>
parents:
diff changeset
18313
Dave Love <fx@gnu.org>
parents:
diff changeset
18314
Dave Love <fx@gnu.org>
parents:
diff changeset
18315 @item (nnchoke-request-list &optional SERVER)
Dave Love <fx@gnu.org>
parents:
diff changeset
18316
Dave Love <fx@gnu.org>
parents:
diff changeset
18317 Return a list of all groups available on @var{server}. And that means
Dave Love <fx@gnu.org>
parents:
diff changeset
18318 @emph{all}.
Dave Love <fx@gnu.org>
parents:
diff changeset
18319
Dave Love <fx@gnu.org>
parents:
diff changeset
18320 Here's an example from a server that only carries two groups:
Dave Love <fx@gnu.org>
parents:
diff changeset
18321
Dave Love <fx@gnu.org>
parents:
diff changeset
18322 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
18323 ifi.test 0000002200 0000002000 y
Dave Love <fx@gnu.org>
parents:
diff changeset
18324 ifi.discussion 3324 3300 n
Dave Love <fx@gnu.org>
parents:
diff changeset
18325 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
18326
Dave Love <fx@gnu.org>
parents:
diff changeset
18327 On each line we have a group name, then the highest article number in
Dave Love <fx@gnu.org>
parents:
diff changeset
18328 that group, the lowest article number, and finally a flag.
Dave Love <fx@gnu.org>
parents:
diff changeset
18329
Dave Love <fx@gnu.org>
parents:
diff changeset
18330 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
18331 active-file = *active-line
Dave Love <fx@gnu.org>
parents:
diff changeset
18332 active-line = name " " <number> " " <number> " " flags eol
Dave Love <fx@gnu.org>
parents:
diff changeset
18333 name = <string>
Dave Love <fx@gnu.org>
parents:
diff changeset
18334 flags = "n" / "y" / "m" / "x" / "j" / "=" name
Dave Love <fx@gnu.org>
parents:
diff changeset
18335 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
18336
Dave Love <fx@gnu.org>
parents:
diff changeset
18337 The flag says whether the group is read-only (@samp{n}), is moderated
Dave Love <fx@gnu.org>
parents:
diff changeset
18338 (@samp{m}), is dead (@samp{x}), is aliased to some other group
Dave Love <fx@gnu.org>
parents:
diff changeset
18339 (@samp{=other-group}) or none of the above (@samp{y}).
Dave Love <fx@gnu.org>
parents:
diff changeset
18340
Dave Love <fx@gnu.org>
parents:
diff changeset
18341
Dave Love <fx@gnu.org>
parents:
diff changeset
18342 @item (nnchoke-request-post &optional SERVER)
Dave Love <fx@gnu.org>
parents:
diff changeset
18343
Dave Love <fx@gnu.org>
parents:
diff changeset
18344 This function should post the current buffer. It might return whether
Dave Love <fx@gnu.org>
parents:
diff changeset
18345 the posting was successful or not, but that's not required. If, for
Dave Love <fx@gnu.org>
parents:
diff changeset
18346 instance, the posting is done asynchronously, it has generally not been
Dave Love <fx@gnu.org>
parents:
diff changeset
18347 completed by the time this function concludes. In that case, this
Dave Love <fx@gnu.org>
parents:
diff changeset
18348 function should set up some kind of sentinel to beep the user loud and
Dave Love <fx@gnu.org>
parents:
diff changeset
18349 clear if the posting could not be completed.
Dave Love <fx@gnu.org>
parents:
diff changeset
18350
Dave Love <fx@gnu.org>
parents:
diff changeset
18351 There should be no result data from this function.
Dave Love <fx@gnu.org>
parents:
diff changeset
18352
Dave Love <fx@gnu.org>
parents:
diff changeset
18353 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
18354
Dave Love <fx@gnu.org>
parents:
diff changeset
18355
Dave Love <fx@gnu.org>
parents:
diff changeset
18356 @node Optional Backend Functions
Dave Love <fx@gnu.org>
parents:
diff changeset
18357 @subsubsection Optional Backend Functions
Dave Love <fx@gnu.org>
parents:
diff changeset
18358
Dave Love <fx@gnu.org>
parents:
diff changeset
18359 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
18360
Dave Love <fx@gnu.org>
parents:
diff changeset
18361 @item (nnchoke-retrieve-groups GROUPS &optional SERVER)
Dave Love <fx@gnu.org>
parents:
diff changeset
18362
Dave Love <fx@gnu.org>
parents:
diff changeset
18363 @var{groups} is a list of groups, and this function should request data
Dave Love <fx@gnu.org>
parents:
diff changeset
18364 on all those groups. How it does it is of no concern to Gnus, but it
Dave Love <fx@gnu.org>
parents:
diff changeset
18365 should attempt to do this in a speedy fashion.
Dave Love <fx@gnu.org>
parents:
diff changeset
18366
Dave Love <fx@gnu.org>
parents:
diff changeset
18367 The return value of this function can be either @code{active} or
Dave Love <fx@gnu.org>
parents:
diff changeset
18368 @code{group}, which says what the format of the result data is. The
Dave Love <fx@gnu.org>
parents:
diff changeset
18369 former is in the same format as the data from
Dave Love <fx@gnu.org>
parents:
diff changeset
18370 @code{nnchoke-request-list}, while the latter is a buffer full of lines
Dave Love <fx@gnu.org>
parents:
diff changeset
18371 in the same format as @code{nnchoke-request-group} gives.
Dave Love <fx@gnu.org>
parents:
diff changeset
18372
Dave Love <fx@gnu.org>
parents:
diff changeset
18373 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
18374 group-buffer = *active-line / *group-status
Dave Love <fx@gnu.org>
parents:
diff changeset
18375 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
18376
Dave Love <fx@gnu.org>
parents:
diff changeset
18377
Dave Love <fx@gnu.org>
parents:
diff changeset
18378 @item (nnchoke-request-update-info GROUP INFO &optional SERVER)
Dave Love <fx@gnu.org>
parents:
diff changeset
18379
Dave Love <fx@gnu.org>
parents:
diff changeset
18380 A Gnus group info (@pxref{Group Info}) is handed to the backend for
Dave Love <fx@gnu.org>
parents:
diff changeset
18381 alterations. This comes in handy if the backend really carries all the
Dave Love <fx@gnu.org>
parents:
diff changeset
18382 information (as is the case with virtual and imap groups). This
Dave Love <fx@gnu.org>
parents:
diff changeset
18383 function should destructively alter the info to suit its needs, and
Dave Love <fx@gnu.org>
parents:
diff changeset
18384 should return the (altered) group info.
Dave Love <fx@gnu.org>
parents:
diff changeset
18385
Dave Love <fx@gnu.org>
parents:
diff changeset
18386 There should be no result data from this function.
Dave Love <fx@gnu.org>
parents:
diff changeset
18387
Dave Love <fx@gnu.org>
parents:
diff changeset
18388
Dave Love <fx@gnu.org>
parents:
diff changeset
18389 @item (nnchoke-request-type GROUP &optional ARTICLE)
Dave Love <fx@gnu.org>
parents:
diff changeset
18390
Dave Love <fx@gnu.org>
parents:
diff changeset
18391 When the user issues commands for ``sending news'' (@kbd{F} in the
Dave Love <fx@gnu.org>
parents:
diff changeset
18392 summary buffer, for instance), Gnus has to know whether the article the
Dave Love <fx@gnu.org>
parents:
diff changeset
18393 user is following up on is news or mail. This function should return
Dave Love <fx@gnu.org>
parents:
diff changeset
18394 @code{news} if @var{article} in @var{group} is news, @code{mail} if it
Dave Love <fx@gnu.org>
parents:
diff changeset
18395 is mail and @code{unknown} if the type can't be decided. (The
Dave Love <fx@gnu.org>
parents:
diff changeset
18396 @var{article} parameter is necessary in @code{nnvirtual} groups which
Dave Love <fx@gnu.org>
parents:
diff changeset
18397 might very well combine mail groups and news groups.) Both @var{group}
Dave Love <fx@gnu.org>
parents:
diff changeset
18398 and @var{article} may be @code{nil}.
Dave Love <fx@gnu.org>
parents:
diff changeset
18399
Dave Love <fx@gnu.org>
parents:
diff changeset
18400 There should be no result data from this function.
Dave Love <fx@gnu.org>
parents:
diff changeset
18401
Dave Love <fx@gnu.org>
parents:
diff changeset
18402
Dave Love <fx@gnu.org>
parents:
diff changeset
18403 @item (nnchoke-request-update-mark GROUP ARTICLE MARK)
Dave Love <fx@gnu.org>
parents:
diff changeset
18404
Dave Love <fx@gnu.org>
parents:
diff changeset
18405 If the user tries to set a mark that the backend doesn't like, this
Dave Love <fx@gnu.org>
parents:
diff changeset
18406 function may change the mark. Gnus will use whatever this function
Dave Love <fx@gnu.org>
parents:
diff changeset
18407 returns as the mark for @var{article} instead of the original
Dave Love <fx@gnu.org>
parents:
diff changeset
18408 @var{mark}. If the backend doesn't care, it must return the original
Dave Love <fx@gnu.org>
parents:
diff changeset
18409 @var{mark}, and not @code{nil} or any other type of garbage.
Dave Love <fx@gnu.org>
parents:
diff changeset
18410
Dave Love <fx@gnu.org>
parents:
diff changeset
18411 The only use for this I can see is what @code{nnvirtual} does with
Dave Love <fx@gnu.org>
parents:
diff changeset
18412 it---if a component group is auto-expirable, marking an article as read
Dave Love <fx@gnu.org>
parents:
diff changeset
18413 in the virtual group should result in the article being marked as
Dave Love <fx@gnu.org>
parents:
diff changeset
18414 expirable.
Dave Love <fx@gnu.org>
parents:
diff changeset
18415
Dave Love <fx@gnu.org>
parents:
diff changeset
18416 There should be no result data from this function.
Dave Love <fx@gnu.org>
parents:
diff changeset
18417
Dave Love <fx@gnu.org>
parents:
diff changeset
18418
Dave Love <fx@gnu.org>
parents:
diff changeset
18419 @item (nnchoke-request-scan &optional GROUP SERVER)
Dave Love <fx@gnu.org>
parents:
diff changeset
18420
Dave Love <fx@gnu.org>
parents:
diff changeset
18421 This function may be called at any time (by Gnus or anything else) to
Dave Love <fx@gnu.org>
parents:
diff changeset
18422 request that the backend check for incoming articles, in one way or
Dave Love <fx@gnu.org>
parents:
diff changeset
18423 another. A mail backend will typically read the spool file or query the
Dave Love <fx@gnu.org>
parents:
diff changeset
18424 POP server when this function is invoked. The @var{group} doesn't have
Dave Love <fx@gnu.org>
parents:
diff changeset
18425 to be heeded---if the backend decides that it is too much work just
Dave Love <fx@gnu.org>
parents:
diff changeset
18426 scanning for a single group, it may do a total scan of all groups. It
Dave Love <fx@gnu.org>
parents:
diff changeset
18427 would be nice, however, to keep things local if that's practical.
Dave Love <fx@gnu.org>
parents:
diff changeset
18428
Dave Love <fx@gnu.org>
parents:
diff changeset
18429 There should be no result data from this function.
Dave Love <fx@gnu.org>
parents:
diff changeset
18430
Dave Love <fx@gnu.org>
parents:
diff changeset
18431
Dave Love <fx@gnu.org>
parents:
diff changeset
18432 @item (nnchoke-request-group-description GROUP &optional SERVER)
Dave Love <fx@gnu.org>
parents:
diff changeset
18433
Dave Love <fx@gnu.org>
parents:
diff changeset
18434 The result data from this function should be a description of
Dave Love <fx@gnu.org>
parents:
diff changeset
18435 @var{group}.
Dave Love <fx@gnu.org>
parents:
diff changeset
18436
Dave Love <fx@gnu.org>
parents:
diff changeset
18437 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
18438 description-line = name <TAB> description eol
Dave Love <fx@gnu.org>
parents:
diff changeset
18439 name = <string>
Dave Love <fx@gnu.org>
parents:
diff changeset
18440 description = <text>
Dave Love <fx@gnu.org>
parents:
diff changeset
18441 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
18442
Dave Love <fx@gnu.org>
parents:
diff changeset
18443 @item (nnchoke-request-list-newsgroups &optional SERVER)
Dave Love <fx@gnu.org>
parents:
diff changeset
18444
Dave Love <fx@gnu.org>
parents:
diff changeset
18445 The result data from this function should be the description of all
Dave Love <fx@gnu.org>
parents:
diff changeset
18446 groups available on the server.
Dave Love <fx@gnu.org>
parents:
diff changeset
18447
Dave Love <fx@gnu.org>
parents:
diff changeset
18448 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
18449 description-buffer = *description-line
Dave Love <fx@gnu.org>
parents:
diff changeset
18450 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
18451
Dave Love <fx@gnu.org>
parents:
diff changeset
18452
Dave Love <fx@gnu.org>
parents:
diff changeset
18453 @item (nnchoke-request-newgroups DATE &optional SERVER)
Dave Love <fx@gnu.org>
parents:
diff changeset
18454
Dave Love <fx@gnu.org>
parents:
diff changeset
18455 The result data from this function should be all groups that were
Dave Love <fx@gnu.org>
parents:
diff changeset
18456 created after @samp{date}, which is in normal human-readable date
Dave Love <fx@gnu.org>
parents:
diff changeset
18457 format. The data should be in the active buffer format.
Dave Love <fx@gnu.org>
parents:
diff changeset
18458
Dave Love <fx@gnu.org>
parents:
diff changeset
18459
Dave Love <fx@gnu.org>
parents:
diff changeset
18460 @item (nnchoke-request-create-group GROUP &optional SERVER)
Dave Love <fx@gnu.org>
parents:
diff changeset
18461
Dave Love <fx@gnu.org>
parents:
diff changeset
18462 This function should create an empty group with name @var{group}.
Dave Love <fx@gnu.org>
parents:
diff changeset
18463
Dave Love <fx@gnu.org>
parents:
diff changeset
18464 There should be no return data.
Dave Love <fx@gnu.org>
parents:
diff changeset
18465
Dave Love <fx@gnu.org>
parents:
diff changeset
18466
Dave Love <fx@gnu.org>
parents:
diff changeset
18467 @item (nnchoke-request-expire-articles ARTICLES &optional GROUP SERVER FORCE)
Dave Love <fx@gnu.org>
parents:
diff changeset
18468
Dave Love <fx@gnu.org>
parents:
diff changeset
18469 This function should run the expiry process on all articles in the
Dave Love <fx@gnu.org>
parents:
diff changeset
18470 @var{articles} range (which is currently a simple list of article
Dave Love <fx@gnu.org>
parents:
diff changeset
18471 numbers.) It is left up to the backend to decide how old articles
Dave Love <fx@gnu.org>
parents:
diff changeset
18472 should be before they are removed by this function. If @var{force} is
Dave Love <fx@gnu.org>
parents:
diff changeset
18473 non-@code{nil}, all @var{articles} should be deleted, no matter how new
Dave Love <fx@gnu.org>
parents:
diff changeset
18474 they are.
Dave Love <fx@gnu.org>
parents:
diff changeset
18475
Dave Love <fx@gnu.org>
parents:
diff changeset
18476 This function should return a list of articles that it did not/was not
Dave Love <fx@gnu.org>
parents:
diff changeset
18477 able to delete.
Dave Love <fx@gnu.org>
parents:
diff changeset
18478
Dave Love <fx@gnu.org>
parents:
diff changeset
18479 There should be no result data returned.
Dave Love <fx@gnu.org>
parents:
diff changeset
18480
Dave Love <fx@gnu.org>
parents:
diff changeset
18481
Dave Love <fx@gnu.org>
parents:
diff changeset
18482 @item (nnchoke-request-move-article ARTICLE GROUP SERVER ACCEPT-FORM
Dave Love <fx@gnu.org>
parents:
diff changeset
18483 &optional LAST)
Dave Love <fx@gnu.org>
parents:
diff changeset
18484
Dave Love <fx@gnu.org>
parents:
diff changeset
18485 This function should move @var{article} (which is a number) from
Dave Love <fx@gnu.org>
parents:
diff changeset
18486 @var{group} by calling @var{accept-form}.
Dave Love <fx@gnu.org>
parents:
diff changeset
18487
Dave Love <fx@gnu.org>
parents:
diff changeset
18488 This function should ready the article in question for moving by
Dave Love <fx@gnu.org>
parents:
diff changeset
18489 removing any header lines it has added to the article, and generally
Dave Love <fx@gnu.org>
parents:
diff changeset
18490 should ``tidy up'' the article. Then it should @code{eval}
Dave Love <fx@gnu.org>
parents:
diff changeset
18491 @var{accept-form} in the buffer where the ``tidy'' article is. This
Dave Love <fx@gnu.org>
parents:
diff changeset
18492 will do the actual copying. If this @code{eval} returns a
Dave Love <fx@gnu.org>
parents:
diff changeset
18493 non-@code{nil} value, the article should be removed.
Dave Love <fx@gnu.org>
parents:
diff changeset
18494
Dave Love <fx@gnu.org>
parents:
diff changeset
18495 If @var{last} is @code{nil}, that means that there is a high likelihood
Dave Love <fx@gnu.org>
parents:
diff changeset
18496 that there will be more requests issued shortly, so that allows some
Dave Love <fx@gnu.org>
parents:
diff changeset
18497 optimizations.
Dave Love <fx@gnu.org>
parents:
diff changeset
18498
Dave Love <fx@gnu.org>
parents:
diff changeset
18499 The function should return a cons where the @code{car} is the group name and
Dave Love <fx@gnu.org>
parents:
diff changeset
18500 the @code{cdr} is the article number that the article was entered as.
Dave Love <fx@gnu.org>
parents:
diff changeset
18501
Dave Love <fx@gnu.org>
parents:
diff changeset
18502 There should be no data returned.
Dave Love <fx@gnu.org>
parents:
diff changeset
18503
Dave Love <fx@gnu.org>
parents:
diff changeset
18504
Dave Love <fx@gnu.org>
parents:
diff changeset
18505 @item (nnchoke-request-accept-article GROUP &optional SERVER LAST)
Dave Love <fx@gnu.org>
parents:
diff changeset
18506
Dave Love <fx@gnu.org>
parents:
diff changeset
18507 This function takes the current buffer and inserts it into @var{group}.
Dave Love <fx@gnu.org>
parents:
diff changeset
18508 If @var{last} in @code{nil}, that means that there will be more calls to
Dave Love <fx@gnu.org>
parents:
diff changeset
18509 this function in short order.
Dave Love <fx@gnu.org>
parents:
diff changeset
18510
Dave Love <fx@gnu.org>
parents:
diff changeset
18511 The function should return a cons where the @code{car} is the group name and
Dave Love <fx@gnu.org>
parents:
diff changeset
18512 the @code{cdr} is the article number that the article was entered as.
Dave Love <fx@gnu.org>
parents:
diff changeset
18513
Dave Love <fx@gnu.org>
parents:
diff changeset
18514 There should be no data returned.
Dave Love <fx@gnu.org>
parents:
diff changeset
18515
Dave Love <fx@gnu.org>
parents:
diff changeset
18516
Dave Love <fx@gnu.org>
parents:
diff changeset
18517 @item (nnchoke-request-replace-article ARTICLE GROUP BUFFER)
Dave Love <fx@gnu.org>
parents:
diff changeset
18518
Dave Love <fx@gnu.org>
parents:
diff changeset
18519 This function should remove @var{article} (which is a number) from
Dave Love <fx@gnu.org>
parents:
diff changeset
18520 @var{group} and insert @var{buffer} there instead.
Dave Love <fx@gnu.org>
parents:
diff changeset
18521
Dave Love <fx@gnu.org>
parents:
diff changeset
18522 There should be no data returned.
Dave Love <fx@gnu.org>
parents:
diff changeset
18523
Dave Love <fx@gnu.org>
parents:
diff changeset
18524
Dave Love <fx@gnu.org>
parents:
diff changeset
18525 @item (nnchoke-request-delete-group GROUP FORCE &optional SERVER)
Dave Love <fx@gnu.org>
parents:
diff changeset
18526
Dave Love <fx@gnu.org>
parents:
diff changeset
18527 This function should delete @var{group}. If @var{force}, it should
Dave Love <fx@gnu.org>
parents:
diff changeset
18528 really delete all the articles in the group, and then delete the group
Dave Love <fx@gnu.org>
parents:
diff changeset
18529 itself. (If there is such a thing as ``the group itself''.)
Dave Love <fx@gnu.org>
parents:
diff changeset
18530
Dave Love <fx@gnu.org>
parents:
diff changeset
18531 There should be no data returned.
Dave Love <fx@gnu.org>
parents:
diff changeset
18532
Dave Love <fx@gnu.org>
parents:
diff changeset
18533
Dave Love <fx@gnu.org>
parents:
diff changeset
18534 @item (nnchoke-request-rename-group GROUP NEW-NAME &optional SERVER)
Dave Love <fx@gnu.org>
parents:
diff changeset
18535
Dave Love <fx@gnu.org>
parents:
diff changeset
18536 This function should rename @var{group} into @var{new-name}. All
Dave Love <fx@gnu.org>
parents:
diff changeset
18537 articles in @var{group} should move to @var{new-name}.
Dave Love <fx@gnu.org>
parents:
diff changeset
18538
Dave Love <fx@gnu.org>
parents:
diff changeset
18539 There should be no data returned.
Dave Love <fx@gnu.org>
parents:
diff changeset
18540
Dave Love <fx@gnu.org>
parents:
diff changeset
18541 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
18542
Dave Love <fx@gnu.org>
parents:
diff changeset
18543
Dave Love <fx@gnu.org>
parents:
diff changeset
18544 @node Error Messaging
Dave Love <fx@gnu.org>
parents:
diff changeset
18545 @subsubsection Error Messaging
Dave Love <fx@gnu.org>
parents:
diff changeset
18546
Dave Love <fx@gnu.org>
parents:
diff changeset
18547 @findex nnheader-report
Dave Love <fx@gnu.org>
parents:
diff changeset
18548 @findex nnheader-get-report
Dave Love <fx@gnu.org>
parents:
diff changeset
18549 The backends should use the function @code{nnheader-report} to report
Dave Love <fx@gnu.org>
parents:
diff changeset
18550 error conditions---they should not raise errors when they aren't able to
Dave Love <fx@gnu.org>
parents:
diff changeset
18551 perform a request. The first argument to this function is the backend
Dave Love <fx@gnu.org>
parents:
diff changeset
18552 symbol, and the rest are interpreted as arguments to @code{format} if
Dave Love <fx@gnu.org>
parents:
diff changeset
18553 there are multiple of them, or just a string if there is one of them.
Dave Love <fx@gnu.org>
parents:
diff changeset
18554 This function must always returns @code{nil}.
Dave Love <fx@gnu.org>
parents:
diff changeset
18555
Dave Love <fx@gnu.org>
parents:
diff changeset
18556 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
18557 (nnheader-report 'nnchoke "You did something totally bogus")
Dave Love <fx@gnu.org>
parents:
diff changeset
18558
Dave Love <fx@gnu.org>
parents:
diff changeset
18559 (nnheader-report 'nnchoke "Could not request group %s" group)
Dave Love <fx@gnu.org>
parents:
diff changeset
18560 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
18561
Dave Love <fx@gnu.org>
parents:
diff changeset
18562 Gnus, in turn, will call @code{nnheader-get-report} when it gets a
Dave Love <fx@gnu.org>
parents:
diff changeset
18563 @code{nil} back from a server, and this function returns the most
Dave Love <fx@gnu.org>
parents:
diff changeset
18564 recently reported message for the backend in question. This function
Dave Love <fx@gnu.org>
parents:
diff changeset
18565 takes one argument---the server symbol.
Dave Love <fx@gnu.org>
parents:
diff changeset
18566
Dave Love <fx@gnu.org>
parents:
diff changeset
18567 Internally, these functions access @var{backend}@code{-status-string},
Dave Love <fx@gnu.org>
parents:
diff changeset
18568 so the @code{nnchoke} backend will have its error message stored in
Dave Love <fx@gnu.org>
parents:
diff changeset
18569 @code{nnchoke-status-string}.
Dave Love <fx@gnu.org>
parents:
diff changeset
18570
Dave Love <fx@gnu.org>
parents:
diff changeset
18571
Dave Love <fx@gnu.org>
parents:
diff changeset
18572 @node Writing New Backends
Dave Love <fx@gnu.org>
parents:
diff changeset
18573 @subsubsection Writing New Backends
Dave Love <fx@gnu.org>
parents:
diff changeset
18574
Dave Love <fx@gnu.org>
parents:
diff changeset
18575 Many backends are quite similar. @code{nnml} is just like
Dave Love <fx@gnu.org>
parents:
diff changeset
18576 @code{nnspool}, but it allows you to edit the articles on the server.
Dave Love <fx@gnu.org>
parents:
diff changeset
18577 @code{nnmh} is just like @code{nnml}, but it doesn't use an active file,
Dave Love <fx@gnu.org>
parents:
diff changeset
18578 and it doesn't maintain overview databases. @code{nndir} is just like
Dave Love <fx@gnu.org>
parents:
diff changeset
18579 @code{nnml}, but it has no concept of ``groups'', and it doesn't allow
Dave Love <fx@gnu.org>
parents:
diff changeset
18580 editing articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
18581
Dave Love <fx@gnu.org>
parents:
diff changeset
18582 It would make sense if it were possible to ``inherit'' functions from
Dave Love <fx@gnu.org>
parents:
diff changeset
18583 backends when writing new backends. And, indeed, you can do that if you
Dave Love <fx@gnu.org>
parents:
diff changeset
18584 want to. (You don't have to if you don't want to, of course.)
Dave Love <fx@gnu.org>
parents:
diff changeset
18585
Dave Love <fx@gnu.org>
parents:
diff changeset
18586 All the backends declare their public variables and functions by using a
Dave Love <fx@gnu.org>
parents:
diff changeset
18587 package called @code{nnoo}.
Dave Love <fx@gnu.org>
parents:
diff changeset
18588
Dave Love <fx@gnu.org>
parents:
diff changeset
18589 To inherit functions from other backends (and allow other backends to
Dave Love <fx@gnu.org>
parents:
diff changeset
18590 inherit functions from the current backend), you should use the
Dave Love <fx@gnu.org>
parents:
diff changeset
18591 following macros:
Dave Love <fx@gnu.org>
parents:
diff changeset
18592
Dave Love <fx@gnu.org>
parents:
diff changeset
18593 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
18594
Dave Love <fx@gnu.org>
parents:
diff changeset
18595 @item nnoo-declare
Dave Love <fx@gnu.org>
parents:
diff changeset
18596 This macro declares the first parameter to be a child of the subsequent
Dave Love <fx@gnu.org>
parents:
diff changeset
18597 parameters. For instance:
Dave Love <fx@gnu.org>
parents:
diff changeset
18598
Dave Love <fx@gnu.org>
parents:
diff changeset
18599 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
18600 (nnoo-declare nndir
Dave Love <fx@gnu.org>
parents:
diff changeset
18601 nnml nnmh)
Dave Love <fx@gnu.org>
parents:
diff changeset
18602 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
18603
Dave Love <fx@gnu.org>
parents:
diff changeset
18604 @code{nndir} has declared here that it intends to inherit functions from
Dave Love <fx@gnu.org>
parents:
diff changeset
18605 both @code{nnml} and @code{nnmh}.
Dave Love <fx@gnu.org>
parents:
diff changeset
18606
Dave Love <fx@gnu.org>
parents:
diff changeset
18607 @item defvoo
Dave Love <fx@gnu.org>
parents:
diff changeset
18608 This macro is equivalent to @code{defvar}, but registers the variable as
Dave Love <fx@gnu.org>
parents:
diff changeset
18609 a public server variable. Most state-oriented variables should be
Dave Love <fx@gnu.org>
parents:
diff changeset
18610 declared with @code{defvoo} instead of @code{defvar}.
Dave Love <fx@gnu.org>
parents:
diff changeset
18611
Dave Love <fx@gnu.org>
parents:
diff changeset
18612 In addition to the normal @code{defvar} parameters, it takes a list of
Dave Love <fx@gnu.org>
parents:
diff changeset
18613 variables in the parent backends to map the variable to when executing
Dave Love <fx@gnu.org>
parents:
diff changeset
18614 a function in those backends.
Dave Love <fx@gnu.org>
parents:
diff changeset
18615
Dave Love <fx@gnu.org>
parents:
diff changeset
18616 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
18617 (defvoo nndir-directory nil
Dave Love <fx@gnu.org>
parents:
diff changeset
18618 "Where nndir will look for groups."
Dave Love <fx@gnu.org>
parents:
diff changeset
18619 nnml-current-directory nnmh-current-directory)
Dave Love <fx@gnu.org>
parents:
diff changeset
18620 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
18621
Dave Love <fx@gnu.org>
parents:
diff changeset
18622 This means that @code{nnml-current-directory} will be set to
Dave Love <fx@gnu.org>
parents:
diff changeset
18623 @code{nndir-directory} when an @code{nnml} function is called on behalf
Dave Love <fx@gnu.org>
parents:
diff changeset
18624 of @code{nndir}. (The same with @code{nnmh}.)
Dave Love <fx@gnu.org>
parents:
diff changeset
18625
Dave Love <fx@gnu.org>
parents:
diff changeset
18626 @item nnoo-define-basics
Dave Love <fx@gnu.org>
parents:
diff changeset
18627 This macro defines some common functions that almost all backends should
Dave Love <fx@gnu.org>
parents:
diff changeset
18628 have.
Dave Love <fx@gnu.org>
parents:
diff changeset
18629
Dave Love <fx@gnu.org>
parents:
diff changeset
18630 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
18631 (nnoo-define-basics nndir)
Dave Love <fx@gnu.org>
parents:
diff changeset
18632 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
18633
Dave Love <fx@gnu.org>
parents:
diff changeset
18634 @item deffoo
Dave Love <fx@gnu.org>
parents:
diff changeset
18635 This macro is just like @code{defun} and takes the same parameters. In
Dave Love <fx@gnu.org>
parents:
diff changeset
18636 addition to doing the normal @code{defun} things, it registers the
Dave Love <fx@gnu.org>
parents:
diff changeset
18637 function as being public so that other backends can inherit it.
Dave Love <fx@gnu.org>
parents:
diff changeset
18638
Dave Love <fx@gnu.org>
parents:
diff changeset
18639 @item nnoo-map-functions
Dave Love <fx@gnu.org>
parents:
diff changeset
18640 This macro allows mapping of functions from the current backend to
Dave Love <fx@gnu.org>
parents:
diff changeset
18641 functions from the parent backends.
Dave Love <fx@gnu.org>
parents:
diff changeset
18642
Dave Love <fx@gnu.org>
parents:
diff changeset
18643 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
18644 (nnoo-map-functions nndir
Dave Love <fx@gnu.org>
parents:
diff changeset
18645 (nnml-retrieve-headers 0 nndir-current-group 0 0)
Dave Love <fx@gnu.org>
parents:
diff changeset
18646 (nnmh-request-article 0 nndir-current-group 0 0))
Dave Love <fx@gnu.org>
parents:
diff changeset
18647 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
18648
Dave Love <fx@gnu.org>
parents:
diff changeset
18649 This means that when @code{nndir-retrieve-headers} is called, the first,
Dave Love <fx@gnu.org>
parents:
diff changeset
18650 third, and fourth parameters will be passed on to
Dave Love <fx@gnu.org>
parents:
diff changeset
18651 @code{nnml-retrieve-headers}, while the second parameter is set to the
Dave Love <fx@gnu.org>
parents:
diff changeset
18652 value of @code{nndir-current-group}.
Dave Love <fx@gnu.org>
parents:
diff changeset
18653
Dave Love <fx@gnu.org>
parents:
diff changeset
18654 @item nnoo-import
Dave Love <fx@gnu.org>
parents:
diff changeset
18655 This macro allows importing functions from backends. It should be the
Dave Love <fx@gnu.org>
parents:
diff changeset
18656 last thing in the source file, since it will only define functions that
Dave Love <fx@gnu.org>
parents:
diff changeset
18657 haven't already been defined.
Dave Love <fx@gnu.org>
parents:
diff changeset
18658
Dave Love <fx@gnu.org>
parents:
diff changeset
18659 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
18660 (nnoo-import nndir
Dave Love <fx@gnu.org>
parents:
diff changeset
18661 (nnmh
Dave Love <fx@gnu.org>
parents:
diff changeset
18662 nnmh-request-list
Dave Love <fx@gnu.org>
parents:
diff changeset
18663 nnmh-request-newgroups)
Dave Love <fx@gnu.org>
parents:
diff changeset
18664 (nnml))
Dave Love <fx@gnu.org>
parents:
diff changeset
18665 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
18666
Dave Love <fx@gnu.org>
parents:
diff changeset
18667 This means that calls to @code{nndir-request-list} should just be passed
Dave Love <fx@gnu.org>
parents:
diff changeset
18668 on to @code{nnmh-request-list}, while all public functions from
Dave Love <fx@gnu.org>
parents:
diff changeset
18669 @code{nnml} that haven't been defined in @code{nndir} yet should be
Dave Love <fx@gnu.org>
parents:
diff changeset
18670 defined now.
Dave Love <fx@gnu.org>
parents:
diff changeset
18671
Dave Love <fx@gnu.org>
parents:
diff changeset
18672 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
18673
Dave Love <fx@gnu.org>
parents:
diff changeset
18674 Below is a slightly shortened version of the @code{nndir} backend.
Dave Love <fx@gnu.org>
parents:
diff changeset
18675
Dave Love <fx@gnu.org>
parents:
diff changeset
18676 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
18677 ;;; nndir.el --- single directory newsgroup access for Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
18678 ;; Copyright (C) 1995,96 Free Software Foundation, Inc.
Dave Love <fx@gnu.org>
parents:
diff changeset
18679
Dave Love <fx@gnu.org>
parents:
diff changeset
18680 ;;; Code:
Dave Love <fx@gnu.org>
parents:
diff changeset
18681
Dave Love <fx@gnu.org>
parents:
diff changeset
18682 (require 'nnheader)
Dave Love <fx@gnu.org>
parents:
diff changeset
18683 (require 'nnmh)
Dave Love <fx@gnu.org>
parents:
diff changeset
18684 (require 'nnml)
Dave Love <fx@gnu.org>
parents:
diff changeset
18685 (require 'nnoo)
Dave Love <fx@gnu.org>
parents:
diff changeset
18686 (eval-when-compile (require 'cl))
Dave Love <fx@gnu.org>
parents:
diff changeset
18687
Dave Love <fx@gnu.org>
parents:
diff changeset
18688 (nnoo-declare nndir
Dave Love <fx@gnu.org>
parents:
diff changeset
18689 nnml nnmh)
Dave Love <fx@gnu.org>
parents:
diff changeset
18690
Dave Love <fx@gnu.org>
parents:
diff changeset
18691 (defvoo nndir-directory nil
Dave Love <fx@gnu.org>
parents:
diff changeset
18692 "Where nndir will look for groups."
Dave Love <fx@gnu.org>
parents:
diff changeset
18693 nnml-current-directory nnmh-current-directory)
Dave Love <fx@gnu.org>
parents:
diff changeset
18694
Dave Love <fx@gnu.org>
parents:
diff changeset
18695 (defvoo nndir-nov-is-evil nil
Dave Love <fx@gnu.org>
parents:
diff changeset
18696 "*Non-nil means that nndir will never retrieve NOV headers."
Dave Love <fx@gnu.org>
parents:
diff changeset
18697 nnml-nov-is-evil)
Dave Love <fx@gnu.org>
parents:
diff changeset
18698
Dave Love <fx@gnu.org>
parents:
diff changeset
18699 (defvoo nndir-current-group "" nil nnml-current-group nnmh-current-group)
Dave Love <fx@gnu.org>
parents:
diff changeset
18700 (defvoo nndir-top-directory nil nil nnml-directory nnmh-directory)
Dave Love <fx@gnu.org>
parents:
diff changeset
18701 (defvoo nndir-get-new-mail nil nil nnml-get-new-mail nnmh-get-new-mail)
Dave Love <fx@gnu.org>
parents:
diff changeset
18702
Dave Love <fx@gnu.org>
parents:
diff changeset
18703 (defvoo nndir-status-string "" nil nnmh-status-string)
Dave Love <fx@gnu.org>
parents:
diff changeset
18704 (defconst nndir-version "nndir 1.0")
Dave Love <fx@gnu.org>
parents:
diff changeset
18705
Dave Love <fx@gnu.org>
parents:
diff changeset
18706 ;;; Interface functions.
Dave Love <fx@gnu.org>
parents:
diff changeset
18707
Dave Love <fx@gnu.org>
parents:
diff changeset
18708 (nnoo-define-basics nndir)
Dave Love <fx@gnu.org>
parents:
diff changeset
18709
Dave Love <fx@gnu.org>
parents:
diff changeset
18710 (deffoo nndir-open-server (server &optional defs)
Dave Love <fx@gnu.org>
parents:
diff changeset
18711 (setq nndir-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
18712 (or (cadr (assq 'nndir-directory defs))
Dave Love <fx@gnu.org>
parents:
diff changeset
18713 server))
Dave Love <fx@gnu.org>
parents:
diff changeset
18714 (unless (assq 'nndir-directory defs)
Dave Love <fx@gnu.org>
parents:
diff changeset
18715 (push `(nndir-directory ,server) defs))
Dave Love <fx@gnu.org>
parents:
diff changeset
18716 (push `(nndir-current-group
Dave Love <fx@gnu.org>
parents:
diff changeset
18717 ,(file-name-nondirectory (directory-file-name nndir-directory)))
Dave Love <fx@gnu.org>
parents:
diff changeset
18718 defs)
Dave Love <fx@gnu.org>
parents:
diff changeset
18719 (push `(nndir-top-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
18720 ,(file-name-directory (directory-file-name nndir-directory)))
Dave Love <fx@gnu.org>
parents:
diff changeset
18721 defs)
Dave Love <fx@gnu.org>
parents:
diff changeset
18722 (nnoo-change-server 'nndir server defs))
Dave Love <fx@gnu.org>
parents:
diff changeset
18723
Dave Love <fx@gnu.org>
parents:
diff changeset
18724 (nnoo-map-functions nndir
Dave Love <fx@gnu.org>
parents:
diff changeset
18725 (nnml-retrieve-headers 0 nndir-current-group 0 0)
Dave Love <fx@gnu.org>
parents:
diff changeset
18726 (nnmh-request-article 0 nndir-current-group 0 0)
Dave Love <fx@gnu.org>
parents:
diff changeset
18727 (nnmh-request-group nndir-current-group 0 0)
Dave Love <fx@gnu.org>
parents:
diff changeset
18728 (nnmh-close-group nndir-current-group 0))
Dave Love <fx@gnu.org>
parents:
diff changeset
18729
Dave Love <fx@gnu.org>
parents:
diff changeset
18730 (nnoo-import nndir
Dave Love <fx@gnu.org>
parents:
diff changeset
18731 (nnmh
Dave Love <fx@gnu.org>
parents:
diff changeset
18732 nnmh-status-message
Dave Love <fx@gnu.org>
parents:
diff changeset
18733 nnmh-request-list
Dave Love <fx@gnu.org>
parents:
diff changeset
18734 nnmh-request-newgroups))
Dave Love <fx@gnu.org>
parents:
diff changeset
18735
Dave Love <fx@gnu.org>
parents:
diff changeset
18736 (provide 'nndir)
Dave Love <fx@gnu.org>
parents:
diff changeset
18737 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
18738
Dave Love <fx@gnu.org>
parents:
diff changeset
18739
Dave Love <fx@gnu.org>
parents:
diff changeset
18740 @node Hooking New Backends Into Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
18741 @subsubsection Hooking New Backends Into Gnus
Dave Love <fx@gnu.org>
parents:
diff changeset
18742
Dave Love <fx@gnu.org>
parents:
diff changeset
18743 @vindex gnus-valid-select-methods
Dave Love <fx@gnu.org>
parents:
diff changeset
18744 Having Gnus start using your new backend is rather easy---you just
Dave Love <fx@gnu.org>
parents:
diff changeset
18745 declare it with the @code{gnus-declare-backend} functions. This will
Dave Love <fx@gnu.org>
parents:
diff changeset
18746 enter the backend into the @code{gnus-valid-select-methods} variable.
Dave Love <fx@gnu.org>
parents:
diff changeset
18747
Dave Love <fx@gnu.org>
parents:
diff changeset
18748 @code{gnus-declare-backend} takes two parameters---the backend name and
Dave Love <fx@gnu.org>
parents:
diff changeset
18749 an arbitrary number of @dfn{abilities}.
Dave Love <fx@gnu.org>
parents:
diff changeset
18750
Dave Love <fx@gnu.org>
parents:
diff changeset
18751 Here's an example:
Dave Love <fx@gnu.org>
parents:
diff changeset
18752
Dave Love <fx@gnu.org>
parents:
diff changeset
18753 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
18754 (gnus-declare-backend "nnchoke" 'mail 'respool 'address)
Dave Love <fx@gnu.org>
parents:
diff changeset
18755 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
18756
Dave Love <fx@gnu.org>
parents:
diff changeset
18757 The abilities can be:
Dave Love <fx@gnu.org>
parents:
diff changeset
18758
Dave Love <fx@gnu.org>
parents:
diff changeset
18759 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
18760 @item mail
Dave Love <fx@gnu.org>
parents:
diff changeset
18761 This is a mailish backend---followups should (probably) go via mail.
Dave Love <fx@gnu.org>
parents:
diff changeset
18762 @item post
Dave Love <fx@gnu.org>
parents:
diff changeset
18763 This is a newsish backend---followups should (probably) go via news.
Dave Love <fx@gnu.org>
parents:
diff changeset
18764 @item post-mail
Dave Love <fx@gnu.org>
parents:
diff changeset
18765 This backend supports both mail and news.
Dave Love <fx@gnu.org>
parents:
diff changeset
18766 @item none
Dave Love <fx@gnu.org>
parents:
diff changeset
18767 This is neither a post nor mail backend---it's something completely
Dave Love <fx@gnu.org>
parents:
diff changeset
18768 different.
Dave Love <fx@gnu.org>
parents:
diff changeset
18769 @item respool
Dave Love <fx@gnu.org>
parents:
diff changeset
18770 It supports respooling---or rather, it is able to modify its source
Dave Love <fx@gnu.org>
parents:
diff changeset
18771 articles and groups.
Dave Love <fx@gnu.org>
parents:
diff changeset
18772 @item address
Dave Love <fx@gnu.org>
parents:
diff changeset
18773 The name of the server should be in the virtual server name. This is
Dave Love <fx@gnu.org>
parents:
diff changeset
18774 true for almost all backends.
Dave Love <fx@gnu.org>
parents:
diff changeset
18775 @item prompt-address
Dave Love <fx@gnu.org>
parents:
diff changeset
18776 The user should be prompted for an address when doing commands like
Dave Love <fx@gnu.org>
parents:
diff changeset
18777 @kbd{B} in the group buffer. This is true for backends like
Dave Love <fx@gnu.org>
parents:
diff changeset
18778 @code{nntp}, but not @code{nnmbox}, for instance.
Dave Love <fx@gnu.org>
parents:
diff changeset
18779 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
18780
Dave Love <fx@gnu.org>
parents:
diff changeset
18781
Dave Love <fx@gnu.org>
parents:
diff changeset
18782 @node Mail-like Backends
Dave Love <fx@gnu.org>
parents:
diff changeset
18783 @subsubsection Mail-like Backends
Dave Love <fx@gnu.org>
parents:
diff changeset
18784
Dave Love <fx@gnu.org>
parents:
diff changeset
18785 One of the things that separate the mail backends from the rest of the
Dave Love <fx@gnu.org>
parents:
diff changeset
18786 backends is the heavy dependence by the mail backends on common
Dave Love <fx@gnu.org>
parents:
diff changeset
18787 functions in @file{nnmail.el}. For instance, here's the definition of
Dave Love <fx@gnu.org>
parents:
diff changeset
18788 @code{nnml-request-scan}:
Dave Love <fx@gnu.org>
parents:
diff changeset
18789
Dave Love <fx@gnu.org>
parents:
diff changeset
18790 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
18791 (deffoo nnml-request-scan (&optional group server)
Dave Love <fx@gnu.org>
parents:
diff changeset
18792 (setq nnml-article-file-alist nil)
Dave Love <fx@gnu.org>
parents:
diff changeset
18793 (nnmail-get-new-mail 'nnml 'nnml-save-nov nnml-directory group))
Dave Love <fx@gnu.org>
parents:
diff changeset
18794 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
18795
Dave Love <fx@gnu.org>
parents:
diff changeset
18796 It simply calls @code{nnmail-get-new-mail} with a few parameters,
Dave Love <fx@gnu.org>
parents:
diff changeset
18797 and @code{nnmail} takes care of all the moving and splitting of the
Dave Love <fx@gnu.org>
parents:
diff changeset
18798 mail.
Dave Love <fx@gnu.org>
parents:
diff changeset
18799
Dave Love <fx@gnu.org>
parents:
diff changeset
18800 This function takes four parameters.
Dave Love <fx@gnu.org>
parents:
diff changeset
18801
Dave Love <fx@gnu.org>
parents:
diff changeset
18802 @table @var
Dave Love <fx@gnu.org>
parents:
diff changeset
18803 @item method
Dave Love <fx@gnu.org>
parents:
diff changeset
18804 This should be a symbol to designate which backend is responsible for
Dave Love <fx@gnu.org>
parents:
diff changeset
18805 the call.
Dave Love <fx@gnu.org>
parents:
diff changeset
18806
Dave Love <fx@gnu.org>
parents:
diff changeset
18807 @item exit-function
Dave Love <fx@gnu.org>
parents:
diff changeset
18808 This function should be called after the splitting has been performed.
Dave Love <fx@gnu.org>
parents:
diff changeset
18809
Dave Love <fx@gnu.org>
parents:
diff changeset
18810 @item temp-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
18811 Where the temporary files should be stored.
Dave Love <fx@gnu.org>
parents:
diff changeset
18812
Dave Love <fx@gnu.org>
parents:
diff changeset
18813 @item group
Dave Love <fx@gnu.org>
parents:
diff changeset
18814 This optional argument should be a group name if the splitting is to be
Dave Love <fx@gnu.org>
parents:
diff changeset
18815 performed for one group only.
Dave Love <fx@gnu.org>
parents:
diff changeset
18816 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
18817
Dave Love <fx@gnu.org>
parents:
diff changeset
18818 @code{nnmail-get-new-mail} will call @var{backend}@code{-save-mail} to
Dave Love <fx@gnu.org>
parents:
diff changeset
18819 save each article. @var{backend}@code{-active-number} will be called to
Dave Love <fx@gnu.org>
parents:
diff changeset
18820 find the article number assigned to this article.
Dave Love <fx@gnu.org>
parents:
diff changeset
18821
Dave Love <fx@gnu.org>
parents:
diff changeset
18822 The function also uses the following variables:
Dave Love <fx@gnu.org>
parents:
diff changeset
18823 @var{backend}@code{-get-new-mail} (to see whether to get new mail for
Dave Love <fx@gnu.org>
parents:
diff changeset
18824 this backend); and @var{backend}@code{-group-alist} and
Dave Love <fx@gnu.org>
parents:
diff changeset
18825 @var{backend}@code{-active-file} to generate the new active file.
Dave Love <fx@gnu.org>
parents:
diff changeset
18826 @var{backend}@code{-group-alist} should be a group-active alist, like
Dave Love <fx@gnu.org>
parents:
diff changeset
18827 this:
Dave Love <fx@gnu.org>
parents:
diff changeset
18828
Dave Love <fx@gnu.org>
parents:
diff changeset
18829 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
18830 (("a-group" (1 . 10))
Dave Love <fx@gnu.org>
parents:
diff changeset
18831 ("some-group" (34 . 39)))
Dave Love <fx@gnu.org>
parents:
diff changeset
18832 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
18833
Dave Love <fx@gnu.org>
parents:
diff changeset
18834
Dave Love <fx@gnu.org>
parents:
diff changeset
18835 @node Score File Syntax
Dave Love <fx@gnu.org>
parents:
diff changeset
18836 @subsection Score File Syntax
Dave Love <fx@gnu.org>
parents:
diff changeset
18837
Dave Love <fx@gnu.org>
parents:
diff changeset
18838 Score files are meant to be easily parseable, but yet extremely
Dave Love <fx@gnu.org>
parents:
diff changeset
18839 mallable. It was decided that something that had the same read syntax
Dave Love <fx@gnu.org>
parents:
diff changeset
18840 as an Emacs Lisp list would fit that spec.
Dave Love <fx@gnu.org>
parents:
diff changeset
18841
Dave Love <fx@gnu.org>
parents:
diff changeset
18842 Here's a typical score file:
Dave Love <fx@gnu.org>
parents:
diff changeset
18843
Dave Love <fx@gnu.org>
parents:
diff changeset
18844 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
18845 (("summary"
Dave Love <fx@gnu.org>
parents:
diff changeset
18846 ("win95" -10000 nil s)
Dave Love <fx@gnu.org>
parents:
diff changeset
18847 ("Gnus"))
Dave Love <fx@gnu.org>
parents:
diff changeset
18848 ("from"
Dave Love <fx@gnu.org>
parents:
diff changeset
18849 ("Lars" -1000))
Dave Love <fx@gnu.org>
parents:
diff changeset
18850 (mark -100))
Dave Love <fx@gnu.org>
parents:
diff changeset
18851 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
18852
Dave Love <fx@gnu.org>
parents:
diff changeset
18853 BNF definition of a score file:
Dave Love <fx@gnu.org>
parents:
diff changeset
18854
Dave Love <fx@gnu.org>
parents:
diff changeset
18855 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
18856 score-file = "" / "(" *element ")"
Dave Love <fx@gnu.org>
parents:
diff changeset
18857 element = rule / atom
Dave Love <fx@gnu.org>
parents:
diff changeset
18858 rule = string-rule / number-rule / date-rule
Dave Love <fx@gnu.org>
parents:
diff changeset
18859 string-rule = "(" quote string-header quote space *string-match ")"
Dave Love <fx@gnu.org>
parents:
diff changeset
18860 number-rule = "(" quote number-header quote space *number-match ")"
Dave Love <fx@gnu.org>
parents:
diff changeset
18861 date-rule = "(" quote date-header quote space *date-match ")"
Dave Love <fx@gnu.org>
parents:
diff changeset
18862 quote = <ascii 34>
Dave Love <fx@gnu.org>
parents:
diff changeset
18863 string-header = "subject" / "from" / "references" / "message-id" /
Dave Love <fx@gnu.org>
parents:
diff changeset
18864 "xref" / "body" / "head" / "all" / "followup"
Dave Love <fx@gnu.org>
parents:
diff changeset
18865 number-header = "lines" / "chars"
Dave Love <fx@gnu.org>
parents:
diff changeset
18866 date-header = "date"
Dave Love <fx@gnu.org>
parents:
diff changeset
18867 string-match = "(" quote <string> quote [ "" / [ space score [ "" /
Dave Love <fx@gnu.org>
parents:
diff changeset
18868 space date [ "" / [ space string-match-t ] ] ] ] ] ")"
Dave Love <fx@gnu.org>
parents:
diff changeset
18869 score = "nil" / <integer>
Dave Love <fx@gnu.org>
parents:
diff changeset
18870 date = "nil" / <natural number>
Dave Love <fx@gnu.org>
parents:
diff changeset
18871 string-match-t = "nil" / "s" / "substring" / "S" / "Substring" /
Dave Love <fx@gnu.org>
parents:
diff changeset
18872 "r" / "regex" / "R" / "Regex" /
Dave Love <fx@gnu.org>
parents:
diff changeset
18873 "e" / "exact" / "E" / "Exact" /
Dave Love <fx@gnu.org>
parents:
diff changeset
18874 "f" / "fuzzy" / "F" / "Fuzzy"
Dave Love <fx@gnu.org>
parents:
diff changeset
18875 number-match = "(" <integer> [ "" / [ space score [ "" /
Dave Love <fx@gnu.org>
parents:
diff changeset
18876 space date [ "" / [ space number-match-t ] ] ] ] ] ")"
Dave Love <fx@gnu.org>
parents:
diff changeset
18877 number-match-t = "nil" / "=" / "<" / ">" / ">=" / "<="
Dave Love <fx@gnu.org>
parents:
diff changeset
18878 date-match = "(" quote <string> quote [ "" / [ space score [ "" /
Dave Love <fx@gnu.org>
parents:
diff changeset
18879 space date [ "" / [ space date-match-t ] ] ] ] ")"
Dave Love <fx@gnu.org>
parents:
diff changeset
18880 date-match-t = "nil" / "at" / "before" / "after"
Dave Love <fx@gnu.org>
parents:
diff changeset
18881 atom = "(" [ required-atom / optional-atom ] ")"
Dave Love <fx@gnu.org>
parents:
diff changeset
18882 required-atom = mark / expunge / mark-and-expunge / files /
Dave Love <fx@gnu.org>
parents:
diff changeset
18883 exclude-files / read-only / touched
Dave Love <fx@gnu.org>
parents:
diff changeset
18884 optional-atom = adapt / local / eval
Dave Love <fx@gnu.org>
parents:
diff changeset
18885 mark = "mark" space nil-or-number
Dave Love <fx@gnu.org>
parents:
diff changeset
18886 nil-or-number = "nil" / <integer>
Dave Love <fx@gnu.org>
parents:
diff changeset
18887 expunge = "expunge" space nil-or-number
Dave Love <fx@gnu.org>
parents:
diff changeset
18888 mark-and-expunge = "mark-and-expunge" space nil-or-number
Dave Love <fx@gnu.org>
parents:
diff changeset
18889 files = "files" *[ space <string> ]
Dave Love <fx@gnu.org>
parents:
diff changeset
18890 exclude-files = "exclude-files" *[ space <string> ]
Dave Love <fx@gnu.org>
parents:
diff changeset
18891 read-only = "read-only" [ space "nil" / space "t" ]
Dave Love <fx@gnu.org>
parents:
diff changeset
18892 adapt = "adapt" [ space "ignore" / space "t" / space adapt-rule ]
Dave Love <fx@gnu.org>
parents:
diff changeset
18893 adapt-rule = "(" *[ <string> *[ "(" <string> <integer> ")" ] ")"
Dave Love <fx@gnu.org>
parents:
diff changeset
18894 local = "local" *[ space "(" <string> space <form> ")" ]
Dave Love <fx@gnu.org>
parents:
diff changeset
18895 eval = "eval" space <form>
Dave Love <fx@gnu.org>
parents:
diff changeset
18896 space = *[ " " / <TAB> / <NEWLINE> ]
Dave Love <fx@gnu.org>
parents:
diff changeset
18897 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
18898
Dave Love <fx@gnu.org>
parents:
diff changeset
18899 Any unrecognized elements in a score file should be ignored, but not
Dave Love <fx@gnu.org>
parents:
diff changeset
18900 discarded.
Dave Love <fx@gnu.org>
parents:
diff changeset
18901
Dave Love <fx@gnu.org>
parents:
diff changeset
18902 As you can see, white space is needed, but the type and amount of white
Dave Love <fx@gnu.org>
parents:
diff changeset
18903 space is irrelevant. This means that formatting of the score file is
Dave Love <fx@gnu.org>
parents:
diff changeset
18904 left up to the programmer---if it's simpler to just spew it all out on
Dave Love <fx@gnu.org>
parents:
diff changeset
18905 one looong line, then that's ok.
Dave Love <fx@gnu.org>
parents:
diff changeset
18906
Dave Love <fx@gnu.org>
parents:
diff changeset
18907 The meaning of the various atoms are explained elsewhere in this
Dave Love <fx@gnu.org>
parents:
diff changeset
18908 manual (@pxref{Score File Format}).
Dave Love <fx@gnu.org>
parents:
diff changeset
18909
Dave Love <fx@gnu.org>
parents:
diff changeset
18910
Dave Love <fx@gnu.org>
parents:
diff changeset
18911 @node Headers
Dave Love <fx@gnu.org>
parents:
diff changeset
18912 @subsection Headers
Dave Love <fx@gnu.org>
parents:
diff changeset
18913
Dave Love <fx@gnu.org>
parents:
diff changeset
18914 Internally Gnus uses a format for storing article headers that
Dave Love <fx@gnu.org>
parents:
diff changeset
18915 corresponds to the @sc{nov} format in a mysterious fashion. One could
Dave Love <fx@gnu.org>
parents:
diff changeset
18916 almost suspect that the author looked at the @sc{nov} specification and
Dave Love <fx@gnu.org>
parents:
diff changeset
18917 just shamelessly @emph{stole} the entire thing, and one would be right.
Dave Love <fx@gnu.org>
parents:
diff changeset
18918
Dave Love <fx@gnu.org>
parents:
diff changeset
18919 @dfn{Header} is a severely overloaded term. ``Header'' is used in
Dave Love <fx@gnu.org>
parents:
diff changeset
18920 RFC1036 to talk about lines in the head of an article (e.g.,
Dave Love <fx@gnu.org>
parents:
diff changeset
18921 @code{From}). It is used by many people as a synonym for
Dave Love <fx@gnu.org>
parents:
diff changeset
18922 ``head''---``the header and the body''. (That should be avoided, in my
Dave Love <fx@gnu.org>
parents:
diff changeset
18923 opinion.) And Gnus uses a format internally that it calls ``header'',
Dave Love <fx@gnu.org>
parents:
diff changeset
18924 which is what I'm talking about here. This is a 9-element vector,
Dave Love <fx@gnu.org>
parents:
diff changeset
18925 basically, with each header (ouch) having one slot.
Dave Love <fx@gnu.org>
parents:
diff changeset
18926
Dave Love <fx@gnu.org>
parents:
diff changeset
18927 These slots are, in order: @code{number}, @code{subject}, @code{from},
Dave Love <fx@gnu.org>
parents:
diff changeset
18928 @code{date}, @code{id}, @code{references}, @code{chars}, @code{lines},
Dave Love <fx@gnu.org>
parents:
diff changeset
18929 @code{xref}. There are macros for accessing and setting these
Dave Love <fx@gnu.org>
parents:
diff changeset
18930 slots---they all have predictable names beginning with
Dave Love <fx@gnu.org>
parents:
diff changeset
18931 @code{mail-header-} and @code{mail-header-set-}, respectively.
Dave Love <fx@gnu.org>
parents:
diff changeset
18932
Dave Love <fx@gnu.org>
parents:
diff changeset
18933 The @code{xref} slot is really a @code{misc} slot. Any extra info will
Dave Love <fx@gnu.org>
parents:
diff changeset
18934 be put in there.
Dave Love <fx@gnu.org>
parents:
diff changeset
18935
Dave Love <fx@gnu.org>
parents:
diff changeset
18936
Dave Love <fx@gnu.org>
parents:
diff changeset
18937 @node Ranges
Dave Love <fx@gnu.org>
parents:
diff changeset
18938 @subsection Ranges
Dave Love <fx@gnu.org>
parents:
diff changeset
18939
Dave Love <fx@gnu.org>
parents:
diff changeset
18940 @sc{gnus} introduced a concept that I found so useful that I've started
Dave Love <fx@gnu.org>
parents:
diff changeset
18941 using it a lot and have elaborated on it greatly.
Dave Love <fx@gnu.org>
parents:
diff changeset
18942
Dave Love <fx@gnu.org>
parents:
diff changeset
18943 The question is simple: If you have a large amount of objects that are
Dave Love <fx@gnu.org>
parents:
diff changeset
18944 identified by numbers (say, articles, to take a @emph{wild} example)
Dave Love <fx@gnu.org>
parents:
diff changeset
18945 that you want to qualify as being ``included'', a normal sequence isn't
Dave Love <fx@gnu.org>
parents:
diff changeset
18946 very useful. (A 200,000 length sequence is a bit long-winded.)
Dave Love <fx@gnu.org>
parents:
diff changeset
18947
Dave Love <fx@gnu.org>
parents:
diff changeset
18948 The solution is as simple as the question: You just collapse the
Dave Love <fx@gnu.org>
parents:
diff changeset
18949 sequence.
Dave Love <fx@gnu.org>
parents:
diff changeset
18950
Dave Love <fx@gnu.org>
parents:
diff changeset
18951 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
18952 (1 2 3 4 5 6 10 11 12)
Dave Love <fx@gnu.org>
parents:
diff changeset
18953 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
18954
Dave Love <fx@gnu.org>
parents:
diff changeset
18955 is transformed into
Dave Love <fx@gnu.org>
parents:
diff changeset
18956
Dave Love <fx@gnu.org>
parents:
diff changeset
18957 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
18958 ((1 . 6) (10 . 12))
Dave Love <fx@gnu.org>
parents:
diff changeset
18959 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
18960
Dave Love <fx@gnu.org>
parents:
diff changeset
18961 To avoid having those nasty @samp{(13 . 13)} elements to denote a
Dave Love <fx@gnu.org>
parents:
diff changeset
18962 lonesome object, a @samp{13} is a valid element:
Dave Love <fx@gnu.org>
parents:
diff changeset
18963
Dave Love <fx@gnu.org>
parents:
diff changeset
18964 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
18965 ((1 . 6) 7 (10 . 12))
Dave Love <fx@gnu.org>
parents:
diff changeset
18966 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
18967
Dave Love <fx@gnu.org>
parents:
diff changeset
18968 This means that comparing two ranges to find out whether they are equal
Dave Love <fx@gnu.org>
parents:
diff changeset
18969 is slightly tricky:
Dave Love <fx@gnu.org>
parents:
diff changeset
18970
Dave Love <fx@gnu.org>
parents:
diff changeset
18971 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
18972 ((1 . 5) 7 8 (10 . 12))
Dave Love <fx@gnu.org>
parents:
diff changeset
18973 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
18974
Dave Love <fx@gnu.org>
parents:
diff changeset
18975 and
Dave Love <fx@gnu.org>
parents:
diff changeset
18976
Dave Love <fx@gnu.org>
parents:
diff changeset
18977 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
18978 ((1 . 5) (7 . 8) (10 . 12))
Dave Love <fx@gnu.org>
parents:
diff changeset
18979 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
18980
Dave Love <fx@gnu.org>
parents:
diff changeset
18981 are equal. In fact, any non-descending list is a range:
Dave Love <fx@gnu.org>
parents:
diff changeset
18982
Dave Love <fx@gnu.org>
parents:
diff changeset
18983 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
18984 (1 2 3 4 5)
Dave Love <fx@gnu.org>
parents:
diff changeset
18985 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
18986
Dave Love <fx@gnu.org>
parents:
diff changeset
18987 is a perfectly valid range, although a pretty long-winded one. This is
Dave Love <fx@gnu.org>
parents:
diff changeset
18988 also valid:
Dave Love <fx@gnu.org>
parents:
diff changeset
18989
Dave Love <fx@gnu.org>
parents:
diff changeset
18990 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
18991 (1 . 5)
Dave Love <fx@gnu.org>
parents:
diff changeset
18992 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
18993
Dave Love <fx@gnu.org>
parents:
diff changeset
18994 and is equal to the previous range.
Dave Love <fx@gnu.org>
parents:
diff changeset
18995
Dave Love <fx@gnu.org>
parents:
diff changeset
18996 Here's a BNF definition of ranges. Of course, one must remember the
Dave Love <fx@gnu.org>
parents:
diff changeset
18997 semantic requirement that the numbers are non-descending. (Any number
Dave Love <fx@gnu.org>
parents:
diff changeset
18998 of repetition of the same number is allowed, but apt to disappear in
Dave Love <fx@gnu.org>
parents:
diff changeset
18999 range handling.)
Dave Love <fx@gnu.org>
parents:
diff changeset
19000
Dave Love <fx@gnu.org>
parents:
diff changeset
19001 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
19002 range = simple-range / normal-range
Dave Love <fx@gnu.org>
parents:
diff changeset
19003 simple-range = "(" number " . " number ")"
Dave Love <fx@gnu.org>
parents:
diff changeset
19004 normal-range = "(" start-contents ")"
Dave Love <fx@gnu.org>
parents:
diff changeset
19005 contents = "" / simple-range *[ " " contents ] /
Dave Love <fx@gnu.org>
parents:
diff changeset
19006 number *[ " " contents ]
Dave Love <fx@gnu.org>
parents:
diff changeset
19007 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
19008
Dave Love <fx@gnu.org>
parents:
diff changeset
19009 Gnus currently uses ranges to keep track of read articles and article
Dave Love <fx@gnu.org>
parents:
diff changeset
19010 marks. I plan on implementing a number of range operators in C if The
Dave Love <fx@gnu.org>
parents:
diff changeset
19011 Powers That Be are willing to let me. (I haven't asked yet, because I
Dave Love <fx@gnu.org>
parents:
diff changeset
19012 need to do some more thinking on what operators I need to make life
Dave Love <fx@gnu.org>
parents:
diff changeset
19013 totally range-based without ever having to convert back to normal
Dave Love <fx@gnu.org>
parents:
diff changeset
19014 sequences.)
Dave Love <fx@gnu.org>
parents:
diff changeset
19015
Dave Love <fx@gnu.org>
parents:
diff changeset
19016
Dave Love <fx@gnu.org>
parents:
diff changeset
19017 @node Group Info
Dave Love <fx@gnu.org>
parents:
diff changeset
19018 @subsection Group Info
Dave Love <fx@gnu.org>
parents:
diff changeset
19019
Dave Love <fx@gnu.org>
parents:
diff changeset
19020 Gnus stores all permanent info on groups in a @dfn{group info} list.
Dave Love <fx@gnu.org>
parents:
diff changeset
19021 This list is from three to six elements (or more) long and exhaustively
Dave Love <fx@gnu.org>
parents:
diff changeset
19022 describes the group.
Dave Love <fx@gnu.org>
parents:
diff changeset
19023
Dave Love <fx@gnu.org>
parents:
diff changeset
19024 Here are two example group infos; one is a very simple group while the
Dave Love <fx@gnu.org>
parents:
diff changeset
19025 second is a more complex one:
Dave Love <fx@gnu.org>
parents:
diff changeset
19026
Dave Love <fx@gnu.org>
parents:
diff changeset
19027 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
19028 ("no.group" 5 (1 . 54324))
Dave Love <fx@gnu.org>
parents:
diff changeset
19029
Dave Love <fx@gnu.org>
parents:
diff changeset
19030 ("nnml:my.mail" 3 ((1 . 5) 9 (20 . 55))
Dave Love <fx@gnu.org>
parents:
diff changeset
19031 ((tick (15 . 19)) (replied 3 6 (19 . 3)))
Dave Love <fx@gnu.org>
parents:
diff changeset
19032 (nnml "")
Dave Love <fx@gnu.org>
parents:
diff changeset
19033 ((auto-expire . t) (to-address . "ding@@gnus.org")))
Dave Love <fx@gnu.org>
parents:
diff changeset
19034 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
19035
Dave Love <fx@gnu.org>
parents:
diff changeset
19036 The first element is the @dfn{group name}---as Gnus knows the group,
Dave Love <fx@gnu.org>
parents:
diff changeset
19037 anyway. The second element is the @dfn{subscription level}, which
Dave Love <fx@gnu.org>
parents:
diff changeset
19038 normally is a small integer. (It can also be the @dfn{rank}, which is a
Dave Love <fx@gnu.org>
parents:
diff changeset
19039 cons cell where the @code{car} is the level and the @code{cdr} is the
Dave Love <fx@gnu.org>
parents:
diff changeset
19040 score.) The third element is a list of ranges of read articles. The
Dave Love <fx@gnu.org>
parents:
diff changeset
19041 fourth element is a list of lists of article marks of various kinds.
Dave Love <fx@gnu.org>
parents:
diff changeset
19042 The fifth element is the select method (or virtual server, if you like).
Dave Love <fx@gnu.org>
parents:
diff changeset
19043 The sixth element is a list of @dfn{group parameters}, which is what
Dave Love <fx@gnu.org>
parents:
diff changeset
19044 this section is about.
Dave Love <fx@gnu.org>
parents:
diff changeset
19045
Dave Love <fx@gnu.org>
parents:
diff changeset
19046 Any of the last three elements may be missing if they are not required.
Dave Love <fx@gnu.org>
parents:
diff changeset
19047 In fact, the vast majority of groups will normally only have the first
Dave Love <fx@gnu.org>
parents:
diff changeset
19048 three elements, which saves quite a lot of cons cells.
Dave Love <fx@gnu.org>
parents:
diff changeset
19049
Dave Love <fx@gnu.org>
parents:
diff changeset
19050 Here's a BNF definition of the group info format:
Dave Love <fx@gnu.org>
parents:
diff changeset
19051
Dave Love <fx@gnu.org>
parents:
diff changeset
19052 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
19053 info = "(" group space ralevel space read
Dave Love <fx@gnu.org>
parents:
diff changeset
19054 [ "" / [ space marks-list [ "" / [ space method [ "" /
Dave Love <fx@gnu.org>
parents:
diff changeset
19055 space parameters ] ] ] ] ] ")"
Dave Love <fx@gnu.org>
parents:
diff changeset
19056 group = quote <string> quote
Dave Love <fx@gnu.org>
parents:
diff changeset
19057 ralevel = rank / level
Dave Love <fx@gnu.org>
parents:
diff changeset
19058 level = <integer in the range of 1 to inf>
Dave Love <fx@gnu.org>
parents:
diff changeset
19059 rank = "(" level "." score ")"
Dave Love <fx@gnu.org>
parents:
diff changeset
19060 score = <integer in the range of 1 to inf>
Dave Love <fx@gnu.org>
parents:
diff changeset
19061 read = range
Dave Love <fx@gnu.org>
parents:
diff changeset
19062 marks-lists = nil / "(" *marks ")"
Dave Love <fx@gnu.org>
parents:
diff changeset
19063 marks = "(" <string> range ")"
Dave Love <fx@gnu.org>
parents:
diff changeset
19064 method = "(" <string> *elisp-forms ")"
Dave Love <fx@gnu.org>
parents:
diff changeset
19065 parameters = "(" *elisp-forms ")"
Dave Love <fx@gnu.org>
parents:
diff changeset
19066 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
19067
Dave Love <fx@gnu.org>
parents:
diff changeset
19068 Actually that @samp{marks} rule is a fib. A @samp{marks} is a
Dave Love <fx@gnu.org>
parents:
diff changeset
19069 @samp{<string>} consed on to a @samp{range}, but that's a bitch to say
Dave Love <fx@gnu.org>
parents:
diff changeset
19070 in pseudo-BNF.
Dave Love <fx@gnu.org>
parents:
diff changeset
19071
Dave Love <fx@gnu.org>
parents:
diff changeset
19072 If you have a Gnus info and want to access the elements, Gnus offers a
Dave Love <fx@gnu.org>
parents:
diff changeset
19073 series of macros for getting/setting these elements.
Dave Love <fx@gnu.org>
parents:
diff changeset
19074
Dave Love <fx@gnu.org>
parents:
diff changeset
19075 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
19076 @item gnus-info-group
Dave Love <fx@gnu.org>
parents:
diff changeset
19077 @itemx gnus-info-set-group
Dave Love <fx@gnu.org>
parents:
diff changeset
19078 @findex gnus-info-group
Dave Love <fx@gnu.org>
parents:
diff changeset
19079 @findex gnus-info-set-group
Dave Love <fx@gnu.org>
parents:
diff changeset
19080 Get/set the group name.
Dave Love <fx@gnu.org>
parents:
diff changeset
19081
Dave Love <fx@gnu.org>
parents:
diff changeset
19082 @item gnus-info-rank
Dave Love <fx@gnu.org>
parents:
diff changeset
19083 @itemx gnus-info-set-rank
Dave Love <fx@gnu.org>
parents:
diff changeset
19084 @findex gnus-info-rank
Dave Love <fx@gnu.org>
parents:
diff changeset
19085 @findex gnus-info-set-rank
Dave Love <fx@gnu.org>
parents:
diff changeset
19086 Get/set the group rank (@pxref{Group Score}).
Dave Love <fx@gnu.org>
parents:
diff changeset
19087
Dave Love <fx@gnu.org>
parents:
diff changeset
19088 @item gnus-info-level
Dave Love <fx@gnu.org>
parents:
diff changeset
19089 @itemx gnus-info-set-level
Dave Love <fx@gnu.org>
parents:
diff changeset
19090 @findex gnus-info-level
Dave Love <fx@gnu.org>
parents:
diff changeset
19091 @findex gnus-info-set-level
Dave Love <fx@gnu.org>
parents:
diff changeset
19092 Get/set the group level.
Dave Love <fx@gnu.org>
parents:
diff changeset
19093
Dave Love <fx@gnu.org>
parents:
diff changeset
19094 @item gnus-info-score
Dave Love <fx@gnu.org>
parents:
diff changeset
19095 @itemx gnus-info-set-score
Dave Love <fx@gnu.org>
parents:
diff changeset
19096 @findex gnus-info-score
Dave Love <fx@gnu.org>
parents:
diff changeset
19097 @findex gnus-info-set-score
Dave Love <fx@gnu.org>
parents:
diff changeset
19098 Get/set the group score (@pxref{Group Score}).
Dave Love <fx@gnu.org>
parents:
diff changeset
19099
Dave Love <fx@gnu.org>
parents:
diff changeset
19100 @item gnus-info-read
Dave Love <fx@gnu.org>
parents:
diff changeset
19101 @itemx gnus-info-set-read
Dave Love <fx@gnu.org>
parents:
diff changeset
19102 @findex gnus-info-read
Dave Love <fx@gnu.org>
parents:
diff changeset
19103 @findex gnus-info-set-read
Dave Love <fx@gnu.org>
parents:
diff changeset
19104 Get/set the ranges of read articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
19105
Dave Love <fx@gnu.org>
parents:
diff changeset
19106 @item gnus-info-marks
Dave Love <fx@gnu.org>
parents:
diff changeset
19107 @itemx gnus-info-set-marks
Dave Love <fx@gnu.org>
parents:
diff changeset
19108 @findex gnus-info-marks
Dave Love <fx@gnu.org>
parents:
diff changeset
19109 @findex gnus-info-set-marks
Dave Love <fx@gnu.org>
parents:
diff changeset
19110 Get/set the lists of ranges of marked articles.
Dave Love <fx@gnu.org>
parents:
diff changeset
19111
Dave Love <fx@gnu.org>
parents:
diff changeset
19112 @item gnus-info-method
Dave Love <fx@gnu.org>
parents:
diff changeset
19113 @itemx gnus-info-set-method
Dave Love <fx@gnu.org>
parents:
diff changeset
19114 @findex gnus-info-method
Dave Love <fx@gnu.org>
parents:
diff changeset
19115 @findex gnus-info-set-method
Dave Love <fx@gnu.org>
parents:
diff changeset
19116 Get/set the group select method.
Dave Love <fx@gnu.org>
parents:
diff changeset
19117
Dave Love <fx@gnu.org>
parents:
diff changeset
19118 @item gnus-info-params
Dave Love <fx@gnu.org>
parents:
diff changeset
19119 @itemx gnus-info-set-params
Dave Love <fx@gnu.org>
parents:
diff changeset
19120 @findex gnus-info-params
Dave Love <fx@gnu.org>
parents:
diff changeset
19121 @findex gnus-info-set-params
Dave Love <fx@gnu.org>
parents:
diff changeset
19122 Get/set the group parameters.
Dave Love <fx@gnu.org>
parents:
diff changeset
19123 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
19124
Dave Love <fx@gnu.org>
parents:
diff changeset
19125 All the getter functions take one parameter---the info list. The setter
Dave Love <fx@gnu.org>
parents:
diff changeset
19126 functions take two parameters---the info list and the new value.
Dave Love <fx@gnu.org>
parents:
diff changeset
19127
Dave Love <fx@gnu.org>
parents:
diff changeset
19128 The last three elements in the group info aren't mandatory, so it may be
Dave Love <fx@gnu.org>
parents:
diff changeset
19129 necessary to extend the group info before setting the element. If this
Dave Love <fx@gnu.org>
parents:
diff changeset
19130 is necessary, you can just pass on a non-@code{nil} third parameter to
Dave Love <fx@gnu.org>
parents:
diff changeset
19131 the three final setter functions to have this happen automatically.
Dave Love <fx@gnu.org>
parents:
diff changeset
19132
Dave Love <fx@gnu.org>
parents:
diff changeset
19133
Dave Love <fx@gnu.org>
parents:
diff changeset
19134 @node Extended Interactive
Dave Love <fx@gnu.org>
parents:
diff changeset
19135 @subsection Extended Interactive
Dave Love <fx@gnu.org>
parents:
diff changeset
19136 @cindex interactive
Dave Love <fx@gnu.org>
parents:
diff changeset
19137 @findex gnus-interactive
Dave Love <fx@gnu.org>
parents:
diff changeset
19138
Dave Love <fx@gnu.org>
parents:
diff changeset
19139 Gnus extends the standard Emacs @code{interactive} specification
Dave Love <fx@gnu.org>
parents:
diff changeset
19140 slightly to allow easy use of the symbolic prefix (@pxref{Symbolic
Dave Love <fx@gnu.org>
parents:
diff changeset
19141 Prefixes}). Here's an example of how this is used:
Dave Love <fx@gnu.org>
parents:
diff changeset
19142
Dave Love <fx@gnu.org>
parents:
diff changeset
19143 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
19144 (defun gnus-summary-increase-score (&optional score symp)
Dave Love <fx@gnu.org>
parents:
diff changeset
19145 (interactive (gnus-interactive "P\ny"))
Dave Love <fx@gnu.org>
parents:
diff changeset
19146 ...
Dave Love <fx@gnu.org>
parents:
diff changeset
19147 )
Dave Love <fx@gnu.org>
parents:
diff changeset
19148 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
19149
Dave Love <fx@gnu.org>
parents:
diff changeset
19150 The best thing to do would have been to implement
Dave Love <fx@gnu.org>
parents:
diff changeset
19151 @code{gnus-interactive} as a macro which would have returned an
Dave Love <fx@gnu.org>
parents:
diff changeset
19152 @code{interactive} form, but this isn't possible since Emacs checks
Dave Love <fx@gnu.org>
parents:
diff changeset
19153 whether a function is interactive or not by simply doing an @code{assq}
Dave Love <fx@gnu.org>
parents:
diff changeset
19154 on the lambda form. So, instead we have @code{gnus-interactive}
Dave Love <fx@gnu.org>
parents:
diff changeset
19155 function that takes a string and returns values that are usable to
Dave Love <fx@gnu.org>
parents:
diff changeset
19156 @code{interactive}.
Dave Love <fx@gnu.org>
parents:
diff changeset
19157
Dave Love <fx@gnu.org>
parents:
diff changeset
19158 This function accepts (almost) all normal @code{interactive} specs, but
Dave Love <fx@gnu.org>
parents:
diff changeset
19159 adds a few more.
Dave Love <fx@gnu.org>
parents:
diff changeset
19160
Dave Love <fx@gnu.org>
parents:
diff changeset
19161 @table @samp
Dave Love <fx@gnu.org>
parents:
diff changeset
19162 @item y
Dave Love <fx@gnu.org>
parents:
diff changeset
19163 @vindex gnus-current-prefix-symbol
Dave Love <fx@gnu.org>
parents:
diff changeset
19164 The current symbolic prefix---the @code{gnus-current-prefix-symbol}
Dave Love <fx@gnu.org>
parents:
diff changeset
19165 variable.
Dave Love <fx@gnu.org>
parents:
diff changeset
19166
Dave Love <fx@gnu.org>
parents:
diff changeset
19167 @item Y
Dave Love <fx@gnu.org>
parents:
diff changeset
19168 @vindex gnus-current-prefix-symbols
Dave Love <fx@gnu.org>
parents:
diff changeset
19169 A list of the current symbolic prefixes---the
Dave Love <fx@gnu.org>
parents:
diff changeset
19170 @code{gnus-current-prefix-symbol} variable.
Dave Love <fx@gnu.org>
parents:
diff changeset
19171
Dave Love <fx@gnu.org>
parents:
diff changeset
19172 @item A
Dave Love <fx@gnu.org>
parents:
diff changeset
19173 The current article number---the @code{gnus-summary-article-number}
Dave Love <fx@gnu.org>
parents:
diff changeset
19174 function.
Dave Love <fx@gnu.org>
parents:
diff changeset
19175
Dave Love <fx@gnu.org>
parents:
diff changeset
19176 @item H
Dave Love <fx@gnu.org>
parents:
diff changeset
19177 The current article header---the @code{gnus-summary-article-header}
Dave Love <fx@gnu.org>
parents:
diff changeset
19178 function.
Dave Love <fx@gnu.org>
parents:
diff changeset
19179
Dave Love <fx@gnu.org>
parents:
diff changeset
19180 @item g
Dave Love <fx@gnu.org>
parents:
diff changeset
19181 The current group name---the @code{gnus-group-group-name}
Dave Love <fx@gnu.org>
parents:
diff changeset
19182 function.
Dave Love <fx@gnu.org>
parents:
diff changeset
19183
Dave Love <fx@gnu.org>
parents:
diff changeset
19184 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
19185
Dave Love <fx@gnu.org>
parents:
diff changeset
19186
Dave Love <fx@gnu.org>
parents:
diff changeset
19187 @node Emacs/XEmacs Code
Dave Love <fx@gnu.org>
parents:
diff changeset
19188 @subsection Emacs/XEmacs Code
Dave Love <fx@gnu.org>
parents:
diff changeset
19189 @cindex XEmacs
Dave Love <fx@gnu.org>
parents:
diff changeset
19190 @cindex Emacsen
Dave Love <fx@gnu.org>
parents:
diff changeset
19191
Dave Love <fx@gnu.org>
parents:
diff changeset
19192 While Gnus runs under Emacs, XEmacs and Mule, I decided that one of the
Dave Love <fx@gnu.org>
parents:
diff changeset
19193 platforms must be the primary one. I chose Emacs. Not because I don't
Dave Love <fx@gnu.org>
parents:
diff changeset
19194 like XEmacs or Mule, but because it comes first alphabetically.
Dave Love <fx@gnu.org>
parents:
diff changeset
19195
Dave Love <fx@gnu.org>
parents:
diff changeset
19196 This means that Gnus will byte-compile under Emacs with nary a warning,
Dave Love <fx@gnu.org>
parents:
diff changeset
19197 while XEmacs will pump out gigabytes of warnings while byte-compiling.
Dave Love <fx@gnu.org>
parents:
diff changeset
19198 As I use byte-compilation warnings to help me root out trivial errors in
Dave Love <fx@gnu.org>
parents:
diff changeset
19199 Gnus, that's very useful.
Dave Love <fx@gnu.org>
parents:
diff changeset
19200
Dave Love <fx@gnu.org>
parents:
diff changeset
19201 I've also consistently used Emacs function interfaces, but have used
Dave Love <fx@gnu.org>
parents:
diff changeset
19202 Gnusey aliases for the functions. To take an example: Emacs defines a
Dave Love <fx@gnu.org>
parents:
diff changeset
19203 @code{run-at-time} function while XEmacs defines a @code{start-itimer}
Dave Love <fx@gnu.org>
parents:
diff changeset
19204 function. I then define a function called @code{gnus-run-at-time} that
Dave Love <fx@gnu.org>
parents:
diff changeset
19205 takes the same parameters as the Emacs @code{run-at-time}. When running
Dave Love <fx@gnu.org>
parents:
diff changeset
19206 Gnus under Emacs, the former function is just an alias for the latter.
Dave Love <fx@gnu.org>
parents:
diff changeset
19207 However, when running under XEmacs, the former is an alias for the
Dave Love <fx@gnu.org>
parents:
diff changeset
19208 following function:
Dave Love <fx@gnu.org>
parents:
diff changeset
19209
Dave Love <fx@gnu.org>
parents:
diff changeset
19210 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
19211 (defun gnus-xmas-run-at-time (time repeat function &rest args)
Dave Love <fx@gnu.org>
parents:
diff changeset
19212 (start-itimer
Dave Love <fx@gnu.org>
parents:
diff changeset
19213 "gnus-run-at-time"
Dave Love <fx@gnu.org>
parents:
diff changeset
19214 `(lambda ()
Dave Love <fx@gnu.org>
parents:
diff changeset
19215 (,function ,@@args))
Dave Love <fx@gnu.org>
parents:
diff changeset
19216 time repeat))
Dave Love <fx@gnu.org>
parents:
diff changeset
19217 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
19218
Dave Love <fx@gnu.org>
parents:
diff changeset
19219 This sort of thing has been done for bunches of functions. Gnus does
Dave Love <fx@gnu.org>
parents:
diff changeset
19220 not redefine any native Emacs functions while running under XEmacs---it
Dave Love <fx@gnu.org>
parents:
diff changeset
19221 does this @code{defalias} thing with Gnus equivalents instead. Cleaner
Dave Love <fx@gnu.org>
parents:
diff changeset
19222 all over.
Dave Love <fx@gnu.org>
parents:
diff changeset
19223
Dave Love <fx@gnu.org>
parents:
diff changeset
19224 In the cases where the XEmacs function interface was obviously cleaner,
Dave Love <fx@gnu.org>
parents:
diff changeset
19225 I used it instead. For example @code{gnus-region-active-p} is an alias
Dave Love <fx@gnu.org>
parents:
diff changeset
19226 for @code{region-active-p} in XEmacs, whereas in Emacs it is a function.
Dave Love <fx@gnu.org>
parents:
diff changeset
19227
Dave Love <fx@gnu.org>
parents:
diff changeset
19228 Of course, I could have chosen XEmacs as my native platform and done
Dave Love <fx@gnu.org>
parents:
diff changeset
19229 mapping functions the other way around. But I didn't. The performance
Dave Love <fx@gnu.org>
parents:
diff changeset
19230 hit these indirections impose on Gnus under XEmacs should be slight.
Dave Love <fx@gnu.org>
parents:
diff changeset
19231
Dave Love <fx@gnu.org>
parents:
diff changeset
19232
Dave Love <fx@gnu.org>
parents:
diff changeset
19233 @node Various File Formats
Dave Love <fx@gnu.org>
parents:
diff changeset
19234 @subsection Various File Formats
Dave Love <fx@gnu.org>
parents:
diff changeset
19235
Dave Love <fx@gnu.org>
parents:
diff changeset
19236 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
19237 * Active File Format:: Information on articles and groups available.
Dave Love <fx@gnu.org>
parents:
diff changeset
19238 * Newsgroups File Format:: Group descriptions.
Dave Love <fx@gnu.org>
parents:
diff changeset
19239 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
19240
Dave Love <fx@gnu.org>
parents:
diff changeset
19241
Dave Love <fx@gnu.org>
parents:
diff changeset
19242 @node Active File Format
Dave Love <fx@gnu.org>
parents:
diff changeset
19243 @subsubsection Active File Format
Dave Love <fx@gnu.org>
parents:
diff changeset
19244
Dave Love <fx@gnu.org>
parents:
diff changeset
19245 The active file lists all groups available on the server in
Dave Love <fx@gnu.org>
parents:
diff changeset
19246 question. It also lists the highest and lowest current article numbers
Dave Love <fx@gnu.org>
parents:
diff changeset
19247 in each group.
Dave Love <fx@gnu.org>
parents:
diff changeset
19248
Dave Love <fx@gnu.org>
parents:
diff changeset
19249 Here's an excerpt from a typical active file:
Dave Love <fx@gnu.org>
parents:
diff changeset
19250
Dave Love <fx@gnu.org>
parents:
diff changeset
19251 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
19252 soc.motss 296030 293865 y
Dave Love <fx@gnu.org>
parents:
diff changeset
19253 alt.binaries.pictures.fractals 3922 3913 n
Dave Love <fx@gnu.org>
parents:
diff changeset
19254 comp.sources.unix 1605 1593 m
Dave Love <fx@gnu.org>
parents:
diff changeset
19255 comp.binaries.ibm.pc 5097 5089 y
Dave Love <fx@gnu.org>
parents:
diff changeset
19256 no.general 1000 900 y
Dave Love <fx@gnu.org>
parents:
diff changeset
19257 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
19258
Dave Love <fx@gnu.org>
parents:
diff changeset
19259 Here's a pseudo-BNF definition of this file:
Dave Love <fx@gnu.org>
parents:
diff changeset
19260
Dave Love <fx@gnu.org>
parents:
diff changeset
19261 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
19262 active = *group-line
Dave Love <fx@gnu.org>
parents:
diff changeset
19263 group-line = group space high-number space low-number space flag <NEWLINE>
Dave Love <fx@gnu.org>
parents:
diff changeset
19264 group = <non-white-space string>
Dave Love <fx@gnu.org>
parents:
diff changeset
19265 space = " "
Dave Love <fx@gnu.org>
parents:
diff changeset
19266 high-number = <non-negative integer>
Dave Love <fx@gnu.org>
parents:
diff changeset
19267 low-number = <positive integer>
Dave Love <fx@gnu.org>
parents:
diff changeset
19268 flag = "y" / "n" / "m" / "j" / "x" / "=" group
Dave Love <fx@gnu.org>
parents:
diff changeset
19269 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
19270
Dave Love <fx@gnu.org>
parents:
diff changeset
19271 For a full description of this file, see the manual pages for
Dave Love <fx@gnu.org>
parents:
diff changeset
19272 @samp{innd}, in particular @samp{active(5)}.
Dave Love <fx@gnu.org>
parents:
diff changeset
19273
Dave Love <fx@gnu.org>
parents:
diff changeset
19274
Dave Love <fx@gnu.org>
parents:
diff changeset
19275 @node Newsgroups File Format
Dave Love <fx@gnu.org>
parents:
diff changeset
19276 @subsubsection Newsgroups File Format
Dave Love <fx@gnu.org>
parents:
diff changeset
19277
Dave Love <fx@gnu.org>
parents:
diff changeset
19278 The newsgroups file lists groups along with their descriptions. Not all
Dave Love <fx@gnu.org>
parents:
diff changeset
19279 groups on the server have to be listed, and not all groups in the file
Dave Love <fx@gnu.org>
parents:
diff changeset
19280 have to exist on the server. The file is meant purely as information to
Dave Love <fx@gnu.org>
parents:
diff changeset
19281 the user.
Dave Love <fx@gnu.org>
parents:
diff changeset
19282
Dave Love <fx@gnu.org>
parents:
diff changeset
19283 The format is quite simple; a group name, a tab, and the description.
Dave Love <fx@gnu.org>
parents:
diff changeset
19284 Here's the definition:
Dave Love <fx@gnu.org>
parents:
diff changeset
19285
Dave Love <fx@gnu.org>
parents:
diff changeset
19286 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
19287 newsgroups = *line
Dave Love <fx@gnu.org>
parents:
diff changeset
19288 line = group tab description <NEWLINE>
Dave Love <fx@gnu.org>
parents:
diff changeset
19289 group = <non-white-space string>
Dave Love <fx@gnu.org>
parents:
diff changeset
19290 tab = <TAB>
Dave Love <fx@gnu.org>
parents:
diff changeset
19291 description = <string>
Dave Love <fx@gnu.org>
parents:
diff changeset
19292 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
19293
Dave Love <fx@gnu.org>
parents:
diff changeset
19294
Dave Love <fx@gnu.org>
parents:
diff changeset
19295 @page
Dave Love <fx@gnu.org>
parents:
diff changeset
19296 @node Emacs for Heathens
Dave Love <fx@gnu.org>
parents:
diff changeset
19297 @section Emacs for Heathens
Dave Love <fx@gnu.org>
parents:
diff changeset
19298
Dave Love <fx@gnu.org>
parents:
diff changeset
19299 Believe it or not, but some people who use Gnus haven't really used
Dave Love <fx@gnu.org>
parents:
diff changeset
19300 Emacs much before they embarked on their journey on the Gnus Love Boat.
Dave Love <fx@gnu.org>
parents:
diff changeset
19301 If you are one of those unfortunates whom ``@kbd{M-C-a}'', ``kill the
Dave Love <fx@gnu.org>
parents:
diff changeset
19302 region'', and ``set @code{gnus-flargblossen} to an alist where the key
Dave Love <fx@gnu.org>
parents:
diff changeset
19303 is a regexp that is used for matching on the group name'' are magical
Dave Love <fx@gnu.org>
parents:
diff changeset
19304 phrases with little or no meaning, then this appendix is for you. If
Dave Love <fx@gnu.org>
parents:
diff changeset
19305 you are already familiar with Emacs, just ignore this and go fondle your
Dave Love <fx@gnu.org>
parents:
diff changeset
19306 cat instead.
Dave Love <fx@gnu.org>
parents:
diff changeset
19307
Dave Love <fx@gnu.org>
parents:
diff changeset
19308 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
19309 * Keystrokes:: Entering text and executing commands.
Dave Love <fx@gnu.org>
parents:
diff changeset
19310 * Emacs Lisp:: The built-in Emacs programming language.
Dave Love <fx@gnu.org>
parents:
diff changeset
19311 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
19312
Dave Love <fx@gnu.org>
parents:
diff changeset
19313
Dave Love <fx@gnu.org>
parents:
diff changeset
19314 @node Keystrokes
Dave Love <fx@gnu.org>
parents:
diff changeset
19315 @subsection Keystrokes
Dave Love <fx@gnu.org>
parents:
diff changeset
19316
Dave Love <fx@gnu.org>
parents:
diff changeset
19317 @itemize @bullet
Dave Love <fx@gnu.org>
parents:
diff changeset
19318 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
19319 Q: What is an experienced Emacs user?
Dave Love <fx@gnu.org>
parents:
diff changeset
19320
Dave Love <fx@gnu.org>
parents:
diff changeset
19321 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
19322 A: A person who wishes that the terminal had pedals.
Dave Love <fx@gnu.org>
parents:
diff changeset
19323 @end itemize
Dave Love <fx@gnu.org>
parents:
diff changeset
19324
Dave Love <fx@gnu.org>
parents:
diff changeset
19325 Yes, when you use Emacs, you are apt to use the control key, the shift
Dave Love <fx@gnu.org>
parents:
diff changeset
19326 key and the meta key a lot. This is very annoying to some people
Dave Love <fx@gnu.org>
parents:
diff changeset
19327 (notably @code{vi}le users), and the rest of us just love the hell out
Dave Love <fx@gnu.org>
parents:
diff changeset
19328 of it. Just give up and submit. Emacs really does stand for
Dave Love <fx@gnu.org>
parents:
diff changeset
19329 ``Escape-Meta-Alt-Control-Shift'', and not ``Editing Macros'', as you
Dave Love <fx@gnu.org>
parents:
diff changeset
19330 may have heard from other disreputable sources (like the Emacs author).
Dave Love <fx@gnu.org>
parents:
diff changeset
19331
Dave Love <fx@gnu.org>
parents:
diff changeset
19332 The shift keys are normally located near your pinky fingers, and are
Dave Love <fx@gnu.org>
parents:
diff changeset
19333 normally used to get capital letters and stuff. You probably use it all
Dave Love <fx@gnu.org>
parents:
diff changeset
19334 the time. The control key is normally marked ``CTRL'' or something like
Dave Love <fx@gnu.org>
parents:
diff changeset
19335 that. The meta key is, funnily enough, never marked as such on any
Dave Love <fx@gnu.org>
parents:
diff changeset
19336 keyboard. The one I'm currently at has a key that's marked ``Alt'',
Dave Love <fx@gnu.org>
parents:
diff changeset
19337 which is the meta key on this keyboard. It's usually located somewhere
Dave Love <fx@gnu.org>
parents:
diff changeset
19338 to the left hand side of the keyboard, usually on the bottom row.
Dave Love <fx@gnu.org>
parents:
diff changeset
19339
Dave Love <fx@gnu.org>
parents:
diff changeset
19340 Now, us Emacs people don't say ``press the meta-control-m key'',
Dave Love <fx@gnu.org>
parents:
diff changeset
19341 because that's just too inconvenient. We say ``press the @kbd{M-C-m}
Dave Love <fx@gnu.org>
parents:
diff changeset
19342 key''. @kbd{M-} is the prefix that means ``meta'' and ``C-'' is the
Dave Love <fx@gnu.org>
parents:
diff changeset
19343 prefix that means ``control''. So ``press @kbd{C-k}'' means ``press
Dave Love <fx@gnu.org>
parents:
diff changeset
19344 down the control key, and hold it down while you press @kbd{k}''.
Dave Love <fx@gnu.org>
parents:
diff changeset
19345 ``Press @kbd{M-C-k}'' means ``press down and hold down the meta key and
Dave Love <fx@gnu.org>
parents:
diff changeset
19346 the control key and then press @kbd{k}''. Simple, ay?
Dave Love <fx@gnu.org>
parents:
diff changeset
19347
Dave Love <fx@gnu.org>
parents:
diff changeset
19348 This is somewhat complicated by the fact that not all keyboards have a
Dave Love <fx@gnu.org>
parents:
diff changeset
19349 meta key. In that case you can use the ``escape'' key. Then @kbd{M-k}
Dave Love <fx@gnu.org>
parents:
diff changeset
19350 means ``press escape, release escape, press @kbd{k}''. That's much more
Dave Love <fx@gnu.org>
parents:
diff changeset
19351 work than if you have a meta key, so if that's the case, I respectfully
Dave Love <fx@gnu.org>
parents:
diff changeset
19352 suggest you get a real keyboard with a meta key. You can't live without
Dave Love <fx@gnu.org>
parents:
diff changeset
19353 it.
Dave Love <fx@gnu.org>
parents:
diff changeset
19354
Dave Love <fx@gnu.org>
parents:
diff changeset
19355
Dave Love <fx@gnu.org>
parents:
diff changeset
19356
Dave Love <fx@gnu.org>
parents:
diff changeset
19357 @node Emacs Lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
19358 @subsection Emacs Lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
19359
Dave Love <fx@gnu.org>
parents:
diff changeset
19360 Emacs is the King of Editors because it's really a Lisp interpreter.
Dave Love <fx@gnu.org>
parents:
diff changeset
19361 Each and every key you tap runs some Emacs Lisp code snippet, and since
Dave Love <fx@gnu.org>
parents:
diff changeset
19362 Emacs Lisp is an interpreted language, that means that you can configure
Dave Love <fx@gnu.org>
parents:
diff changeset
19363 any key to run any arbitrary code. You just, like, do it.
Dave Love <fx@gnu.org>
parents:
diff changeset
19364
Dave Love <fx@gnu.org>
parents:
diff changeset
19365 Gnus is written in Emacs Lisp, and is run as a bunch of interpreted
Dave Love <fx@gnu.org>
parents:
diff changeset
19366 functions. (These are byte-compiled for speed, but it's still
Dave Love <fx@gnu.org>
parents:
diff changeset
19367 interpreted.) If you decide that you don't like the way Gnus does
Dave Love <fx@gnu.org>
parents:
diff changeset
19368 certain things, it's trivial to have it do something a different way.
Dave Love <fx@gnu.org>
parents:
diff changeset
19369 (Well, at least if you know how to write Lisp code.) However, that's
Dave Love <fx@gnu.org>
parents:
diff changeset
19370 beyond the scope of this manual, so we are simply going to talk about
Dave Love <fx@gnu.org>
parents:
diff changeset
19371 some common constructs that you normally use in your @file{.emacs} file
Dave Love <fx@gnu.org>
parents:
diff changeset
19372 to customize Gnus.
Dave Love <fx@gnu.org>
parents:
diff changeset
19373
Dave Love <fx@gnu.org>
parents:
diff changeset
19374 If you want to set the variable @code{gnus-florgbnize} to four (4), you
Dave Love <fx@gnu.org>
parents:
diff changeset
19375 write the following:
Dave Love <fx@gnu.org>
parents:
diff changeset
19376
Dave Love <fx@gnu.org>
parents:
diff changeset
19377 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
19378 (setq gnus-florgbnize 4)
Dave Love <fx@gnu.org>
parents:
diff changeset
19379 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
19380
Dave Love <fx@gnu.org>
parents:
diff changeset
19381 This function (really ``special form'') @code{setq} is the one that can
Dave Love <fx@gnu.org>
parents:
diff changeset
19382 set a variable to some value. This is really all you need to know. Now
Dave Love <fx@gnu.org>
parents:
diff changeset
19383 you can go and fill your @code{.emacs} file with lots of these to change
Dave Love <fx@gnu.org>
parents:
diff changeset
19384 how Gnus works.
Dave Love <fx@gnu.org>
parents:
diff changeset
19385
Dave Love <fx@gnu.org>
parents:
diff changeset
19386 If you have put that thing in your @code{.emacs} file, it will be read
Dave Love <fx@gnu.org>
parents:
diff changeset
19387 and @code{eval}ed (which is lisp-ese for ``run'') the next time you
Dave Love <fx@gnu.org>
parents:
diff changeset
19388 start Emacs. If you want to change the variable right away, simply say
Dave Love <fx@gnu.org>
parents:
diff changeset
19389 @kbd{C-x C-e} after the closing parenthesis. That will @code{eval} the
Dave Love <fx@gnu.org>
parents:
diff changeset
19390 previous ``form'', which is a simple @code{setq} statement here.
Dave Love <fx@gnu.org>
parents:
diff changeset
19391
Dave Love <fx@gnu.org>
parents:
diff changeset
19392 Go ahead---just try it, if you're located at your Emacs. After you
Dave Love <fx@gnu.org>
parents:
diff changeset
19393 @kbd{C-x C-e}, you will see @samp{4} appear in the echo area, which
Dave Love <fx@gnu.org>
parents:
diff changeset
19394 is the return value of the form you @code{eval}ed.
Dave Love <fx@gnu.org>
parents:
diff changeset
19395
Dave Love <fx@gnu.org>
parents:
diff changeset
19396 Some pitfalls:
Dave Love <fx@gnu.org>
parents:
diff changeset
19397
Dave Love <fx@gnu.org>
parents:
diff changeset
19398 If the manual says ``set @code{gnus-read-active-file} to @code{some}'',
Dave Love <fx@gnu.org>
parents:
diff changeset
19399 that means:
Dave Love <fx@gnu.org>
parents:
diff changeset
19400
Dave Love <fx@gnu.org>
parents:
diff changeset
19401 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
19402 (setq gnus-read-active-file 'some)
Dave Love <fx@gnu.org>
parents:
diff changeset
19403 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
19404
Dave Love <fx@gnu.org>
parents:
diff changeset
19405 On the other hand, if the manual says ``set @code{gnus-nntp-server} to
Dave Love <fx@gnu.org>
parents:
diff changeset
19406 @samp{nntp.ifi.uio.no}'', that means:
Dave Love <fx@gnu.org>
parents:
diff changeset
19407
Dave Love <fx@gnu.org>
parents:
diff changeset
19408 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
19409 (setq gnus-nntp-server "nntp.ifi.uio.no")
Dave Love <fx@gnu.org>
parents:
diff changeset
19410 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
19411
Dave Love <fx@gnu.org>
parents:
diff changeset
19412 So be careful not to mix up strings (the latter) with symbols (the
Dave Love <fx@gnu.org>
parents:
diff changeset
19413 former). The manual is unambiguous, but it can be confusing.
Dave Love <fx@gnu.org>
parents:
diff changeset
19414
Dave Love <fx@gnu.org>
parents:
diff changeset
19415 @page
Dave Love <fx@gnu.org>
parents:
diff changeset
19416 @include gnus-faq.texi
Dave Love <fx@gnu.org>
parents:
diff changeset
19417
Dave Love <fx@gnu.org>
parents:
diff changeset
19418 @node Index
Dave Love <fx@gnu.org>
parents:
diff changeset
19419 @chapter Index
Dave Love <fx@gnu.org>
parents:
diff changeset
19420 @printindex cp
Dave Love <fx@gnu.org>
parents:
diff changeset
19421
Dave Love <fx@gnu.org>
parents:
diff changeset
19422 @node Key Index
Dave Love <fx@gnu.org>
parents:
diff changeset
19423 @chapter Key Index
Dave Love <fx@gnu.org>
parents:
diff changeset
19424 @printindex ky
Dave Love <fx@gnu.org>
parents:
diff changeset
19425
29713
983e65f12610 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents: 26795
diff changeset
19426 @setchapternewpage odd
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
19427 @summarycontents
Dave Love <fx@gnu.org>
parents:
diff changeset
19428 @contents
Dave Love <fx@gnu.org>
parents:
diff changeset
19429 @bye
Dave Love <fx@gnu.org>
parents:
diff changeset
19430
Dave Love <fx@gnu.org>
parents:
diff changeset
19431
Dave Love <fx@gnu.org>
parents:
diff changeset
19432 @c End:
Dave Love <fx@gnu.org>
parents:
diff changeset
19433