*** empty log message ***
[gnus] / texi / gnus.texi
1 \input texinfo                  @c -*-texinfo-*-
2
3 @setfilename gnus
4 @settitle Quassia Gnus 0.19 Manual
5 @synindex fn cp
6 @synindex vr cp
7 @synindex pg cp
8 @iftex
9 @finalout
10 @end iftex
11 @setchapternewpage odd
12
13 @iftex
14 @iflatex
15 \documentclass[twoside,a4paper,openright,11pt]{book}
16 \usepackage[latin1]{inputenc}
17 \usepackage{pagestyle}
18 \usepackage{epsfig}
19 \usepackage{bembo}
20 \usepackage{pixidx}
21
22 \makeindex
23 \begin{document}
24
25 \newcommand{\gnuschaptername}{}
26 \newcommand{\gnussectionname}{}
27
28 \newcommand{\gnusbackslash}{/}
29
30 \newcommand{\gnusxref}[1]{See ``#1'' on page \pageref{#1}}
31 \newcommand{\gnuspxref}[1]{see ``#1'' on page \pageref{#1}}
32
33 \newcommand{\gnuskindex}[1]{\index{#1}}
34 \newcommand{\gnusindex}[1]{\index{#1}}
35
36 \newcommand{\gnustt}[1]{{\fontfamily{pfu}\fontsize{10pt}{10}\selectfont #1}}
37 \newcommand{\gnuscode}[1]{\gnustt{#1}}
38 \newcommand{\gnussamp}[1]{``{\fontencoding{OT1}\fontfamily{pfu}\fontsize{10pt}{10}\selectfont #1}''}
39 \newcommand{\gnuslisp}[1]{\gnustt{#1}}
40 \newcommand{\gnuskbd}[1]{`\gnustt{#1}'}
41 \newcommand{\gnusfile}[1]{`\gnustt{#1}'}
42 \newcommand{\gnusdfn}[1]{\textit{#1}}
43 \newcommand{\gnusi}[1]{\textit{#1}}
44 \newcommand{\gnusstrong}[1]{\textbf{#1}}
45 \newcommand{\gnusemph}[1]{\textit{#1}}
46 \newcommand{\gnusvar}[1]{{\fontsize{10pt}{10}\selectfont\textsl{\textsf{#1}}}}
47 \newcommand{\gnussc}[1]{\textsc{#1}}
48 \newcommand{\gnustitle}[1]{{\huge\textbf{#1}}}
49 \newcommand{\gnusauthor}[1]{{\large\textbf{#1}}}
50
51 \newcommand{\gnusbullet}{{${\bullet}$}}
52 \newcommand{\gnusdollar}{\$}
53 \newcommand{\gnusampersand}{\&}
54 \newcommand{\gnuspercent}{\%}
55 \newcommand{\gnushash}{\#}
56 \newcommand{\gnushat}{\symbol{"5E}}
57 \newcommand{\gnusunderline}{\symbol{"5F}}
58 \newcommand{\gnusnot}{$\neg$}
59 \newcommand{\gnustilde}{\symbol{"7E}}
60 \newcommand{\gnusless}{{$<$}}
61 \newcommand{\gnusgreater}{{$>$}}
62
63 \newcommand{\gnushead}{\raisebox{-1cm}{\epsfig{figure=ps/gnus-head.eps,height=1cm}}}
64 \newcommand{\gnusinteresting}{
65 \marginpar[\mbox{}\hfill\gnushead]{\gnushead}
66 }
67
68 \newcommand{\gnuscleardoublepage}{\ifodd\count0\mbox{}\clearpage\thispagestyle{empty}\mbox{}\clearpage\else\clearpage\fi}
69
70 \newcommand{\gnuspagechapter}[1]{
71 {\mbox{}}
72 }
73
74 \newdimen{\gnusdimen}
75 \gnusdimen 0pt
76
77 \newcommand{\gnuschapter}[2]{
78 \gnuscleardoublepage
79 \ifdim \gnusdimen = 0pt\setcounter{page}{1}\pagestyle{gnus}\pagenumbering{arabic} \gnusdimen 1pt\fi
80 \chapter{#2}
81 \renewcommand{\gnussectionname}{}
82 \renewcommand{\gnuschaptername}{#2}
83 \thispagestyle{empty}
84 \hspace*{-2cm}
85 \begin{picture}(500,500)(0,0)
86 \put(480,350){\makebox(0,0)[tr]{#1}}
87 \put(40,300){\makebox(500,50)[bl]{{\Huge\bf{#2}}}}
88 \end{picture}
89 \clearpage
90 }
91
92 \newcommand{\gnusfigure}[3]{
93 \begin{figure}
94 \mbox{}\ifodd\count0\hspace*{-0.8cm}\else\hspace*{-3cm}\fi\begin{picture}(440,#2)
95 #3
96 \end{picture}
97 \caption{#1}
98 \end{figure}
99 }
100
101 \newcommand{\gnusicon}[1]{
102 \marginpar[\mbox{}\hfill\raisebox{-1.5cm}{\epsfig{figure=tmp/#1-up.ps,height=1.5cm}}]{\raisebox{-1cm}{\epsfig{figure=tmp/#1-up.ps,height=1cm}}}
103 }
104
105 \newcommand{\gnuspicon}[1]{
106 \margindex{\epsfig{figure=#1,width=2cm}}
107 }
108
109 \newcommand{\gnusxface}[2]{
110 \margindex{\epsfig{figure=#1,width=1cm}\epsfig{figure=#2,width=1cm}}
111 }
112
113 \newcommand{\gnussmiley}[2]{
114 \margindex{\makebox[2cm]{\hfill\epsfig{figure=#1,width=0.5cm}\hfill\epsfig{figure=#2,width=0.5cm}\hfill}}
115 }
116
117 \newcommand{\gnusitemx}[1]{\mbox{}\vspace*{-\itemsep}\vspace*{-\parsep}\item#1}
118
119 \newcommand{\gnussection}[1]{
120 \renewcommand{\gnussectionname}{#1}
121 \section{#1}
122 }
123
124 \newenvironment{codelist}%
125 {\begin{list}{}{
126 }
127 }{\end{list}}
128
129 \newenvironment{kbdlist}%
130 {\begin{list}{}{
131 \labelwidth=0cm
132 }
133 }{\end{list}}
134
135 \newenvironment{dfnlist}%
136 {\begin{list}{}{
137 }
138 }{\end{list}}
139
140 \newenvironment{stronglist}%
141 {\begin{list}{}{
142 }
143 }{\end{list}}
144
145 \newenvironment{samplist}%
146 {\begin{list}{}{
147 }
148 }{\end{list}}
149
150 \newenvironment{varlist}%
151 {\begin{list}{}{
152 }
153 }{\end{list}}
154
155 \newenvironment{emphlist}%
156 {\begin{list}{}{
157 }
158 }{\end{list}}
159
160 \newlength\gnusheadtextwidth
161 \setlength{\gnusheadtextwidth}{\headtextwidth}
162 \addtolength{\gnusheadtextwidth}{1cm}
163
164 \newpagestyle{gnuspreamble}%
165 {
166 {
167 \ifodd\count0
168 {
169 \hspace*{-0.23cm}\underline{\makebox[\gnusheadtextwidth]{\mbox{}}\textbf{\hfill\roman{page}}}
170 }
171 \else
172 {
173 \hspace*{-3.25cm}\underline{\makebox[\gnusheadtextwidth]{\textbf{\roman{page}\hfill\mbox{}}}
174 }
175 }
176 \fi
177 }
178 }
179 {
180 \ifodd\count0
181 \mbox{} \hfill 
182 \raisebox{-0.5cm}{\epsfig{figure=ps/gnus-big-logo.eps,height=1cm}}
183 \else
184 \raisebox{-0.5cm}{\epsfig{figure=ps/gnus-big-logo.eps,height=1cm}}
185 \hfill \mbox{}
186 \fi
187 }
188
189 \newpagestyle{gnusindex}%
190 {
191 {
192 \ifodd\count0
193 {
194 \hspace*{-0.23cm}\underline{\makebox[\gnusheadtextwidth]{\textbf{\gnuschaptername\hfill\arabic{page}}}}
195 }
196 \else
197 {
198 \hspace*{-3.25cm}\underline{\makebox[\gnusheadtextwidth]{\textbf{\arabic{page}\hfill\gnuschaptername}}}
199 }
200 \fi
201 }
202 }
203 {
204 \ifodd\count0
205 \mbox{} \hfill 
206 \raisebox{-0.5cm}{\epsfig{figure=ps/gnus-big-logo.eps,height=1cm}}
207 \else
208 \raisebox{-0.5cm}{\epsfig{figure=ps/gnus-big-logo.eps,height=1cm}}
209 \hfill \mbox{}
210 \fi
211 }
212
213 \newpagestyle{gnus}%
214 {
215 {
216 \ifodd\count0
217 {
218 \makebox[12cm]{\hspace*{3.1cm}\underline{\makebox[\gnusheadtextwidth]{\textbf{\arabic{chapter}.\arabic{section}} \textbf{\gnussectionname\hfill\arabic{page}}}}}
219 }
220 \else
221 {
222 \makebox[12cm]{\hspace*{-2.95cm}\underline{\makebox[\gnusheadtextwidth]{\textbf{\arabic{page}\hfill\gnuschaptername}}}}
223 }
224 \fi
225 }
226 }
227 {
228 \ifodd\count0
229 \mbox{} \hfill 
230 \raisebox{-0.5cm}{\epsfig{figure=ps/gnus-big-logo.eps,height=1cm}}
231 \else
232 \raisebox{-0.5cm}{\epsfig{figure=ps/gnus-big-logo.eps,height=1cm}}
233 \hfill \mbox{}
234 \fi
235 }
236
237 \pagenumbering{roman}
238 \pagestyle{gnuspreamble}
239
240 @end iflatex
241 @end iftex
242
243 @iftex
244 @iflatex
245 \begin{titlepage}
246 {
247
248 %\addtolength{\oddsidemargin}{-5cm}
249 %\addtolength{\evensidemargin}{-5cm}
250 \parindent=0cm
251 \addtolength{\textheight}{2cm}
252
253 \gnustitle{\gnustitlename}\\
254 \rule{15cm}{1mm}\\
255 \vfill
256 \hspace*{0cm}\epsfig{figure=ps/gnus-big-logo.eps,height=15cm}
257 \vfill
258 \rule{15cm}{1mm}\\
259 \gnusauthor{by Lars Magne Ingebrigtsen}
260 \newpage
261 }
262
263 \mbox{}
264 \vfill
265
266 \thispagestyle{empty}
267
268 Copyright \copyright{} 1995,96,97 Free Software Foundation, Inc. 
269
270 Permission is granted to make and distribute verbatim copies of
271 this manual provided the copyright notice and this permission notice
272 are preserved on all copies.
273
274 Permission is granted to copy and distribute modified versions of this
275 manual under the conditions for verbatim copying, provided that the
276 entire resulting derived work is distributed under the terms of a
277 permission notice identical to this one.
278
279 Permission is granted to copy and distribute translations of this manual
280 into another language, under the above conditions for modified versions.
281
282 \newpage
283 \end{titlepage}
284 @end iflatex
285 @end iftex
286
287 @ifinfo
288
289 This file documents Gnus, the GNU Emacs newsreader.
290
291 Copyright (C) 1995,96 Free Software Foundation, Inc.
292
293 Permission is granted to make and distribute verbatim copies of
294 this manual provided the copyright notice and this permission notice
295 are preserved on all copies.
296
297 @ignore
298 Permission is granted to process this file through Tex and print the
299 results, provided the printed document carries copying permission
300 notice identical to this one except for the removal of this paragraph
301 (this paragraph not being relevant to the printed manual).
302
303 @end ignore
304 Permission is granted to copy and distribute modified versions of this
305 manual under the conditions for verbatim copying, provided also that the
306 entire resulting derived work is distributed under the terms of a
307 permission notice identical to this one.
308
309 Permission is granted to copy and distribute translations of this manual
310 into another language, under the above conditions for modified versions.
311 @end ifinfo
312
313 @tex
314
315 @titlepage
316 @title Quassia Gnus 0.19 Manual
317
318 @author by Lars Magne Ingebrigtsen
319 @page
320
321 @vskip 0pt plus 1filll
322 Copyright @copyright{} 1995,96,97 Free Software Foundation, Inc. 
323
324 Permission is granted to make and distribute verbatim copies of
325 this manual provided the copyright notice and this permission notice
326 are preserved on all copies.
327
328 Permission is granted to copy and distribute modified versions of this
329 manual under the conditions for verbatim copying, provided that the
330 entire resulting derived work is distributed under the terms of a
331 permission notice identical to this one.
332
333 Permission is granted to copy and distribute translations of this manual
334 into another language, under the above conditions for modified versions.
335
336 @end titlepage
337 @page
338
339 @end tex
340
341
342 @node Top
343 @top The Gnus Newsreader
344
345 @ifinfo
346
347 You can read news (and mail) from within Emacs by using Gnus.  The news
348 can be gotten by any nefarious means you can think of---@sc{nntp}, local
349 spool or your mbox file.  All at the same time, if you want to push your
350 luck.
351
352 This manual corresponds to Quassia Gnus 0.19.
353
354 @end ifinfo
355
356 @iftex
357
358 @iflatex
359 \tableofcontents
360 \gnuscleardoublepage
361 @end iflatex
362
363 Gnus is the advanced, self-documenting, customizable, extensible
364 unreal-time newsreader for GNU Emacs.  
365
366 Oops.  That sounds oddly familiar, so let's start over again to avoid
367 being accused of plagiarism:
368
369 Gnus is a message-reading laboratory.  It will let you look at just
370 about anything as if it were a newsgroup.  You can read mail with it,
371 you can browse directories with it, you can @code{ftp} with it---you can
372 even read news with it!
373
374 Gnus tries to empower people who read news the same way Emacs empowers
375 people who edit text.  Gnus sets no limits to what the user should be
376 allowed to do.  Users are encouraged to extend Gnus to make it behave
377 like they want it to behave.  A program should not control people;
378 people should be empowered to do what they want by using (or abusing)
379 the program.
380
381 @end iftex
382
383
384 @menu
385 * Starting Up::           Finding news can be a pain.
386 * The Group Buffer::      Selecting, subscribing and killing groups.
387 * The Summary Buffer::    Reading, saving and posting articles.
388 * The Article Buffer::    Displaying and handling articles.
389 * Composing Messages::    Information on sending mail and news.
390 * Select Methods::        Gnus reads all messages from various select methods.
391 * Scoring::               Assigning values to articles.
392 * Various::               General purpose settings.
393 * The End::               Farewell and goodbye.
394 * Appendices::            Terminology, Emacs intro, FAQ, History, Internals.
395 * Index::                 Variable, function and concept index.
396 * Key Index::             Key Index.
397 @end menu
398
399 @node Starting Up
400 @chapter Starting Gnus
401 @cindex starting up
402
403 @kindex M-x gnus
404 @findex gnus
405 If your system administrator has set things up properly, starting Gnus
406 and reading news is extremely easy---you just type @kbd{M-x gnus} in
407 your Emacs. 
408
409 @findex gnus-other-frame
410 @kindex M-x gnus-other-frame
411 If you want to start Gnus in a different frame, you can use the command
412 @kbd{M-x gnus-other-frame} instead.
413
414 If things do not go smoothly at startup, you have to twiddle some
415 variables in your @file{~/.gnus} file.  This file is similar to
416 @file{~/.emacs}, but is read when gnus starts.
417
418 If you puzzle at any terms used in this manual, please refer to the
419 terminology section (@pxref{Terminology}).
420
421 @menu
422 * Finding the News::    Choosing a method for getting news.
423 * The First Time::      What does Gnus do the first time you start it?
424 * The Server is Down::  How can I read my mail then?
425 * Slave Gnusae::        You can have more than one Gnus active at a time.
426 * Fetching a Group::    Starting Gnus just to read a group.
427 * New Groups::          What is Gnus supposed to do with new groups?
428 * Startup Files::       Those pesky startup files---@file{.newsrc}.
429 * Auto Save::           Recovering from a crash.
430 * The Active File::     Reading the active file over a slow line Takes Time.
431 * Changing Servers::    You may want to move from one server to another.
432 * Startup Variables::   Other variables you might change.
433 @end menu
434
435
436 @node Finding the News
437 @section Finding the News
438 @cindex finding news
439
440 @vindex gnus-select-method
441 @c @head
442 The @code{gnus-select-method} variable says where Gnus should look for
443 news.  This variable should be a list where the first element says
444 @dfn{how} and the second element says @dfn{where}.  This method is your
445 native method.  All groups not fetched with this method are
446 foreign groups.
447
448 For instance, if the @samp{news.somewhere.edu} @sc{nntp} server is where
449 you want to get your daily dosage of news from, you'd say:
450
451 @lisp
452 (setq gnus-select-method '(nntp "news.somewhere.edu"))
453 @end lisp
454
455 If you want to read directly from the local spool, say:
456
457 @lisp
458 (setq gnus-select-method '(nnspool ""))
459 @end lisp
460
461 If you can use a local spool, you probably should, as it will almost
462 certainly be much faster.
463
464 @vindex gnus-nntpserver-file
465 @cindex NNTPSERVER
466 @cindex @sc{nntp} server
467 If this variable is not set, Gnus will take a look at the
468 @code{NNTPSERVER} environment variable.  If that variable isn't set,
469 Gnus will see whether @code{gnus-nntpserver-file}
470 (@file{/etc/nntpserver} by default) has any opinions on the matter.  If
471 that fails as well, Gnus will try to use the machine running Emacs as an @sc{nntp} server.  That's a long shot, though.
472
473 @vindex gnus-nntp-server
474 If @code{gnus-nntp-server} is set, this variable will override
475 @code{gnus-select-method}.  You should therefore set
476 @code{gnus-nntp-server} to @code{nil}, which is what it is by default.
477
478 @vindex gnus-secondary-servers
479 You can also make Gnus prompt you interactively for the name of an
480 @sc{nntp} server.  If you give a non-numerical prefix to @code{gnus}
481 (i.e., @kbd{C-u M-x gnus}), Gnus will let you choose between the servers
482 in the @code{gnus-secondary-servers} list (if any).  You can also just
483 type in the name of any server you feel like visiting.
484
485 @findex gnus-group-browse-foreign-server
486 @kindex B (Group)
487 However, if you use one @sc{nntp} server regularly and are just
488 interested in a couple of groups from a different server, you would be
489 better served by using the @kbd{B} command in the group buffer.  It will
490 let you have a look at what groups are available, and you can subscribe
491 to any of the groups you want to.  This also makes @file{.newsrc}
492 maintenance much tidier.  @xref{Foreign Groups}.
493
494 @vindex gnus-secondary-select-methods
495 @c @head
496 A slightly different approach to foreign groups is to set the
497 @code{gnus-secondary-select-methods} variable.  The select methods
498 listed in this variable are in many ways just as native as the
499 @code{gnus-select-method} server.  They will also be queried for active
500 files during startup (if that's required), and new newsgroups that
501 appear on these servers will be subscribed (or not) just as native
502 groups are.
503
504 For instance, if you use the @code{nnmbox} backend to read your mail, you
505 would typically set this variable to
506
507 @lisp
508 (setq gnus-secondary-select-methods '((nnmbox "")))
509 @end lisp
510
511
512 @node The First Time
513 @section The First Time
514 @cindex first time usage
515
516 If no startup files exist, Gnus will try to determine what groups should
517 be subscribed by default.
518
519 @vindex gnus-default-subscribed-newsgroups
520 If the variable @code{gnus-default-subscribed-newsgroups} is set, Gnus
521 will subscribe you to just those groups in that list, leaving the rest
522 killed.  Your system administrator should have set this variable to
523 something useful.
524
525 Since she hasn't, Gnus will just subscribe you to a few arbitrarily
526 picked groups (i.e., @samp{*.newusers}).  (@dfn{Arbitrary} is defined
527 here as @dfn{whatever Lars thinks you should read}.)
528
529 You'll also be subscribed to the Gnus documentation group, which should
530 help you with most common problems.  
531
532 If @code{gnus-default-subscribed-newsgroups} is @code{t}, Gnus will just
533 use the normal functions for handling new groups, and not do anything
534 special.
535
536
537 @node The Server is Down
538 @section The Server is Down
539 @cindex server errors
540
541 If the default server is down, Gnus will understandably have some
542 problems starting.  However, if you have some mail groups in addition to
543 the news groups, you may want to start Gnus anyway.
544
545 Gnus, being the trusting sort of program, will ask whether to proceed
546 without a native select method if that server can't be contacted.  This
547 will happen whether the server doesn't actually exist (i.e., you have
548 given the wrong address) or the server has just momentarily taken ill
549 for some reason or other.  If you decide to continue and have no foreign
550 groups, you'll find it difficult to actually do anything in the group
551 buffer.  But, hey, that's your problem.  Blllrph!
552
553 @findex gnus-no-server
554 @kindex M-x gnus-no-server
555 @c @head
556 If you know that the server is definitely down, or you just want to read
557 your mail without bothering with the server at all, you can use the
558 @code{gnus-no-server} command to start Gnus.  That might come in handy
559 if you're in a hurry as well.  This command will not attempt to contact
560 your primary server---instead, it will just activate all groups on level
561 1 and 2.  (You should preferably keep no native groups on those two
562 levels.)
563
564
565 @node Slave Gnusae
566 @section Slave Gnusae
567 @cindex slave
568
569 You might want to run more than one Emacs with more than one Gnus at the
570 same time.  If you are using different @file{.newsrc} files (e.g., if you
571 are using the two different Gnusae to read from two different servers),
572 that is no problem whatsoever.  You just do it.
573
574 The problem appears when you want to run two Gnusae that use the same
575 @code{.newsrc} file.
576
577 To work around that problem some, we here at the Think-Tank at the Gnus
578 Towers have come up with a new concept: @dfn{Masters} and
579 @dfn{slaves}.  (We have applied for a patent on this concept, and have
580 taken out a copyright on those words.  If you wish to use those words in
581 conjunction with each other, you have to send $1 per usage instance to
582 me.  Usage of the patent (@dfn{Master/Slave Relationships In Computer
583 Applications}) will be much more expensive, of course.)
584
585 Anyways, you start one Gnus up the normal way with @kbd{M-x gnus} (or
586 however you do it).  Each subsequent slave Gnusae should be started with
587 @kbd{M-x gnus-slave}.  These slaves won't save normal @file{.newsrc}
588 files, but instead save @dfn{slave files} that contain information only
589 on what groups have been read in the slave session.  When a master Gnus
590 starts, it will read (and delete) these slave files, incorporating all
591 information from them.  (The slave files will be read in the sequence
592 they were created, so the latest changes will have precedence.)
593
594 Information from the slave files has, of course, precedence over the
595 information in the normal (i.e., master) @code{.newsrc} file.
596
597
598 @node Fetching a Group
599 @section Fetching a Group
600 @cindex fetching a group
601
602 @findex gnus-fetch-group
603 It is sometimes convenient to be able to just say ``I want to read this
604 group and I don't care whether Gnus has been started or not''.  This is
605 perhaps more useful for people who write code than for users, but the
606 command @code{gnus-fetch-group} provides this functionality in any case.
607 It takes the group name as a parameter.
608
609
610 @node New Groups
611 @section New Groups
612 @cindex new groups
613 @cindex subscription
614
615 @vindex gnus-check-new-newsgroups
616 If you are satisfied that you really never want to see any new groups,
617 you can set @code{gnus-check-new-newsgroups} to @code{nil}.  This will
618 also save you some time at startup.  Even if this variable is
619 @code{nil}, you can always subscribe to the new groups just by pressing
620 @kbd{U} in the group buffer (@pxref{Group Maintenance}).  This variable
621 is @code{ask-server} by default.  If you set this variable to
622 @code{always}, then Gnus will query the backends for new groups even
623 when you do the @kbd{g} command (@pxref{Scanning New Messages}).
624
625 @menu
626 * Checking New Groups::      Determining what groups are new.
627 * Subscription Methods::     What Gnus should do with new groups.
628 * Filtering New Groups::     Making Gnus ignore certain new groups.
629 @end menu
630
631
632 @node Checking New Groups
633 @subsection Checking New Groups
634
635 Gnus normally determines whether a group is new or not by comparing the
636 list of groups from the active file(s) with the lists of subscribed and
637 dead groups.  This isn't a particularly fast method.  If
638 @code{gnus-check-new-newsgroups} is @code{ask-server}, Gnus will ask the
639 server for new groups since the last time.  This is both faster and
640 cheaper.  This also means that you can get rid of the list of killed
641 groups altogether, so you may set @code{gnus-save-killed-list} to
642 @code{nil}, which will save time both at startup, at exit, and all over.
643 Saves disk space, too.  Why isn't this the default, then?
644 Unfortunately, not all servers support this command. 
645
646 I bet I know what you're thinking now: How do I find out whether my
647 server supports @code{ask-server}?  No?  Good, because I don't have a
648 fail-safe answer.  I would suggest just setting this variable to
649 @code{ask-server} and see whether any new groups appear within the next
650 few days.  If any do, then it works.  If none do, then it doesn't
651 work.  I could write a function to make Gnus guess whether the server
652 supports @code{ask-server}, but it would just be a guess.  So I won't.
653 You could @code{telnet} to the server and say @code{HELP} and see
654 whether it lists @samp{NEWGROUPS} among the commands it understands.  If
655 it does, then it might work.  (But there are servers that lists
656 @samp{NEWGROUPS} without supporting the function properly.)
657
658 This variable can also be a list of select methods.  If so, Gnus will
659 issue an @code{ask-server} command to each of the select methods, and
660 subscribe them (or not) using the normal methods.  This might be handy
661 if you are monitoring a few servers for new groups.  A side effect is
662 that startup will take much longer, so you can meditate while waiting.
663 Use the mantra ``dingnusdingnusdingnus'' to achieve permanent bliss.
664
665
666 @node Subscription Methods
667 @subsection Subscription Methods
668
669 @vindex gnus-subscribe-newsgroup-method
670 What Gnus does when it encounters a new group is determined by the
671 @code{gnus-subscribe-newsgroup-method} variable.
672
673 This variable should contain a function.  This function will be called
674 with the name of the new group as the only parameter.
675
676 Some handy pre-fab functions are:
677
678 @table @code
679
680 @item gnus-subscribe-zombies
681 @vindex gnus-subscribe-zombies
682 Make all new groups zombies.  This is the default.  You can browse the
683 zombies later (with @kbd{A z}) and either kill them all off properly
684 (with @kbd{S z}), or subscribe to them (with @kbd{u}).
685
686 @item gnus-subscribe-randomly
687 @vindex gnus-subscribe-randomly
688 Subscribe all new groups in arbitrary order.  This really means that all
689 new groups will be added at ``the top'' of the grop buffer.
690
691 @item gnus-subscribe-alphabetically
692 @vindex gnus-subscribe-alphabetically
693 Subscribe all new groups in alphabetical order.
694
695 @item gnus-subscribe-hierarchically
696 @vindex gnus-subscribe-hierarchically
697 Subscribe all new groups hierarchically.  The difference between this
698 function and @code{gnus-subscribe-alphabetically} is slight.
699 @code{gnus-subscribe-alphabetically} will subscribe new groups in a strictly
700 alphabetical fashion, while this function will enter groups into it's
701 hierarchy.  So if you want to have the @samp{rec} hierarchy before the
702 @samp{comp} hierarchy, this function will not mess that configuration
703 up.  Or something like that.
704
705 @item gnus-subscribe-interactively
706 @vindex gnus-subscribe-interactively
707 Subscribe new groups interactively.  This means that Gnus will ask
708 you about @strong{all} new groups.  The groups you choose to subscribe
709 to will be subscribed hierarchically.
710
711 @item gnus-subscribe-killed
712 @vindex gnus-subscribe-killed
713 Kill all new groups.
714
715 @end table
716
717 @vindex gnus-subscribe-hierarchical-interactive
718 A closely related variable is
719 @code{gnus-subscribe-hierarchical-interactive}.  (That's quite a
720 mouthful.)  If this variable is non-@code{nil}, Gnus will ask you in a
721 hierarchical fashion whether to subscribe to new groups or not.  Gnus
722 will ask you for each sub-hierarchy whether you want to descend the
723 hierarchy or not.  
724
725 One common mistake is to set the variable a few paragraphs above
726 (@code{gnus-subscribe-newsgroup-method}) to
727 @code{gnus-subscribe-hierarchical-interactive}.  This is an error.  This
728 will not work.  This is ga-ga.  So don't do it.
729
730
731 @node Filtering New Groups
732 @subsection Filtering New Groups
733
734 A nice and portable way to control which new newsgroups should be
735 subscribed (or ignored) is to put an @dfn{options} line at the start of
736 the @file{.newsrc} file.  Here's an example:
737
738 @example
739 options -n !alt.all !rec.all sci.all
740 @end example
741
742 @vindex gnus-subscribe-options-newsgroup-method
743 This line obviously belongs to a serious-minded intellectual scientific
744 person (or she may just be plain old boring), because it says that all
745 groups that have names beginning with @samp{alt} and @samp{rec} should
746 be ignored, and all groups with names beginning with @samp{sci} should
747 be subscribed.  Gnus will not use the normal subscription method for
748 subscribing these groups.
749 @code{gnus-subscribe-options-newsgroup-method} is used instead.  This
750 variable defaults to @code{gnus-subscribe-alphabetically}.
751
752 @vindex gnus-options-not-subscribe
753 @vindex gnus-options-subscribe
754 If you don't want to mess with your @file{.newsrc} file, you can just
755 set the two variables @code{gnus-options-subscribe} and
756 @code{gnus-options-not-subscribe}.  These two variables do exactly the
757 same as the @file{.newsrc} @samp{options -n} trick.  Both are regexps,
758 and if the new group matches the former, it will be unconditionally
759 subscribed, and if it matches the latter, it will be ignored.
760
761 @vindex gnus-auto-subscribed-groups
762 Yet another variable that meddles here is
763 @code{gnus-auto-subscribed-groups}.  It works exactly like
764 @code{gnus-options-subscribe}, and is therefore really superfluous, but I
765 thought it would be nice to have two of these.  This variable is more
766 meant for setting some ground rules, while the other variable is used
767 more for user fiddling.  By default this variable makes all new groups
768 that come from mail backends (@code{nnml}, @code{nnbabyl},
769 @code{nnfolder}, @code{nnmbox}, and @code{nnmh}) subscribed.  If you
770 don't like that, just set this variable to @code{nil}.
771
772 New groups that match this regexp are subscribed using
773 @code{gnus-subscribe-options-newsgroup-method}.
774
775
776 @node Changing Servers
777 @section Changing Servers
778 @cindex changing servers
779
780 Sometimes it is necessary to move from one @sc{nntp} server to another.
781 This happens very rarely, but perhaps you change jobs, or one server is
782 very flaky and you want to use another.  
783
784 Changing the server is pretty easy, right?  You just change
785 @code{gnus-select-method} to point to the new server?  
786
787 @emph{Wrong!}
788
789 Article numbers are not (in any way) kept synchronized between different
790 @sc{nntp} servers, and the only way Gnus keeps track of what articles
791 you have read is by keeping track of article numbers.  So when you
792 change @code{gnus-select-method}, your @file{.newsrc} file becomes
793 worthless.  
794
795 Gnus provides a few functions to attempt to translate a @file{.newsrc}
796 file from one server to another.  They all have one thing in
797 common---they take a looong time to run.  You don't want to use these
798 functions more than absolutely necessary.
799
800 @kindex M-x gnus-change-server
801 @findex gnus-change-server
802 If you have access to both servers, Gnus can request the headers for all
803 the articles you have read and compare @code{Message-ID}s and map the
804 article numbers of the read articles and article marks.  The @kbd{M-x
805 gnus-change-server} command will do this for all your native groups.  It
806 will prompt for the method you want to move to.
807
808 @kindex M-x gnus-group-move-group-to-server
809 @findex gnus-group-move-group-to-server
810 You can also move individual groups with the @kbd{M-x
811 gnus-group-move-group-to-server} command.  This is useful if you want to
812 move a (foreign) group from one server to another.
813
814 @kindex M-x gnus-group-clear-data-on-native-groups
815 @findex gnus-group-clear-data-on-native-groups
816 If you don't have access to both the old and new server, all your marks
817 and read ranges have become worthless.  You can use the @kbd{M-x
818 gnus-group-clear-data-on-native-groups} command to clear out all data
819 that you have on your native groups.  Use with caution.
820
821
822 @node Startup Files
823 @section Startup Files
824 @cindex startup files
825 @cindex .newsrc
826 @cindex .newsrc.el
827 @cindex .newsrc.eld
828
829 Now, you all know about the @file{.newsrc} file.  All subscription
830 information is traditionally stored in this file.
831
832 Things got a bit more complicated with @sc{gnus}.  In addition to
833 keeping the @file{.newsrc} file updated, it also used a file called
834 @file{.newsrc.el} for storing all the information that didn't fit into
835 the @file{.newsrc} file.  (Actually, it also duplicated everything in
836 the @file{.newsrc} file.)  @sc{gnus} would read whichever one of these
837 files was the most recently saved, which enabled people to swap between
838 @sc{gnus} and other newsreaders.
839
840 That was kinda silly, so Gnus went one better: In addition to the
841 @file{.newsrc} and @file{.newsrc.el} files, Gnus also has a file called
842 @file{.newsrc.eld}.  It will read whichever of these files that are most
843 recent, but it will never write a @file{.newsrc.el} file.  You should
844 never delete the @file{.newsrc.eld} file---it contains much information
845 not stored in the @file{.newsrc} file.
846
847 @vindex gnus-save-newsrc-file
848 You can turn off writing the @file{.newsrc} file by setting
849 @code{gnus-save-newsrc-file} to @code{nil}, which means you can delete
850 the file and save some space, as well as making exit from Gnus faster.
851 However, this will make it impossible to use other newsreaders than
852 Gnus.  But hey, who would want to, right?
853
854 @vindex gnus-save-killed-list
855 If @code{gnus-save-killed-list} (default @code{t}) is @code{nil}, Gnus
856 will not save the list of killed groups to the startup file.  This will
857 save both time (when starting and quitting) and space (on disk).  It
858 will also mean that Gnus has no record of what groups are new or old,
859 so the automatic new groups subscription methods become meaningless.
860 You should always set @code{gnus-check-new-newsgroups} to @code{nil} or
861 @code{ask-server} if you set this variable to @code{nil} (@pxref{New
862 Groups}).  This variable can also be a regular expression.  If that's
863 the case, remove all groups that do not match this regexp before
864 saving.  This can be useful in certain obscure situations that involve
865 several servers where not all servers support @code{ask-server}.
866
867 @vindex gnus-startup-file
868 The @code{gnus-startup-file} variable says where the startup files are.
869 The default value is @file{~/.newsrc}, with the Gnus (El Dingo) startup
870 file being whatever that one is, with a @samp{.eld} appended.
871
872 @vindex gnus-save-newsrc-hook
873 @vindex gnus-save-quick-newsrc-hook
874 @vindex gnus-save-standard-newsrc-hook
875 @code{gnus-save-newsrc-hook} is called before saving any of the newsrc
876 files, while @code{gnus-save-quick-newsrc-hook} is called just before
877 saving the @file{.newsrc.eld} file, and
878 @code{gnus-save-standard-newsrc-hook} is called just before saving the
879 @file{.newsrc} file.  The latter two are commonly used to turn version
880 control on or off.  Version control is on by default when saving the
881 startup files.  If you want to turn backup creation off, say something like: 
882
883 @lisp
884 (defun turn-off-backup ()
885   (set (make-local-variable 'backup-inhibited) t))
886
887 (add-hook 'gnus-save-quick-newsrc-hook 'turn-off-backup)
888 (add-hook 'gnus-save-standard-newsrc-hook 'turn-off-backup)
889 @end lisp
890
891 @vindex gnus-init-file
892 When Gnus starts, it will read the @code{gnus-site-init-file}
893 (@file{.../site-lisp/gnus} by default) and @code{gnus-init-file}
894 (@file{~/.gnus} by default) files.  These are normal Emacs Lisp files
895 and can be used to avoid cluttering your @file{~/.emacs} and
896 @file{site-init} files with Gnus stuff.  Gnus will also check for files
897 with the same names as these, but with @file{.elc} and @file{.el}
898 suffixes.  In other words, if you have set @code{gnus-init-file} to
899 @file{~/.gnus}, it will look for @file{~/.gnus.elc}, @file{~/.gnus.el},
900 and finally @file{~/.gnus} (in this order).
901
902
903
904 @node Auto Save
905 @section Auto Save
906 @cindex dribble file
907 @cindex auto-save
908
909 Whenever you do something that changes the Gnus data (reading articles,
910 catching up, killing/subscribing groups), the change is added to a
911 special @dfn{dribble buffer}.  This buffer is auto-saved the normal
912 Emacs way.  If your Emacs should crash before you have saved the
913 @file{.newsrc} files, all changes you have made can be recovered from
914 this file.
915
916 If Gnus detects this file at startup, it will ask the user whether to
917 read it.  The auto save file is deleted whenever the real startup file is
918 saved.
919
920 @vindex gnus-use-dribble-file
921 If @code{gnus-use-dribble-file} is @code{nil}, Gnus won't create and
922 maintain a dribble buffer.  The default is @code{t}.
923
924 @vindex gnus-dribble-directory
925 Gnus will put the dribble file(s) in @code{gnus-dribble-directory}.  If
926 this variable is @code{nil}, which it is by default, Gnus will dribble
927 into the directory where the @file{.newsrc} file is located.  (This is
928 normally the user's home directory.)  The dribble file will get the same
929 file permissions as the @code{.newsrc} file.
930
931
932 @node The Active File
933 @section The Active File
934 @cindex active file
935 @cindex ignored groups
936
937 When Gnus starts, or indeed whenever it tries to determine whether new
938 articles have arrived, it reads the active file.  This is a very large
939 file that lists all the active groups and articles on the server.
940
941 @vindex gnus-ignored-newsgroups
942 Before examining the active file, Gnus deletes all lines that match the
943 regexp @code{gnus-ignored-newsgroups}.  This is done primarily to reject
944 any groups with bogus names, but you can use this variable to make Gnus
945 ignore hierarchies you aren't ever interested in.  However, this is not
946 recommended.  In fact, it's highly discouraged.  Instead, @pxref{New
947 Groups} for an overview of other variables that can be used instead.
948
949 @c This variable is
950 @c @code{nil} by default, and will slow down active file handling somewhat
951 @c if you set it to anything else.
952
953 @vindex gnus-read-active-file
954 @c @head
955 The active file can be rather Huge, so if you have a slow network, you
956 can set @code{gnus-read-active-file} to @code{nil} to prevent Gnus from
957 reading the active file.  This variable is @code{some} by default.
958
959 Gnus will try to make do by getting information just on the groups that
960 you actually subscribe to.
961
962 Note that if you subscribe to lots and lots of groups, setting this
963 variable to @code{nil} will probably make Gnus slower, not faster.  At
964 present, having this variable @code{nil} will slow Gnus down
965 considerably, unless you read news over a 2400 baud modem.  
966
967 This variable can also have the value @code{some}.  Gnus will then
968 attempt to read active info only on the subscribed groups.  On some
969 servers this is quite fast (on sparkling, brand new INN servers that
970 support the @code{LIST ACTIVE group} command), on others this isn't fast
971 at all.  In any case, @code{some} should be faster than @code{nil}, and
972 is certainly faster than @code{t} over slow lines.
973
974 If this variable is @code{nil}, Gnus will ask for group info in total
975 lock-step, which isn't very fast.  If it is @code{some} and you use an
976 @sc{nntp} server, Gnus will pump out commands as fast as it can, and
977 read all the replies in one swoop.  This will normally result in better
978 performance, but if the server does not support the aforementioned
979 @code{LIST ACTIVE group} command, this isn't very nice to the server.
980
981 In any case, if you use @code{some} or @code{nil}, you should definitely
982 kill all groups that you aren't interested in to speed things up.
983
984 Note that this variable also affects active file retrieval from
985 secondary select methods.
986
987
988 @node Startup Variables
989 @section Startup Variables
990
991 @table @code
992
993 @item gnus-load-hook
994 @vindex gnus-load-hook
995 A hook run while Gnus is being loaded.  Note that this hook will
996 normally be run just once in each Emacs session, no matter how many
997 times you start Gnus.
998
999 @item gnus-before-startup-hook
1000 @vindex gnus-before-startup-hook
1001 A hook run after starting up Gnus successfully.
1002
1003 @item gnus-startup-hook
1004 @vindex gnus-startup-hook
1005 A hook run as the very last thing after starting up Gnus
1006
1007 @item gnus-started-hook
1008 @vindex gnus-started-hook
1009 A hook that is run as the very last thing after starting up Gnus
1010 successfully.
1011
1012 @item gnus-started-hook
1013 @vindex gnus-started-hook
1014 A hook that is run after reading the @file{.newsrc} file(s), but before
1015 generating the group buffer.
1016
1017 @item gnus-check-bogus-newsgroups
1018 @vindex gnus-check-bogus-newsgroups
1019 If non-@code{nil}, Gnus will check for and delete all bogus groups at
1020 startup.  A @dfn{bogus group} is a group that you have in your
1021 @file{.newsrc} file, but doesn't exist on the news server.  Checking for
1022 bogus groups can take quite a while, so to save time and resources it's
1023 best to leave this option off, and do the checking for bogus groups once
1024 in a while from the group buffer instead (@pxref{Group Maintenance}).
1025
1026 @item gnus-inhibit-startup-message
1027 @vindex gnus-inhibit-startup-message
1028 If non-@code{nil}, the startup message won't be displayed.  That way,
1029 your boss might not notice as easily that you are reading news instead
1030 of doing your job.  Note that this variable is used before
1031 @file{.gnus.el} is loaded, so it should be set in @code{.emacs} instead.
1032
1033 @item gnus-no-groups-message
1034 @vindex gnus-no-groups-message
1035 Message displayed by Gnus when no groups are available.
1036
1037 @item gnus-play-startup-jingle
1038 @vindex gnus-play-startup-jingle
1039 If non-@code{nil}, play the Gnus jingle at startup.
1040
1041 @item gnus-startup-jingle
1042 @vindex gnus-startup-jingle
1043 Jingle to be played if the above variable is non-@code{nil}.  The
1044 default is @samp{Tuxedomoon.Jingle4.au}.
1045
1046 @end table
1047
1048
1049 @node The Group Buffer
1050 @chapter The Group Buffer
1051 @cindex group buffer
1052
1053 The @dfn{group buffer} lists all (or parts) of the available groups.  It
1054 is the first buffer shown when Gnus starts, and will never be killed as
1055 long as Gnus is active.
1056
1057 @iftex
1058 @iflatex
1059 \gnusfigure{The Group Buffer}{320}{
1060 \put(75,50){\epsfig{figure=tmp/group.ps,height=9cm}}
1061 \put(120,37){\makebox(0,0)[t]{Buffer name}}
1062 \put(120,38){\vector(1,2){10}}
1063 \put(40,60){\makebox(0,0)[r]{Mode line}}
1064 \put(40,58){\vector(1,0){30}}
1065 \put(200,28){\makebox(0,0)[t]{Native select method}}
1066 \put(200,26){\vector(-1,2){15}}
1067 }
1068 @end iflatex
1069 @end iftex
1070
1071 @menu
1072 * Group Buffer Format::    Information listed and how you can change it.
1073 * Group Maneuvering::      Commands for moving in the group buffer.
1074 * Selecting a Group::      Actually reading news.
1075 * Group Data::             Changing the info for a group.
1076 * Subscription Commands::  Unsubscribing, killing, subscribing.
1077 * Group Levels::           Levels? What are those, then?
1078 * Group Score::            A mechanism for finding out what groups you like.
1079 * Marking Groups::         You can mark groups for later processing.
1080 * Foreign Groups::         Creating and editing groups.
1081 * Group Parameters::       Each group may have different parameters set.
1082 * Listing Groups::         Gnus can list various subsets of the groups.
1083 * Sorting Groups::         Re-arrange the group order.
1084 * Group Maintenance::      Maintaining a tidy @file{.newsrc} file.
1085 * Browse Foreign Server::  You can browse a server.  See what it has to offer.
1086 * Exiting Gnus::           Stop reading news and get some work done.
1087 * Group Topics::           A folding group mode divided into topics.
1088 * Misc Group Stuff::       Other stuff that you can to do.
1089 @end menu
1090
1091
1092 @node Group Buffer Format
1093 @section Group Buffer Format
1094
1095 @menu 
1096 * Group Line Specification::       Deciding how the group buffer is to look.
1097 * Group Modeline Specification::   The group buffer modeline.
1098 * Group Highlighting::             Having nice colors in the group buffer.
1099 @end menu
1100
1101
1102 @node Group Line Specification
1103 @subsection Group Line Specification
1104 @cindex group buffer format
1105
1106 The default format of the group buffer is nice and dull, but you can
1107 make it as exciting and ugly as you feel like.
1108
1109 Here's a couple of example group lines:
1110
1111 @example
1112      25: news.announce.newusers
1113  *    0: alt.fan.andrea-dworkin
1114 @end example
1115
1116 Quite simple, huh?
1117
1118 You can see that there are 25 unread articles in
1119 @samp{news.announce.newusers}.  There are no unread articles, but some
1120 ticked articles, in @samp{alt.fan.andrea-dworkin} (see that little
1121 asterisk at the beginning of the line?).
1122
1123 @vindex gnus-group-line-format
1124 You can change that format to whatever you want by fiddling with the
1125 @code{gnus-group-line-format} variable.  This variable works along the
1126 lines of a @code{format} specification, which is pretty much the same as
1127 a @code{printf} specifications, for those of you who use (feh!) C.
1128 @xref{Formatting Variables}. 
1129
1130 @samp{%M%S%5y: %(%g%)\n} is the value that produced those lines above.
1131
1132 There should always be a colon on the line; the cursor always moves to
1133 the colon after performing an operation.  Nothing else is required---not
1134 even the group name.  All displayed text is just window dressing, and is
1135 never examined by Gnus.  Gnus stores all real information it needs using
1136 text properties.
1137
1138 (Note that if you make a really strange, wonderful, spreadsheet-like
1139 layout, everybody will believe you are hard at work with the accounting
1140 instead of wasting time reading news.)
1141
1142 Here's a list of all available format characters:
1143
1144 @table @samp
1145
1146 @item M    
1147 An asterisk if the group only has marked articles.
1148
1149 @item S
1150 Whether the group is subscribed.
1151
1152 @item L    
1153 Level of subscribedness.
1154
1155 @item N
1156 Number of unread articles.
1157
1158 @item I
1159 Number of dormant articles.
1160
1161 @item T
1162 Number of ticked articles.
1163
1164 @item R
1165 Number of read articles.
1166
1167 @item t
1168 Estimated total number of articles.  (This is really @var{max-number}
1169 minus @var{min-number} plus 1.)
1170
1171 @item y
1172 Number of unread, unticked, non-dormant articles.
1173
1174 @item i
1175 Number of ticked and dormant articles.
1176
1177 @item g
1178 Full group name.
1179
1180 @item G
1181 Group name.
1182
1183 @item D
1184 Newsgroup description.
1185
1186 @item o
1187 @samp{m} if moderated.
1188
1189 @item O
1190 @samp{(m)} if moderated.
1191
1192 @item s
1193 Select method.
1194
1195 @item n
1196 Select from where.
1197
1198 @item z
1199 A string that looks like @samp{<%s:%n>} if a foreign select method is
1200 used.
1201
1202 @item P
1203 Indentation based on the level of the topic (@pxref{Group Topics}). 
1204
1205 @item c
1206 @vindex gnus-group-uncollapsed-levels
1207 Short (collapsed) group name.  The @code{gnus-group-uncollapsed-levels}
1208 variable says how many levels to leave at the end of the group name.
1209 The default is 1---this will mean that group names like
1210 @samp{gnu.emacs.gnus} will be shortened to @samp{g.emacs.gnus}.
1211
1212 @item m
1213 @vindex gnus-new-mail-mark
1214 @cindex %
1215 @samp{%} (@code{gnus-new-mail-mark}) if there has arrived new mail to
1216 the group lately.
1217
1218 @item d
1219 A string that says when you last read the group (@pxref{Group
1220 Timestamp}). 
1221
1222 @item u
1223 User defined specifier.  The next character in the format string should
1224 be a letter.  Gnus will call the function
1225 @code{gnus-user-format-function-}@samp{X}, where @samp{X} is the letter
1226 following @samp{%u}.  The function will be passed a single dummy
1227 parameter as argument.  The function should return a string, which will
1228 be inserted into the buffer just like information from any other
1229 specifier.
1230 @end table
1231
1232 @cindex *
1233 All the ``number-of'' specs will be filled with an asterisk (@samp{*})
1234 if no info is available---for instance, if it is a non-activated foreign
1235 group, or a bogus native group.
1236
1237
1238 @node Group Modeline Specification
1239 @subsection Group Modeline Specification
1240 @cindex group modeline
1241
1242 @vindex gnus-group-mode-line-format
1243 The mode line can be changed by setting
1244 @code{gnus-group-mode-line-format} (@pxref{Formatting Variables}).  It
1245 doesn't understand that many format specifiers:
1246
1247 @table @samp
1248 @item S
1249 The native news server.
1250 @item M
1251 The native select method.
1252 @end table
1253
1254
1255 @node Group Highlighting
1256 @subsection Group Highlighting
1257 @cindex highlighting
1258 @cindex group highlighting
1259
1260 @vindex gnus-group-highlight
1261 Highlighting in the group buffer is controlled by the
1262 @code{gnus-group-highlight} variable.  This is an alist with elements
1263 that look like @var{(form . face)}.  If @var{form} evaluates to
1264 something non-@code{nil}, the @var{face} will be used on the line.
1265
1266 Here's an example value for this variable that might look nice if the
1267 background is dark:
1268
1269 @lisp
1270 (face-spec-set 'my-group-face-1 '((t (:foreground "Red" :bold t))))
1271 (face-spec-set 'my-group-face-2 '((t (:foreground "SeaGreen" :bold t))))
1272 (face-spec-set 'my-group-face-3 '((t (:foreground "SpringGreen" :bold t))))
1273 (face-spec-set 'my-group-face-4 '((t (:foreground "SteelBlue" :bold t))))
1274 (face-spec-set 'my-group-face-5 '((t (:foreground "SkyBlue" :bold t))))
1275
1276 (setq gnus-group-highlight
1277       '(((> unread 200) . my-group-face-1)
1278         ((and (< level 3) (zerop unread)) . my-group-face-2)
1279         ((< level 3) . my-group-face-3)
1280         ((zerop unread) . my-group-face-4)
1281 (setq gnus-group-highlight
1282       `(((> unread 200) . 
1283          ,(custom-face-lookup "Red" nil nil t nil nil))
1284         ((and (< level 3) (zerop unread)) . 
1285          ,(custom-face-lookup "SeaGreen" nil nil t nil nil))
1286         ((< level 3) . 
1287          ,(custom-face-lookup "SpringGreen" nil nil t nil nil))
1288         ((zerop unread) . 
1289          ,(custom-face-lookup "SteelBlue" nil nil t nil nil))
1290         (t . 
1291          ,(custom-face-lookup "SkyBlue" nil nil t nil nil))))
1292         (t . my-group-face-5)))
1293 @end lisp
1294
1295 Also @pxref{Faces and Fonts}.
1296
1297 Variables that are dynamically bound when the forms are evaluated
1298 include:
1299
1300 @table @code
1301 @item group
1302 The group name.
1303 @item unread
1304 The number of unread articles in the group.
1305 @item method
1306 The select method.
1307 @item mailp
1308 Whether the group is a mail group.
1309 @item level
1310 The level of the group.
1311 @item score
1312 The score of the group.
1313 @item ticked 
1314 The number of ticked articles in the group.
1315 @item total
1316 The total number of articles in the group.  Or rather, MAX-NUMBER minus
1317 MIN-NUMBER plus one.
1318 @item topic
1319 When using the topic minor mode, this variable is bound to the current
1320 topic being inserted.
1321 @end table
1322
1323 When the forms are @code{eval}ed, point is at the beginning of the line
1324 of the group in question, so you can use many of the normal Gnus
1325 functions for snarfing info on the group.
1326
1327 @vindex gnus-group-update-hook
1328 @findex gnus-group-highlight-line
1329 @code{gnus-group-update-hook} is called when a group line is changed.
1330 It will not be called when @code{gnus-visual} is @code{nil}.  This hook
1331 calls @code{gnus-group-highlight-line} by default.
1332
1333
1334 @node Group Maneuvering
1335 @section Group Maneuvering
1336 @cindex group movement
1337
1338 All movement commands understand the numeric prefix and will behave as
1339 expected, hopefully. 
1340
1341 @table @kbd
1342
1343 @item n
1344 @kindex n (Group)
1345 @findex gnus-group-next-unread-group
1346 Go to the next group that has unread articles
1347 (@code{gnus-group-next-unread-group}).
1348
1349 @item p
1350 @itemx DEL
1351 @kindex DEL (Group)
1352 @kindex p (Group)
1353 @findex gnus-group-prev-unread-group
1354 Go to the previous group that has unread articles
1355 (@code{gnus-group-prev-unread-group}).
1356
1357 @item N
1358 @kindex N (Group)
1359 @findex gnus-group-next-group
1360 Go to the next group (@code{gnus-group-next-group}).
1361
1362 @item P
1363 @kindex P (Group)
1364 @findex gnus-group-prev-group
1365 Go to the previous group (@code{gnus-group-prev-group}).
1366
1367 @item M-p
1368 @kindex M-p (Group)
1369 @findex gnus-group-next-unread-group-same-level
1370 Go to the next unread group on the same (or lower) level
1371 (@code{gnus-group-next-unread-group-same-level}). 
1372
1373 @item M-n
1374 @kindex M-n (Group)
1375 @findex gnus-group-prev-unread-group-same-level
1376 Go to the previous unread group on the same (or lower) level
1377 (@code{gnus-group-prev-unread-group-same-level}). 
1378 @end table
1379
1380 Three commands for jumping to groups:
1381
1382 @table @kbd
1383
1384 @item j
1385 @kindex j (Group)
1386 @findex gnus-group-jump-to-group
1387 Jump to a group (and make it visible if it isn't already)
1388 (@code{gnus-group-jump-to-group}).  Killed groups can be jumped to, just
1389 like living groups.
1390
1391 @item ,
1392 @kindex , (Group)
1393 @findex gnus-group-best-unread-group
1394 Jump to the unread group with the lowest level
1395 (@code{gnus-group-best-unread-group}). 
1396
1397 @item .
1398 @kindex . (Group)
1399 @findex gnus-group-first-unread-group
1400 Jump to the first group with unread articles
1401 (@code{gnus-group-first-unread-group}).  
1402 @end table
1403
1404 @vindex gnus-group-goto-unread
1405 If @code{gnus-group-goto-unread} is @code{nil}, all the movement
1406 commands will move to the next group, not the next unread group.  Even
1407 the commands that say they move to the next unread group.  The default
1408 is @code{t}.
1409
1410
1411 @node Selecting a Group
1412 @section Selecting a Group
1413 @cindex group selection
1414
1415 @table @kbd
1416
1417 @item SPACE
1418 @kindex SPACE (Group)
1419 @findex gnus-group-read-group
1420 Select the current group, switch to the summary buffer and display the
1421 first unread article (@code{gnus-group-read-group}).  If there are no
1422 unread articles in the group, or if you give a non-numerical prefix to
1423 this command, Gnus will offer to fetch all the old articles in this
1424 group from the server.  If you give a numerical prefix @var{N}, @var{N}
1425 determines the number of articles Gnus will fetch.  If @var{N} is
1426 positive, Gnus fetches the @var{N} newest articles, if @var{N} is
1427 negative, Gnus fetches the @var{abs(N)} oldest articles.
1428
1429 @item RET
1430 @kindex RET (Group)
1431 @findex gnus-group-select-group
1432 Select the current group and switch to the summary buffer
1433 (@code{gnus-group-select-group}).  Takes the same arguments as
1434 @code{gnus-group-read-group}---the only difference is that this command
1435 does not display the first unread article automatically upon group
1436 entry. 
1437
1438 @item M-RET
1439 @kindex M-RET (Group)
1440 @findex gnus-group-quick-select-group
1441 This does the same as the command above, but tries to do it with the
1442 minimum amount of fuzz (@code{gnus-group-quick-select-group}).  No
1443 scoring/killing will be performed, there will be no highlights and no
1444 expunging.  This might be useful if you're in a real hurry and have to
1445 enter some humongous group.  If you give a 0 prefix to this command
1446 (i.e., @kbd{0 M-RET}), Gnus won't even generate the summary buffer,
1447 which is useful if you want to toggle threading before generating the
1448 summary buffer (@pxref{Summary Generation Commands}).
1449
1450 @item M-SPACE
1451 @kindex M-SPACE (Group)
1452 @findex gnus-group-visible-select-group
1453 This is yet one more command that does the same as the @kbd{RET}
1454 command, but this one does it without expunging and hiding dormants
1455 (@code{gnus-group-visible-select-group}).
1456
1457 @item M-C-RET
1458 @kindex M-C-RET (Group)
1459 @findex gnus-group-select-group-ephemerally
1460 Finally, this command selects the current group ephemerally without
1461 doing any processing of its contents
1462 (@code{gnus-group-select-group-ephemerally}).  Even threading has been
1463 turned off.  Everything you do in the group after selecting it in this
1464 manner will have no permanent effects.
1465
1466 @end table
1467
1468 @vindex gnus-large-newsgroup
1469 The @code{gnus-large-newsgroup} variable says what Gnus should consider
1470 to be a big group.  This is 200 by default.  If the group has more
1471 (unread and/or ticked) articles than this, Gnus will query the user
1472 before entering the group.  The user can then specify how many articles
1473 should be fetched from the server.  If the user specifies a negative
1474 number (@code{-n}), the @code{n} oldest articles will be fetched.  If it
1475 is positive, the @code{n} articles that have arrived most recently will
1476 be fetched.
1477
1478 @vindex gnus-select-group-hook
1479 @vindex gnus-auto-select-first
1480 @code{gnus-auto-select-first} control whether any articles are selected
1481 automatically when entering a group with the @kbd{SPACE} command.
1482
1483 @table @code
1484
1485 @item nil
1486 Don't select any articles when entering the group.  Just display the
1487 full summary buffer.
1488
1489 @item t
1490 Select the first unread article when entering the group.  
1491
1492 @item best
1493 Select the most high-scored article in the group when entering the
1494 group. 
1495 @end table
1496         
1497 If you want to prevent automatic selection in some group (say, in a
1498 binary group with Huge articles) you can set this variable to @code{nil}
1499 in @code{gnus-select-group-hook}, which is called when a group is
1500 selected.
1501
1502
1503 @node Subscription Commands
1504 @section Subscription Commands
1505 @cindex subscription
1506
1507 @table @kbd
1508
1509 @item S t
1510 @itemx u
1511 @kindex S t (Group)
1512 @kindex u (Group)
1513 @findex gnus-group-unsubscribe-current-group
1514 @c @icon{gnus-group-unsubscribe}
1515 Toggle subscription to the current group
1516 (@code{gnus-group-unsubscribe-current-group}).  
1517
1518 @item S s
1519 @itemx U
1520 @kindex S s (Group)
1521 @kindex U (Group)
1522 @findex gnus-group-unsubscribe-group
1523 Prompt for a group to subscribe, and then subscribe it.  If it was
1524 subscribed already, unsubscribe it instead
1525 (@code{gnus-group-unsubscribe-group}).
1526
1527 @item S k
1528 @itemx C-k
1529 @kindex S k (Group)
1530 @kindex C-k (Group)
1531 @findex gnus-group-kill-group
1532 @c @icon{gnus-group-kill-group}
1533 Kill the current group (@code{gnus-group-kill-group}).
1534
1535 @item S y
1536 @itemx C-y
1537 @kindex S y (Group)
1538 @kindex C-y (Group)
1539 @findex gnus-group-yank-group
1540 Yank the last killed group (@code{gnus-group-yank-group}).
1541
1542 @item C-x C-t
1543 @kindex C-x C-t (Group)
1544 @findex gnus-group-transpose-groups
1545 Transpose two groups (@code{gnus-group-transpose-groups}).  This isn't
1546 really a subscription command, but you can use it instead of a
1547 kill-and-yank sequence sometimes.
1548
1549 @item S w
1550 @itemx C-w
1551 @kindex S w (Group)
1552 @kindex C-w (Group)
1553 @findex gnus-group-kill-region
1554 Kill all groups in the region (@code{gnus-group-kill-region}). 
1555
1556 @item S z
1557 @kindex S z (Group)
1558 @findex gnus-group-kill-all-zombies
1559 Kill all zombie groups (@code{gnus-group-kill-all-zombies}).
1560
1561 @item S C-k
1562 @kindex S C-k (Group)
1563 @findex gnus-group-kill-level
1564 Kill all groups on a certain level (@code{gnus-group-kill-level}).
1565 These groups can't be yanked back after killing, so this command should
1566 be used with some caution.  The only time where this command comes in
1567 really handy is when you have a @file{.newsrc} with lots of unsubscribed
1568 groups that you want to get rid off.  @kbd{S C-k} on level 7 will
1569 kill off all unsubscribed groups that do not have message numbers in the
1570 @file{.newsrc} file.  
1571
1572 @end table
1573
1574 Also @pxref{Group Levels}.
1575
1576
1577 @node Group Data
1578 @section Group Data
1579
1580 @table @kbd
1581
1582 @item c
1583 @kindex c (Group)
1584 @findex gnus-group-catchup-current
1585 @vindex gnus-group-catchup-group-hook
1586 @c @icon{gnus-group-catchup-current}
1587 Mark all unticked articles in this group as read
1588 (@code{gnus-group-catchup-current}).
1589 @code{gnus-group-catchup-group-hook} is called when catching up a group from
1590 the group buffer.
1591
1592 @item C
1593 @kindex C (Group)
1594 @findex gnus-group-catchup-current-all
1595 Mark all articles in this group, even the ticked ones, as read
1596 (@code{gnus-group-catchup-current-all}).   
1597
1598 @item M-c
1599 @kindex M-c (Group)
1600 @findex gnus-group-clear-data
1601 Clear the data from the current group---nix out marks and the list of
1602 read articles (@code{gnus-group-clear-data}).
1603
1604 @item M-x gnus-group-clear-data-on-native-groups
1605 @kindex M-x gnus-group-clear-data-on-native-groups
1606 @findex gnus-group-clear-data-on-native-groups
1607 If you have switched from one @sc{nntp} server to another, all your marks
1608 and read ranges have become worthless.  You can use this command to
1609 clear out all data that you have on your native groups.  Use with
1610 caution. 
1611
1612 @end table
1613
1614
1615 @node Group Levels
1616 @section Group Levels
1617 @cindex group level
1618 @cindex level
1619
1620 All groups have a level of @dfn{subscribedness}.  For instance, if a
1621 group is on level 2, it is more subscribed than a group on level 5.  You
1622 can ask Gnus to just list groups on a given level or lower
1623 (@pxref{Listing Groups}), or to just check for new articles in groups on
1624 a given level or lower (@pxref{Scanning New Messages}).
1625
1626 Remember:  The higher the level of the group, the less important it is. 
1627
1628 @table @kbd
1629
1630 @item S l
1631 @kindex S l (Group)
1632 @findex gnus-group-set-current-level
1633 Set the level of the current group.  If a numeric prefix is given, the
1634 next @var{n} groups will have their levels set.  The user will be
1635 prompted for a level.
1636 @end table
1637
1638 @vindex gnus-level-killed
1639 @vindex gnus-level-zombie
1640 @vindex gnus-level-unsubscribed
1641 @vindex gnus-level-subscribed
1642 Gnus considers groups from levels 1 to
1643 @code{gnus-level-subscribed} (inclusive) (default 5) to be subscribed,
1644 @code{gnus-level-subscribed} (exclusive) and
1645 @code{gnus-level-unsubscribed} (inclusive) (default 7) to be
1646 unsubscribed, @code{gnus-level-zombie} to be zombies (walking dead)
1647 (default 8) and @code{gnus-level-killed} to be killed (completely dead)
1648 (default 9).  Gnus treats subscribed and unsubscribed groups exactly the
1649 same, but zombie and killed groups have no information on what articles
1650 you have read, etc, stored.  This distinction between dead and living
1651 groups isn't done because it is nice or clever, it is done purely for
1652 reasons of efficiency.
1653
1654 It is recommended that you keep all your mail groups (if any) on quite
1655 low levels (e.g. 1 or 2).
1656
1657 If you want to play with the level variables, you should show some care.
1658 Set them once, and don't touch them ever again.  Better yet, don't touch
1659 them at all unless you know exactly what you're doing.
1660
1661 @vindex gnus-level-default-unsubscribed
1662 @vindex gnus-level-default-subscribed
1663 Two closely related variables are @code{gnus-level-default-subscribed}
1664 (default 3) and @code{gnus-level-default-unsubscribed} (default 6),
1665 which are the levels that new groups will be put on if they are
1666 (un)subscribed.  These two variables should, of course, be inside the
1667 relevant valid ranges.
1668
1669 @vindex gnus-keep-same-level
1670 If @code{gnus-keep-same-level} is non-@code{nil}, some movement commands
1671 will only move to groups of the same level (or lower).  In
1672 particular, going from the last article in one group to the next group
1673 will go to the next group of the same level (or lower).  This might be
1674 handy if you want to read the most important groups before you read the
1675 rest.
1676
1677 @vindex gnus-group-default-list-level
1678 All groups with a level less than or equal to
1679 @code{gnus-group-default-list-level} will be listed in the group buffer
1680 by default.
1681
1682 @vindex gnus-group-list-inactive-groups
1683 If @code{gnus-group-list-inactive-groups} is non-@code{nil}, non-active
1684 groups will be listed along with the unread groups.  This variable is
1685 @code{t} by default.  If it is @code{nil}, inactive groups won't be
1686 listed. 
1687
1688 @vindex gnus-group-use-permanent-levels
1689 If @code{gnus-group-use-permanent-levels} is non-@code{nil}, once you
1690 give a level prefix to @kbd{g} or @kbd{l}, all subsequent commands will
1691 use this level as the ``work'' level.
1692
1693 @vindex gnus-activate-level
1694 Gnus will normally just activate (i. e., query the server about) groups
1695 on level @code{gnus-activate-level} or less.  If you don't want to
1696 activate unsubscribed groups, for instance, you might set this variable
1697 to 5.  The default is 6.
1698
1699
1700 @node Group Score
1701 @section Group Score
1702 @cindex group score
1703 @cindex group rank
1704 @cindex rank
1705
1706 You would normally keep important groups on high levels, but that scheme
1707 is somewhat restrictive.  Don't you wish you could have Gnus sort the
1708 group buffer according to how often you read groups, perhaps?  Within
1709 reason?  
1710
1711 This is what @dfn{group score} is for.  You can assign a score to each
1712 group.  You can then sort the group buffer based on this score.
1713 Alternatively, you can sort on score and then level.  (Taken together,
1714 the level and the score is called the @dfn{rank} of the group.  A group
1715 that is on level 4 and has a score of 1 has a higher rank than a group
1716 on level 5 that has a score of 300.  (The level is the most significant
1717 part and the score is the least significant part.))
1718
1719 @findex gnus-summary-bubble-group
1720 If you want groups you read often to get higher scores than groups you
1721 read seldom you can add the @code{gnus-summary-bubble-group} function to
1722 the @code{gnus-summary-exit-hook} hook.  This will result (after
1723 sorting) in a bubbling sort of action.  If you want to see that in
1724 action after each summary exit, you can add
1725 @code{gnus-group-sort-groups-by-rank} or
1726 @code{gnus-group-sort-groups-by-score} to the same hook, but that will
1727 slow things down somewhat.
1728
1729
1730 @node Marking Groups
1731 @section Marking Groups
1732 @cindex marking groups
1733
1734 If you want to perform some command on several groups, and they appear
1735 subsequently in the group buffer, you would normally just give a
1736 numerical prefix to the command.  Most group commands will then do your
1737 bidding on those groups.
1738
1739 However, if the groups are not in sequential order, you can still
1740 perform a command on several groups.  You simply mark the groups first
1741 with the process mark and then execute the command.
1742
1743 @table @kbd
1744
1745 @item #
1746 @kindex # (Group)
1747 @itemx M m
1748 @kindex M m (Group)
1749 @findex gnus-group-mark-group
1750 Set the mark on the current group (@code{gnus-group-mark-group}). 
1751
1752 @item M-#
1753 @kindex M-# (Group)
1754 @itemx M u
1755 @kindex M u (Group)
1756 @findex gnus-group-unmark-group
1757 Remove the mark from the current group
1758 (@code{gnus-group-unmark-group}). 
1759
1760 @item M U
1761 @kindex M U (Group)
1762 @findex gnus-group-unmark-all-groups
1763 Remove the mark from all groups (@code{gnus-group-unmark-all-groups}). 
1764
1765 @item M w
1766 @kindex M w (Group)
1767 @findex gnus-group-mark-region
1768 Mark all groups between point and mark (@code{gnus-group-mark-region}). 
1769
1770 @item M b
1771 @kindex M b (Group)
1772 @findex gnus-group-mark-buffer
1773 Mark all groups in the buffer (@code{gnus-group-mark-buffer}). 
1774
1775 @item M r
1776 @kindex M r (Group)
1777 @findex gnus-group-mark-regexp
1778 Mark all groups that match some regular expression
1779 (@code{gnus-group-mark-regexp}).  
1780 @end table
1781
1782 Also @pxref{Process/Prefix}.
1783
1784 @findex gnus-group-universal-argument
1785 If you want to execute some command on all groups that have been marked
1786 with the process mark, you can use the @kbd{M-&}
1787 (@code{gnus-group-universal-argument}) command.  It will prompt you for
1788 the command to be executed.
1789
1790
1791 @node Foreign Groups
1792 @section Foreign Groups
1793 @cindex foreign groups
1794
1795 Below are some group mode commands for making and editing general foreign
1796 groups, as well as commands to ease the creation of a few
1797 special-purpose groups.  All these commands insert the newly created
1798 groups under point---@code{gnus-subscribe-newsgroup-method} is not
1799 consulted.
1800
1801 @table @kbd
1802
1803 @item G m
1804 @kindex G m (Group)
1805 @findex gnus-group-make-group
1806 @cindex making groups
1807 Make a new group (@code{gnus-group-make-group}).  Gnus will prompt you
1808 for a name, a method and possibly an @dfn{address}.  For an easier way
1809 to subscribe to @sc{nntp} groups, @pxref{Browse Foreign Server}.
1810
1811 @item G r
1812 @kindex G r (Group)
1813 @findex gnus-group-rename-group
1814 @cindex renaming groups
1815 Rename the current group to something else
1816 (@code{gnus-group-rename-group}).  This is valid only on some
1817 groups---mail groups mostly.  This command might very well be quite slow
1818 on some backends.
1819
1820 @item G c
1821 @kindex G c (Group)
1822 @cindex customizing
1823 @findex gnus-group-customize
1824 Customize the group parameters (@code{gnus-group-customize}).
1825
1826 @item G e
1827 @kindex G e (Group)
1828 @findex gnus-group-edit-group-method
1829 @cindex renaming groups
1830 Enter a buffer where you can edit the select method of the current
1831 group (@code{gnus-group-edit-group-method}).
1832
1833 @item G p
1834 @kindex G p (Group)
1835 @findex gnus-group-edit-group-parameters
1836 Enter a buffer where you can edit the group parameters
1837 (@code{gnus-group-edit-group-parameters}). 
1838
1839 @item G E
1840 @kindex G E (Group)
1841 @findex gnus-group-edit-group
1842 Enter a buffer where you can edit the group info
1843 (@code{gnus-group-edit-group}).
1844
1845 @item G d
1846 @kindex G d (Group)
1847 @findex gnus-group-make-directory-group
1848 @cindex nndir
1849 Make a directory group (@pxref{Directory Groups}).  You will be prompted
1850 for a directory name (@code{gnus-group-make-directory-group}).
1851
1852 @item G h 
1853 @kindex G h (Group)
1854 @cindex help group
1855 @findex gnus-group-make-help-group
1856 Make the Gnus help group (@code{gnus-group-make-help-group}).
1857
1858 @item G a
1859 @kindex G a (Group)
1860 @cindex (ding) archive
1861 @cindex archive group
1862 @findex gnus-group-make-archive-group
1863 @vindex gnus-group-archive-directory
1864 @vindex gnus-group-recent-archive-directory
1865 Make a Gnus archive group (@code{gnus-group-make-archive-group}).  By
1866 default a group pointing to the most recent articles will be created
1867 (@code{gnus-group-recent-archive-directory}), but given a prefix, a full
1868 group will be created from @code{gnus-group-archive-directory}.
1869
1870 @item G k
1871 @kindex G k (Group)
1872 @findex gnus-group-make-kiboze-group
1873 @cindex nnkiboze
1874 Make a kiboze group.  You will be prompted for a name, for a regexp to
1875 match groups to be ``included'' in the kiboze group, and a series of
1876 strings to match on headers (@code{gnus-group-make-kiboze-group}).
1877 @xref{Kibozed Groups}.
1878
1879 @item G D
1880 @kindex G D (Group)
1881 @findex gnus-group-enter-directory
1882 @cindex nneething
1883 Read an arbitrary directory as if it were a newsgroup with the
1884 @code{nneething} backend (@code{gnus-group-enter-directory}).
1885 @xref{Anything Groups}. 
1886
1887 @item G f
1888 @kindex G f (Group)
1889 @findex gnus-group-make-doc-group
1890 @cindex ClariNet Briefs
1891 @cindex nndoc
1892 Make a group based on some file or other
1893 (@code{gnus-group-make-doc-group}).  If you give a prefix to this
1894 command, you will be prompted for a file name and a file type.
1895 Currently supported types are @code{babyl}, @code{mbox}, @code{digest},
1896 @code{mmdf}, @code{news}, @code{rnews}, @code{clari-briefs},
1897 @code{rfc934}, @code{rfc822-forward}, and @code{forward}.  If you run
1898 this command without a prefix, Gnus will guess at the file type.
1899 @xref{Document Groups}.
1900
1901 @item G w
1902 @kindex G w (Group)
1903 @findex gnus-group-make-web-group
1904 @cindex DejaNews
1905 @cindex Alta Vista
1906 @cindex InReference
1907 @cindex nnweb
1908 Make an ephemeral group based on a web search
1909 (@code{gnus-group-make-web-group}).  If you give a prefix to this
1910 command, make a solid group instead.  You will be prompted for the
1911 search engine type and the search string.  Valid search engine types
1912 include @code{dejanews}, @code{altavista} and @code{reference}.
1913 @xref{Web Searches}.
1914
1915 @item G DEL
1916 @kindex G DEL (Group)
1917 @findex gnus-group-delete-group
1918 This function will delete the current group
1919 (@code{gnus-group-delete-group}).  If given a prefix, this function will
1920 actually delete all the articles in the group, and forcibly remove the
1921 group itself from the face of the Earth.  Use a prefix only if you are
1922 absolutely sure of what you are doing.  This command can't be used on
1923 read-only groups (like @code{nntp} group), though.
1924
1925 @item G V
1926 @kindex G V (Group)
1927 @findex gnus-group-make-empty-virtual
1928 Make a new, fresh, empty @code{nnvirtual} group
1929 (@code{gnus-group-make-empty-virtual}).  @xref{Virtual Groups}.
1930
1931 @item G v
1932 @kindex G v (Group)
1933 @findex gnus-group-add-to-virtual
1934 Add the current group to an @code{nnvirtual} group
1935 (@code{gnus-group-add-to-virtual}).  Uses the process/prefix convention.
1936 @end table
1937
1938 @xref{Select Methods} for more information on the various select
1939 methods. 
1940
1941 @vindex gnus-activate-foreign-newsgroups
1942 If @code{gnus-activate-foreign-newsgroups} is a positive number,
1943 Gnus will check all foreign groups with this level or lower at startup.
1944 This might take quite a while, especially if you subscribe to lots of
1945 groups from different @sc{nntp} servers.
1946
1947
1948 @node Group Parameters
1949 @section Group Parameters
1950 @cindex group parameters
1951
1952 The group parameters store information local to a particular group:
1953
1954 @table @code
1955 @item to-address
1956 @cindex to-address
1957 If the group parameter list contains an element that looks like
1958 @code{(to-address .  "some@@where.com")}, that address will be used by
1959 the backend when doing followups and posts.  This is primarily useful in
1960 mail groups that represent closed mailing lists---mailing lists where
1961 it's expected that everybody that writes to the mailing list is
1962 subscribed to it.  Since using this parameter ensures that the mail only
1963 goes to the mailing list itself, it means that members won't receive two
1964 copies of your followups.
1965
1966 Using @code{to-address} will actually work whether the group is foreign
1967 or not.  Let's say there's a group on the server that is called
1968 @samp{fa.4ad-l}.  This is a real newsgroup, but the server has gotten
1969 the articles from a mail-to-news gateway.  Posting directly to this
1970 group is therefore impossible---you have to send mail to the mailing
1971 list address instead. 
1972
1973 @item to-list
1974 @cindex to-list
1975 If the group parameter list has an element that looks like
1976 @code{(to-list . "some@@where.com")}, that address will be used when
1977 doing a @kbd{a} in that group.  It is totally ignored when doing a
1978 followup---except that if it is present in a news group, you'll get mail
1979 group semantics when doing @kbd{f}.
1980
1981 If you do an @kbd{a} command in a mail group and you don't have a
1982 @code{to-list} group parameter, one will be added automatically upon
1983 sending the message.
1984
1985 @item visible
1986 @cindex visible
1987 If the group parameter list has the element @code{(visible . t)},
1988 that group will always be visible in the Group buffer, regardless
1989 of whether it has any unread articles.
1990
1991 @item broken-reply-to
1992 @cindex broken-reply-to
1993 Elements like @code{(broken-reply-to . t)} signals that @code{Reply-To}
1994 headers in this group are to be ignored.  This can be useful if you're
1995 reading a mailing list group where the listserv has inserted
1996 @code{Reply-To} headers that point back to the listserv itself.  This is
1997 broken behavior.  So there!
1998
1999 @item to-group
2000 @cindex to-group
2001 Elements like @code{(to-group . "some.group.name")} means that all
2002 posts in that group will be sent to @code{some.group.name}.  
2003
2004 @item newsgroup
2005 @cindex newsgroup
2006 If this symbol is present in the group parameter list, Gnus will treat
2007 all responses as if they were responses to news articles.  This can be
2008 useful if you have a mail group that's really a mirror of a news group. 
2009
2010 @item gcc-self
2011 @cindex gcc-self
2012 If this symbol is present in the group parameter list and set to
2013 @code{t}, newly composed messages will be @code{Gcc}'d to the current
2014 group. If it is present and set to @code{none}, no @code{Gcc:} header
2015 will be generated, if it is present and a string, this string will be
2016 inserted literally as a @code{gcc} header (this symbol takes precedence
2017 over any default @code{Gcc} rules as described later).  @xref{Archived
2018 Messages}
2019
2020 @item auto-expire
2021 @cindex auto-expire
2022 If the group parameter has an element that looks like @code{(auto-expire
2023 . t)}, all articles read will be marked as expirable.  For an
2024 alternative approach, @pxref{Expiring Mail}.
2025
2026 @item total-expire
2027 @cindex total-expire
2028 If the group parameter has an element that looks like
2029 @code{(total-expire . t)}, all read articles will be put through the
2030 expiry process, even if they are not marked as expirable.  Use with
2031 caution.  Unread, ticked and dormant articles are not eligible for
2032 expiry.
2033
2034 @item expiry-wait
2035 @cindex expiry-wait
2036 @vindex nnmail-expiry-wait-function
2037 If the group parameter has an element that looks like @code{(expiry-wait
2038 . 10)}, this value will override any @code{nnmail-expiry-wait} and
2039 @code{nnmail-expiry-wait-function} when expiring expirable messages.
2040 The value can either be a number of days (not necessarily an integer) or
2041 the symbols @code{never} or @code{immediate}.
2042
2043 @item score-file
2044 @cindex score file group parameter
2045 Elements that look like @code{(score-file . "file")} will make
2046 @file{file} into the current adaptive score file for the group in
2047 question.  All adaptive score entries will be put into this file.
2048
2049 @item adapt-file
2050 @cindex adapt file group parameter
2051 Elements that look like @code{(adapt-file . "file")} will make
2052 @file{file} into the current adaptive file for the group in question.
2053 All adaptive score entries will be put into this file.
2054
2055 @item admin-address
2056 When unsubscribing from a mailing list you should never send the
2057 unsubscription notice to the mailing list itself.  Instead, you'd send
2058 messages to the administrative address.  This parameter allows you to
2059 put the admin address somewhere convenient.
2060
2061 @item display
2062 Elements that look like @code{(display . MODE)} say which articles to
2063 display on entering the group.  Valid values are:
2064
2065 @table @code
2066 @item all
2067 Display all articles, both read and unread.
2068
2069 @item default
2070 Display the default visible articles, which normally includes unread and
2071 ticked articles.
2072 @end table
2073
2074 @item comment
2075 Elements that look like @code{(comment . "This is a comment")}
2076 are arbitrary comments on the group.  They are currently ignored by
2077 Gnus, but provide a place for you to store information on particular
2078 groups. 
2079
2080 @item @var{(variable form)}
2081 You can use the group parameters to set variables local to the group you
2082 are entering.  If you want to turn threading off in @samp{news.answers},
2083 you could put @code{(gnus-show-threads nil)} in the group parameters of
2084 that group.  @code{gnus-show-threads} will be made into a local variable
2085 in the summary buffer you enter, and the form @code{nil} will be
2086 @code{eval}ed there.
2087
2088 This can also be used as a group-specific hook function, if you'd like.
2089 If you want to hear a beep when you enter a group, you could put
2090 something like @code{(dummy-variable (ding))} in the parameters of that
2091 group.  @code{dummy-variable} will be set to the result of the
2092 @code{(ding)} form, but who cares?
2093
2094 @end table
2095
2096 Use the @kbd{G p} command to edit group parameters of a group.
2097
2098 @pxref{Topic Parameters}.
2099
2100 Here's an example group parameter list:
2101
2102 @example
2103 ((to-address . "ding@@gnus.org")
2104  (auto-expiry . t))
2105 @end example
2106
2107
2108 @node Listing Groups
2109 @section Listing Groups
2110 @cindex group listing
2111
2112 These commands all list various slices of the groups available.
2113
2114 @table @kbd
2115
2116 @item l
2117 @itemx A s
2118 @kindex A s (Group)
2119 @kindex l (Group)
2120 @findex gnus-group-list-groups
2121 List all groups that have unread articles
2122 (@code{gnus-group-list-groups}).  If the numeric prefix is used, this
2123 command will list only groups of level ARG and lower.  By default, it
2124 only lists groups of level five (i. e.,
2125 @code{gnus-group-default-list-level}) or lower (i.e., just subscribed
2126 groups).
2127
2128 @item L
2129 @itemx A u
2130 @kindex A u (Group)
2131 @kindex L (Group)
2132 @findex gnus-group-list-all-groups
2133 List all groups, whether they have unread articles or not
2134 (@code{gnus-group-list-all-groups}).  If the numeric prefix is used,
2135 this command will list only groups of level ARG and lower.  By default,
2136 it lists groups of level seven or lower (i.e., just subscribed and
2137 unsubscribed groups).
2138
2139 @item A l
2140 @kindex A l (Group)
2141 @findex gnus-group-list-level
2142 List all unread groups on a specific level
2143 (@code{gnus-group-list-level}).  If given a prefix, also list the groups
2144 with no unread articles.
2145
2146 @item A k
2147 @kindex A k (Group)
2148 @findex gnus-group-list-killed
2149 List all killed groups (@code{gnus-group-list-killed}).  If given a
2150 prefix argument, really list all groups that are available, but aren't
2151 currently (un)subscribed.  This could entail reading the active file
2152 from the server.
2153
2154 @item A z
2155 @kindex A z (Group)
2156 @findex gnus-group-list-zombies
2157 List all zombie groups (@code{gnus-group-list-zombies}).
2158
2159 @item A m
2160 @kindex A m (Group)
2161 @findex gnus-group-list-matching
2162 List all unread, subscribed groups with names that match a regexp
2163 (@code{gnus-group-list-matching}). 
2164
2165 @item A M
2166 @kindex A M (Group)
2167 @findex gnus-group-list-all-matching
2168 List groups that match a regexp (@code{gnus-group-list-all-matching}).
2169
2170 @item A A
2171 @kindex A A (Group)
2172 @findex gnus-group-list-active
2173 List absolutely all groups in the active file(s) of the
2174 server(s) you are connected to (@code{gnus-group-list-active}).  This
2175 might very well take quite a while.  It might actually be a better idea
2176 to do a @kbd{A M} to list all matching, and just give @samp{.} as the
2177 thing to match on.  Also note that this command may list groups that
2178 don't exist (yet)---these will be listed as if they were killed groups.
2179 Take the output with some grains of salt.
2180
2181 @item A a
2182 @kindex A a (Group)
2183 @findex gnus-group-apropos
2184 List all groups that have names that match a regexp
2185 (@code{gnus-group-apropos}).
2186
2187 @item A d
2188 @kindex A d (Group)
2189 @findex gnus-group-description-apropos
2190 List all groups that have names or descriptions that match a regexp
2191 (@code{gnus-group-description-apropos}).
2192
2193 @end table
2194
2195 @vindex gnus-permanently-visible-groups
2196 @cindex visible group parameter
2197 Groups that match the @code{gnus-permanently-visible-groups} regexp will
2198 always be shown, whether they have unread articles or not.  You can also
2199 add the @code{visible} element to the group parameters in question to
2200 get the same effect.
2201
2202 @vindex gnus-list-groups-with-ticked-articles
2203 Groups that have just ticked articles in it are normally listed in the
2204 group buffer.  If @code{gnus-list-groups-with-ticked-articles} is
2205 @code{nil}, these groups will be treated just like totally empty
2206 groups.  It is @code{t} by default.
2207
2208
2209 @node Sorting Groups
2210 @section Sorting Groups
2211 @cindex sorting groups
2212
2213 @kindex C-c C-s (Group)
2214 @findex gnus-group-sort-groups
2215 @vindex gnus-group-sort-function
2216 The @kbd{C-c C-s} (@code{gnus-group-sort-groups}) command sorts the
2217 group buffer according to the function(s) given by the
2218 @code{gnus-group-sort-function} variable.  Available sorting functions
2219 include: 
2220
2221 @table @code
2222
2223 @item gnus-group-sort-by-alphabet
2224 @findex gnus-group-sort-by-alphabet
2225 Sort the group names alphabetically.  This is the default.
2226
2227 @item gnus-group-sort-by-real-name
2228 @findex gnus-group-sort-by-real-name
2229 Sort the group alphabetically on the real (unprefixed) group names.
2230
2231 @item gnus-group-sort-by-level
2232 @findex gnus-group-sort-by-level
2233 Sort by group level.
2234
2235 @item gnus-group-sort-by-score
2236 @findex gnus-group-sort-by-score
2237 Sort by group score.  @xref{Group Score}.
2238
2239 @item gnus-group-sort-by-rank
2240 @findex gnus-group-sort-by-rank
2241 Sort by group score and then the group level.  The level and the score
2242 are, when taken together, the group's @dfn{rank}.  @xref{Group Score}.
2243
2244 @item gnus-group-sort-by-unread
2245 @findex gnus-group-sort-by-unread
2246 Sort by number of unread articles.
2247
2248 @item gnus-group-sort-by-method
2249 @findex gnus-group-sort-by-method
2250 Sort alphabetically on the select method.
2251
2252
2253 @end table
2254
2255 @code{gnus-group-sort-function} can also be a list of sorting
2256 functions.  In that case, the most significant sort key function must be
2257 the last one.
2258
2259
2260 There are also a number of commands for sorting directly according to
2261 some sorting criteria:
2262
2263 @table @kbd
2264 @item G S a
2265 @kindex G S a (Group)
2266 @findex gnus-group-sort-groups-by-alphabet
2267 Sort the group buffer alphabetically by group name
2268 (@code{gnus-group-sort-groups-by-alphabet}). 
2269
2270 @item G S u
2271 @kindex G S u (Group)
2272 @findex gnus-group-sort-groups-by-unread
2273 Sort the group buffer by the number of unread articles
2274 (@code{gnus-group-sort-groups-by-unread}).
2275
2276 @item G S l
2277 @kindex G S l (Group)
2278 @findex gnus-group-sort-groups-by-level
2279 Sort the group buffer by group level
2280 (@code{gnus-group-sort-groups-by-level}). 
2281
2282 @item G S v
2283 @kindex G S v (Group)
2284 @findex gnus-group-sort-groups-by-score
2285 Sort the group buffer by group score
2286 (@code{gnus-group-sort-groups-by-score}).  @xref{Group Score}.
2287
2288 @item G S r
2289 @kindex G S r (Group)
2290 @findex gnus-group-sort-groups-by-rank
2291 Sort the group buffer by group rank
2292 (@code{gnus-group-sort-groups-by-rank}).  @xref{Group Score}.
2293
2294 @item G S m
2295 @kindex G S m (Group)
2296 @findex gnus-group-sort-groups-by-method
2297 Sort the group buffer alphabetically by backend name
2298 (@code{gnus-group-sort-groups-by-method}). 
2299
2300 @end table
2301
2302 When given a prefix, all these commands will sort in reverse order. 
2303
2304 You can also sort a subset of the groups:
2305
2306 @table @kbd
2307 @item G P a
2308 @kindex G P a (Group)
2309 @findex gnus-group-sort-selected-groups-by-alphabet
2310 Sort the process/prefixed groups in the group buffer alphabetically by
2311 group name (@code{gnus-group-sort-selected-groups-by-alphabet}).
2312
2313 @item G P u
2314 @kindex G P u (Group)
2315 @findex gnus-group-sort-selected-groups-by-unread
2316 Sort the process/prefixed groups in the group buffer by the number of
2317 unread articles (@code{gnus-group-sort-selected-groups-by-unread}).
2318
2319 @item G P l
2320 @kindex G P l (Group)
2321 @findex gnus-group-sort-selected-groups-by-level
2322 Sort the process/prefixed groups in the group buffer by group level
2323 (@code{gnus-group-sort-selected-groups-by-level}).
2324
2325 @item G P v
2326 @kindex G P v (Group)
2327 @findex gnus-group-sort-selected-groups-by-score
2328 Sort the process/prefixed groups in the group buffer by group score
2329 (@code{gnus-group-sort-selected-groups-by-score}).  @xref{Group Score}.
2330
2331 @item G P r
2332 @kindex G P r (Group)
2333 @findex gnus-group-sort-selected-groups-by-rank
2334 Sort the process/prefixed groups in the group buffer by group rank
2335 (@code{gnus-group-sort-selected-groups-by-rank}).  @xref{Group Score}.
2336
2337 @item G P m
2338 @kindex G P m (Group)
2339 @findex gnus-group-sort-selected-groups-by-method
2340 Sort the process/prefixed groups in the group buffer alphabetically by
2341 backend name (@code{gnus-group-sort-selected-groups-by-method}).
2342
2343 @end table
2344
2345
2346
2347 @node Group Maintenance
2348 @section Group Maintenance
2349 @cindex bogus groups
2350
2351 @table @kbd
2352 @item b
2353 @kindex b (Group)
2354 @findex gnus-group-check-bogus-groups
2355 Find bogus groups and delete them
2356 (@code{gnus-group-check-bogus-groups}).
2357
2358 @item F
2359 @kindex F (Group)
2360 @findex gnus-group-find-new-groups
2361 Find new groups and process them (@code{gnus-group-find-new-groups}).
2362 If given a prefix, use the @code{ask-server} method to query the server
2363 for new groups.
2364
2365 @item C-c C-x
2366 @kindex C-c C-x (Group)
2367 @findex gnus-group-expire-articles
2368 Run all expirable articles in the current group through the expiry
2369 process (if any) (@code{gnus-group-expire-articles}).
2370
2371 @item C-c M-C-x
2372 @kindex C-c M-C-x (Group)
2373 @findex gnus-group-expire-all-groups
2374 Run all articles in all groups through the expiry process
2375 (@code{gnus-group-expire-all-groups}).
2376
2377 @end table
2378
2379
2380 @node Browse Foreign Server
2381 @section Browse Foreign Server
2382 @cindex foreign servers
2383 @cindex browsing servers
2384
2385 @table @kbd
2386 @item B
2387 @kindex B (Group)
2388 @findex gnus-group-browse-foreign-server
2389 You will be queried for a select method and a server name.  Gnus will
2390 then attempt to contact this server and let you browse the groups there
2391 (@code{gnus-group-browse-foreign-server}).
2392 @end table
2393
2394 @findex gnus-browse-mode
2395 A new buffer with a list of available groups will appear.  This buffer
2396 will use the @code{gnus-browse-mode}.  This buffer looks a bit (well,
2397 a lot) like a normal group buffer.
2398
2399 Here's a list of keystrokes available in the browse mode:
2400
2401 @table @kbd
2402 @item n
2403 @kindex n (Browse)
2404 @findex gnus-group-next-group
2405 Go to the next group (@code{gnus-group-next-group}).
2406
2407 @item p
2408 @kindex p (Browse)
2409 @findex gnus-group-prev-group
2410 Go to the previous group (@code{gnus-group-prev-group}).
2411
2412 @item SPACE
2413 @kindex SPACE (Browse)
2414 @findex gnus-browse-read-group
2415 Enter the current group and display the first article
2416 (@code{gnus-browse-read-group}). 
2417
2418 @item RET
2419 @kindex RET (Browse)
2420 @findex gnus-browse-select-group
2421 Enter the current group (@code{gnus-browse-select-group}). 
2422
2423 @item u
2424 @kindex u (Browse)
2425 @findex gnus-browse-unsubscribe-current-group
2426 Unsubscribe to the current group, or, as will be the case here,
2427 subscribe to it (@code{gnus-browse-unsubscribe-current-group}). 
2428
2429 @item l
2430 @itemx q
2431 @kindex q (Browse)
2432 @kindex l (Browse)
2433 @findex gnus-browse-exit
2434 Exit browse mode (@code{gnus-browse-exit}).
2435
2436 @item ?
2437 @kindex ? (Browse)
2438 @findex gnus-browse-describe-briefly
2439 Describe browse mode briefly (well, there's not much to describe, is
2440 there) (@code{gnus-browse-describe-briefly}).
2441 @end table
2442
2443
2444 @node Exiting Gnus
2445 @section Exiting Gnus
2446 @cindex exiting Gnus
2447
2448 Yes, Gnus is ex(c)iting.
2449
2450 @table @kbd
2451 @item z
2452 @kindex z (Group)
2453 @findex gnus-group-suspend
2454 Suspend Gnus (@code{gnus-group-suspend}).  This doesn't really exit Gnus,
2455 but it kills all buffers except the Group buffer.  I'm not sure why this
2456 is a gain, but then who am I to judge?
2457
2458 @item q
2459 @kindex q (Group)
2460 @findex gnus-group-exit
2461 @c @icon{gnus-group-exit}
2462 Quit Gnus (@code{gnus-group-exit}).
2463
2464 @item Q
2465 @kindex Q (Group)
2466 @findex gnus-group-quit
2467 Quit Gnus without saving the @file{.newsrc} files (@code{gnus-group-quit}).
2468 The dribble file will be saved, though (@pxref{Auto Save}).
2469 @end table
2470
2471 @vindex gnus-exit-gnus-hook
2472 @vindex gnus-suspend-gnus-hook
2473 @code{gnus-suspend-gnus-hook} is called when you suspend Gnus and
2474 @code{gnus-exit-gnus-hook} is called when you quit Gnus, while
2475 @code{gnus-after-exiting-gnus-hook} is called as the final item when
2476 exiting Gnus.
2477
2478 @findex gnus-unload
2479 @cindex unloading
2480 If you wish to completely unload Gnus and all its adherents, you can use
2481 the @code{gnus-unload} command.  This command is also very handy when
2482 trying to customize meta-variables.
2483
2484 Note:
2485
2486 @quotation
2487 Miss Lisa Cannifax, while sitting in English class, felt her feet go
2488 numbly heavy and herself fall into a hazy trance as the boy sitting
2489 behind her drew repeated lines with his pencil across the back of her
2490 plastic chair.
2491 @end quotation
2492
2493
2494 @node Group Topics
2495 @section Group Topics
2496 @cindex topics
2497
2498 If you read lots and lots of groups, it might be convenient to group
2499 them hierarchically according to topics.  You put your Emacs groups over
2500 here, your sex groups over there, and the rest (what, two groups or so?)
2501 you put in some misc section that you never bother with anyway.  You can
2502 even group the Emacs sex groups as a sub-topic to either the Emacs
2503 groups or the sex groups---or both!  Go wild!
2504
2505 @iftex
2506 @iflatex
2507 \gnusfigure{Group Topics}{400}{
2508 \put(75,50){\epsfig{figure=tmp/group-topic.ps,height=9cm}}
2509 }
2510 @end iflatex
2511 @end iftex
2512
2513 Here's an example:
2514
2515 @example
2516 Gnus
2517   Emacs -- I wuw it!
2518      3: comp.emacs
2519      2: alt.religion.emacs
2520     Naughty Emacs
2521      452: alt.sex.emacs
2522        0: comp.talk.emacs.recovery
2523   Misc
2524      8: comp.binaries.fractals
2525     13: comp.sources.unix
2526 @end example
2527
2528 @findex gnus-topic-mode
2529 @kindex t (Group)
2530 To get this @emph{fab} functionality you simply turn on (ooh!) the
2531 @code{gnus-topic} minor mode---type @kbd{t} in the group buffer.  (This
2532 is a toggling command.)
2533
2534 Go ahead, just try it.  I'll still be here when you get back.  La de
2535 dum...  Nice tune, that...  la la la...  What, you're back? Yes, and now
2536 press @kbd{l}.  There.  All your groups are now listed under
2537 @samp{misc}.  Doesn't that make you feel all warm and fuzzy?  Hot and
2538 bothered?
2539
2540 If you want this permanently enabled, you should add that minor mode to
2541 the hook for the group mode:
2542
2543 @lisp
2544 (add-hook 'gnus-group-mode-hook 'gnus-topic-mode)
2545 @end lisp
2546
2547 @menu 
2548 * Topic Variables::    How to customize the topics the Lisp Way.
2549 * Topic Commands::     Interactive E-Z commands.
2550 * Topic Sorting::      Sorting each topic individually.
2551 * Topic Topology::     A map of the world.
2552 * Topic Parameters::   Parameters that apply to all groups in a topic.
2553 @end menu
2554
2555
2556 @node Topic Variables
2557 @subsection Topic Variables
2558 @cindex topic variables
2559
2560 Now, if you select a topic, it will fold/unfold that topic, which is
2561 really neat, I think.
2562
2563 @vindex gnus-topic-line-format
2564 The topic lines themselves are created according to the
2565 @code{gnus-topic-line-format} variable (@pxref{Formatting Variables}).
2566 Valid elements are:
2567
2568 @table @samp
2569 @item i
2570 Indentation.
2571 @item n
2572 Topic name.
2573 @item v
2574 Visibility.
2575 @item l
2576 Level.
2577 @item g
2578 Number of groups in the topic.
2579 @item a
2580 Number of unread articles in the topic.
2581 @item A 
2582 Number of unread articles in the topic and all its subtopics. 
2583 @end table
2584
2585 @vindex gnus-topic-indent-level
2586 Each sub-topic (and the groups in the sub-topics) will be indented with
2587 @code{gnus-topic-indent-level} times the topic level number of spaces.
2588 The default is 2.
2589
2590 @vindex gnus-topic-mode-hook
2591 @code{gnus-topic-mode-hook} is called in topic minor mode buffers. 
2592
2593 @vindex gnus-topic-display-empty-topics
2594 The @code{gnus-topic-display-empty-topics} says whether to display even
2595 topics that have no unread articles in them.  The default is @code{t}.
2596
2597
2598 @node Topic Commands
2599 @subsection Topic Commands
2600 @cindex topic commands
2601
2602 When the topic minor mode is turned on, a new @kbd{T} submap will be
2603 available.  In addition, a few of the standard keys change their
2604 definitions slightly.
2605
2606 @table @kbd
2607
2608 @item T n
2609 @kindex T n (Topic)
2610 @findex gnus-topic-create-topic
2611 Prompt for a new topic name and create it 
2612 (@code{gnus-topic-create-topic}). 
2613
2614 @item T m
2615 @kindex T m (Topic)
2616 @findex gnus-topic-move-group
2617 Move the current group to some other topic
2618 (@code{gnus-topic-move-group}).  This command uses the process/prefix
2619 convention (@pxref{Process/Prefix}).
2620
2621 @item T c
2622 @kindex T c (Topic)
2623 @findex gnus-topic-copy-group
2624 Copy the current group to some other topic
2625 (@code{gnus-topic-copy-group}).  This command uses the process/prefix
2626 convention (@pxref{Process/Prefix}).
2627
2628 @item T D
2629 @kindex T D (Topic)
2630 @findex gnus-topic-remove-group
2631 Remove a group from the current topic (@code{gnus-topic-remove-group}).
2632 This command uses the process/prefix convention
2633 (@pxref{Process/Prefix}).
2634
2635 @item T M
2636 @kindex T M (Topic)
2637 @findex gnus-topic-move-matching
2638 Move all groups that match some regular expression to a topic
2639 (@code{gnus-topic-move-matching}). 
2640
2641 @item T C
2642 @kindex T C (Topic)
2643 @findex gnus-topic-copy-matching
2644 Copy all groups that match some regular expression to a topic
2645 (@code{gnus-topic-copy-matching}). 
2646
2647 @item T h
2648 @kindex T h (Topic)
2649 @findex gnus-topic-toggle-display-empty-topics
2650 Toggle hiding empty topics
2651 (@code{gnus-topic-toggle-display-empty-topics}). 
2652
2653 @item T #
2654 @kindex T # (Topic)
2655 @findex gnus-topic-mark-topic
2656 Mark all groups in the current topic with the process mark
2657 (@code{gnus-topic-mark-topic}). 
2658
2659 @item T M-#
2660 @kindex T M-# (Topic)
2661 @findex gnus-topic-unmark-topic
2662 Remove the process mark from all groups in the current topic
2663 (@code{gnus-topic-unmark-topic}). 
2664
2665 @item RET
2666 @kindex RET (Topic)
2667 @findex gnus-topic-select-group
2668 @itemx SPACE
2669 Either select a group or fold a topic (@code{gnus-topic-select-group}).
2670 When you perform this command on a group, you'll enter the group, as
2671 usual.  When done on a topic line, the topic will be folded (if it was
2672 visible) or unfolded (if it was folded already).  So it's basically a
2673 toggling command on topics.  In addition, if you give a numerical
2674 prefix, group on that level (and lower) will be displayed.
2675
2676 @item T TAB
2677 @kindex T TAB (Topic)
2678 @findex gnus-topic-indent
2679 ``Indent'' the current topic so that it becomes a sub-topic of the
2680 previous topic (@code{gnus-topic-indent}).  If given a prefix,
2681 ``un-indent'' the topic instead.
2682
2683 @item C-k
2684 @kindex C-k (Topic)
2685 @findex gnus-topic-kill-group
2686 Kill a group or topic (@code{gnus-topic-kill-group}).  All groups in the
2687 topic will be removed along with the topic.
2688
2689 @item C-y
2690 @kindex C-y (Topic)
2691 @findex gnus-topic-yank-group
2692 Yank the previously killed group or topic
2693 (@code{gnus-topic-yank-group}).  Note that all topics will be yanked
2694 before all groups. 
2695
2696 @item T r
2697 @kindex T r (Topic)
2698 @findex gnus-topic-rename
2699 Rename a topic (@code{gnus-topic-rename}). 
2700
2701 @item T DEL
2702 @kindex T DEL (Topic)
2703 @findex gnus-topic-delete
2704 Delete an empty topic (@code{gnus-topic-delete}). 
2705
2706 @item A T
2707 @kindex A T (Topic)
2708 @findex gnus-topic-list-active
2709 List all groups that Gnus knows about in a topics-ified way
2710 (@code{gnus-topic-list-active}).
2711
2712 @item G p
2713 @kindex G p (Topic)
2714 @findex gnus-topic-edit-parameters
2715 @cindex group parameters
2716 @cindex topic parameters
2717 @cindex parameters
2718 Edit the topic parameters (@code{gnus-topic-edit-parameters}).
2719 @xref{Topic Parameters}.
2720
2721 @end table
2722
2723
2724 @node Topic Sorting
2725 @subsection Topic Sorting
2726 @cindex topic sorting
2727
2728 You can sort the groups in each topic individually with the following
2729 commands: 
2730
2731
2732 @table @kbd
2733 @item T S a
2734 @kindex T S a (Topic)
2735 @findex gnus-topic-sort-groups-by-alphabet
2736 Sort the current topic alphabetically by group name
2737 (@code{gnus-topic-sort-groups-by-alphabet}). 
2738
2739 @item T S u
2740 @kindex T S u (Topic)
2741 @findex gnus-topic-sort-groups-by-unread
2742 Sort the current topic by the number of unread articles
2743 (@code{gnus-topic-sort-groups-by-unread}).
2744
2745 @item T S l
2746 @kindex T S l (Topic)
2747 @findex gnus-topic-sort-groups-by-level
2748 Sort the current topic by group level
2749 (@code{gnus-topic-sort-groups-by-level}). 
2750
2751 @item T S v
2752 @kindex T S v (Topic)
2753 @findex gnus-topic-sort-groups-by-score
2754 Sort the current topic by group score
2755 (@code{gnus-topic-sort-groups-by-score}).  @xref{Group Score}.
2756
2757 @item T S r
2758 @kindex T S r (Topic)
2759 @findex gnus-topic-sort-groups-by-rank
2760 Sort the current topic by group rank
2761 (@code{gnus-topic-sort-groups-by-rank}).  @xref{Group Score}.
2762
2763 @item T S m
2764 @kindex T S m (Topic)
2765 @findex gnus-topic-sort-groups-by-method
2766 Sort the current topic alphabetically by backend name
2767 (@code{gnus-topic-sort-groups-by-method}). 
2768
2769 @end table
2770
2771 @xref{Sorting Groups} for more information about group sorting. 
2772
2773
2774 @node Topic Topology
2775 @subsection Topic Topology
2776 @cindex topic topology
2777 @cindex topology
2778
2779 So, let's have a look at an example group buffer:
2780
2781 @example
2782 Gnus
2783   Emacs -- I wuw it!
2784      3: comp.emacs
2785      2: alt.religion.emacs
2786     Naughty Emacs
2787      452: alt.sex.emacs
2788        0: comp.talk.emacs.recovery
2789   Misc
2790      8: comp.binaries.fractals
2791     13: comp.sources.unix
2792 @end example
2793
2794 So, here we have one top-level topic (@samp{Gnus}), two topics under
2795 that, and one sub-topic under one of the sub-topics.  (There is always
2796 just one (1) top-level topic).  This topology can be expressed as
2797 follows:
2798
2799 @lisp
2800 (("Gnus" visible)
2801  (("Emacs -- I wuw it!" visible) 
2802   (("Naughty Emacs" visible)))
2803  (("Misc" visible)))
2804 @end lisp
2805
2806 @vindex gnus-topic-topology
2807 This is in fact how the variable @code{gnus-topic-topology} would look
2808 for the display above.  That variable is saved in the @file{.newsrc.eld}
2809 file, and shouldn't be messed with manually---unless you really want
2810 to.  Since this variable is read from the @file{.newsrc.eld} file,
2811 setting it in any other startup files will have no effect.  
2812
2813 This topology shows what topics are sub-topics of what topics (right),
2814 and which topics are visible.  Two settings are currently
2815 allowed---@code{visible} and @code{invisible}.
2816
2817
2818 @node Topic Parameters
2819 @subsection Topic Parameters
2820 @cindex topic parameters
2821
2822 All groups in a topic will inherit group parameters from the parent (and
2823 ancestor) topic parameters.  All valid group parameters are valid topic
2824 parameters (@pxref{Group Parameters}).  
2825
2826 Group parameters (of course) override topic parameters, and topic
2827 parameters in sub-topics override topic parameters in super-topics.  You
2828 know.  Normal inheritance rules.  (@dfn{Rules} is here a noun, not a
2829 verb, although you may feel free to disagree with me here.)
2830
2831 @example
2832 Gnus
2833   Emacs
2834      3: comp.emacs
2835      2: alt.religion.emacs
2836    452: alt.sex.emacs
2837     Relief
2838      452: alt.sex.emacs
2839        0: comp.talk.emacs.recovery
2840   Misc
2841      8: comp.binaries.fractals
2842     13: comp.sources.unix
2843    452: alt.sex.emacs
2844 @end example
2845
2846 The @samp{Emacs} topic has the topic parameter @code{(score-file
2847 . "emacs.SCORE")}; the @samp{Relief} topic has the topic parameter
2848 @code{(score-file . "relief.SCORE")}; and the @samp{Misc} topic has the
2849 topic parameter @code{(score-file . "emacs.SCORE")}.  In addition,
2850 @samp{alt.religion.emacs} has the group parameter @code{(score-file
2851 . "religion.SCORE")}.
2852
2853 Now, when you enter @samp{alt.sex.emacs} in the @samp{Relief} topic, you
2854 will get the @file{relief.SCORE} home score file.  If you enter the same
2855 group in the @samp{Emacs} topic, you'll get the @file{emacs.SCORE} home
2856 score file.  If you enter the group @samp{alt.religion.emacs}, you'll
2857 get the @file{religion.SCORE} home score file.
2858
2859 This seems rather simple and self-evident, doesn't it?  Well, yes.  But
2860 there are some problems, especially with the @code{total-expiry}
2861 parameter.  Say you have a mail group in two topics; one with
2862 @code{total-expiry} and one without.  What happens when you do @kbd{M-x
2863 gnus-expire-all-expirable-groups}?  Gnus has no way of telling which one
2864 of these topics you mean to expire articles from, so anything may
2865 happen.  In fact, I hereby declare that it is @dfn{undefined} what
2866 happens.  You just have to be careful if you do stuff like that.
2867
2868
2869 @node Misc Group Stuff
2870 @section Misc Group Stuff
2871
2872 @menu
2873 * Scanning New Messages:: Asking Gnus to see whether new messages have arrived.
2874 * Group Information::     Information and help on groups and Gnus.
2875 * Group Timestamp::       Making Gnus keep track of when you last read a group.
2876 * File Commands::         Reading and writing the Gnus files.
2877 @end menu
2878
2879 @table @kbd
2880
2881 @item ^
2882 @kindex ^ (Group)
2883 @findex gnus-group-enter-server-mode
2884 Enter the server buffer (@code{gnus-group-enter-server-mode}).
2885 @xref{The Server Buffer}.
2886
2887 @item a
2888 @kindex a (Group)
2889 @findex gnus-group-post-news
2890 Post an article to a group (@code{gnus-group-post-news}).  If given a
2891 prefix, the current group name will be used as the default.
2892
2893 @item m
2894 @kindex m (Group)
2895 @findex gnus-group-mail
2896 Mail a message somewhere (@code{gnus-group-mail}).
2897
2898 @end table
2899
2900 Variables for the group buffer:
2901
2902 @table @code
2903
2904 @item gnus-group-mode-hook
2905 @vindex gnus-group-mode-hook
2906 is called after the group buffer has been
2907 created. 
2908
2909 @item gnus-group-prepare-hook
2910 @vindex gnus-group-prepare-hook
2911 is called after the group buffer is
2912 generated.  It may be used to modify the buffer in some strange,
2913 unnatural way.
2914
2915 @item gnus-permanently-visible-groups
2916 @vindex gnus-permanently-visible-groups
2917 Groups matching this regexp will always be listed in the group buffer,
2918 whether they are empty or not.
2919
2920 @end table
2921
2922
2923 @node Scanning New Messages
2924 @subsection Scanning New Messages
2925 @cindex new messages
2926 @cindex scanning new news
2927
2928 @table @kbd
2929
2930 @item g
2931 @kindex g (Group)
2932 @findex gnus-group-get-new-news
2933 @c @icon{gnus-group-get-new-news}
2934 Check the server(s) for new articles.  If the numerical prefix is used,
2935 this command will check only groups of level @var{arg} and lower
2936 (@code{gnus-group-get-new-news}).  If given a non-numerical prefix, this
2937 command will force a total re-reading of the active file(s) from the
2938 backend(s).
2939
2940 @item M-g
2941 @kindex M-g (Group)
2942 @findex gnus-group-get-new-news-this-group
2943 @vindex gnus-goto-next-group-when-activating
2944 @c @icon{gnus-group-get-new-news-this-group}
2945 Check whether new articles have arrived in the current group
2946 (@code{gnus-group-get-new-news-this-group}).
2947 @code{gnus-goto-next-group-when-activating} says whether this command is
2948 to move point to the next group or not.  It is @code{t} by default.
2949
2950 @findex gnus-activate-all-groups
2951 @cindex activating groups
2952 @item C-c M-g
2953 @kindex C-c M-g (Group)
2954 Activate absolutely all groups (@code{gnus-activate-all-groups}). 
2955
2956 @item R
2957 @kindex R (Group)
2958 @cindex restarting
2959 @findex gnus-group-restart
2960 Restart Gnus (@code{gnus-group-restart}).  This saves the @file{.newsrc}
2961 file(s), closes the connection to all servers, clears up all run-time
2962 Gnus variables, and then starts Gnus all over again.
2963
2964 @end table
2965
2966 @vindex gnus-get-new-news-hook
2967 @code{gnus-get-new-news-hook} is run just before checking for new news. 
2968
2969 @vindex gnus-after-getting-new-news-hook
2970 @code{gnus-after-getting-new-news-hook} is run after checking for new
2971 news.
2972
2973
2974 @node Group Information
2975 @subsection Group Information
2976 @cindex group information
2977 @cindex information on groups
2978
2979 @table @kbd
2980
2981
2982 @item H f
2983 @kindex H f (Group)
2984 @findex gnus-group-fetch-faq
2985 @vindex gnus-group-faq-directory
2986 @cindex FAQ
2987 @cindex ange-ftp
2988 Try to fetch the FAQ for the current group
2989 (@code{gnus-group-fetch-faq}).  Gnus will try to get the FAQ from
2990 @code{gnus-group-faq-directory}, which is usually a directory on a
2991 remote machine.  This variable can also be a list of directories.  In
2992 that case, giving a prefix to this command will allow you to choose
2993 between the various sites.  @code{ange-ftp} (or @code{efs}) will be used
2994 for fetching the file.
2995
2996 If fetching from the first site is unsuccessful, Gnus will attempt to go
2997 through @code{gnus-group-faq-directory} and try to open them one by one.
2998
2999 @item H d
3000 @itemx C-c C-d
3001 @c @icon{gnus-group-describe-group}
3002 @kindex H d (Group)
3003 @kindex C-c C-d (Group)
3004 @cindex describing groups
3005 @cindex group description
3006 @findex gnus-group-describe-group
3007 Describe the current group (@code{gnus-group-describe-group}).  If given
3008 a prefix, force Gnus to re-read the description from the server.
3009
3010 @item M-d
3011 @kindex M-d (Group)
3012 @findex gnus-group-describe-all-groups
3013 Describe all groups (@code{gnus-group-describe-all-groups}).  If given a
3014 prefix, force Gnus to re-read the description file from the server.
3015
3016 @item H v
3017 @itemx V
3018 @kindex V (Group)
3019 @kindex H v (Group)
3020 @cindex version
3021 @findex gnus-version
3022 Display current Gnus version numbers (@code{gnus-version}).
3023
3024 @item ?
3025 @kindex ? (Group)
3026 @findex gnus-group-describe-briefly
3027 Give a very short help message (@code{gnus-group-describe-briefly}).
3028
3029 @item C-c C-i
3030 @kindex C-c C-i (Group)
3031 @cindex info
3032 @cindex manual
3033 @findex gnus-info-find-node
3034 Go to the Gnus info node (@code{gnus-info-find-node}).
3035 @end table
3036
3037
3038 @node Group Timestamp
3039 @subsection Group Timestamp
3040 @cindex timestamps
3041 @cindex group timestamps
3042
3043 It can be convenient to let Gnus keep track of when you last read a
3044 group.  To set the ball rolling, you should add
3045 @code{gnus-group-set-timestamp} to @code{gnus-select-group-hook}:
3046
3047 @lisp
3048 (add-hook 'gnus-select-group-hook 'gnus-group-set-timestamp)
3049 @end lisp
3050
3051 After doing this, each time you enter a group, it'll be recorded.
3052
3053 This information can be displayed in various ways---the easiest is to
3054 use the @samp{%d} spec in the group line format:
3055
3056 @lisp
3057 (setq gnus-group-line-format 
3058       "%M\%S\%p\%P\%5y: %(%-40,40g%) %d\n")
3059 @end lisp
3060
3061 This will result in lines looking like:
3062
3063 @example
3064 *        0: mail.ding                                19961002T012943
3065          0: custom                                   19961002T012713
3066 @end example
3067
3068 As you can see, the date is displayed in compact ISO 8601 format.  This
3069 may be a bit too much, so to just display the date, you could say
3070 something like:
3071
3072 @lisp
3073 (setq gnus-group-line-format 
3074       "%M\%S\%p\%P\%5y: %(%-40,40g%) %6,6~(cut 2)d\n")
3075 @end lisp
3076
3077
3078 @node File Commands
3079 @subsection File Commands
3080 @cindex file commands
3081
3082 @table @kbd
3083
3084 @item r
3085 @kindex r (Group)
3086 @findex gnus-group-read-init-file
3087 @vindex gnus-init-file
3088 @cindex reading init file
3089 Re-read the init file (@code{gnus-init-file}, which defaults to
3090 @file{~/.gnus}) (@code{gnus-group-read-init-file}).
3091
3092 @item s
3093 @kindex s (Group)
3094 @findex gnus-group-save-newsrc
3095 @cindex saving .newsrc
3096 Save the @file{.newsrc.eld} file (and @file{.newsrc} if wanted)
3097 (@code{gnus-group-save-newsrc}).  If given a prefix, force saving the
3098 file(s) whether Gnus thinks it is necessary or not.
3099
3100 @c @item Z
3101 @c @kindex Z (Group)
3102 @c @findex gnus-group-clear-dribble
3103 @c Clear the dribble buffer (@code{gnus-group-clear-dribble}).
3104
3105 @end table
3106
3107
3108 @node The Summary Buffer
3109 @chapter The Summary Buffer
3110 @cindex summary buffer
3111
3112 A line for each article is displayed in the summary buffer.  You can
3113 move around, read articles, post articles and reply to articles.
3114
3115 The most common way to a summary buffer is to select a group from the
3116 group buffer (@pxref{Selecting a Group}).  
3117
3118 You can have as many summary buffers open as you wish.
3119
3120 @menu
3121 * Summary Buffer Format::       Deciding how the summary buffer is to look.
3122 * Summary Maneuvering::         Moving around the summary buffer.
3123 * Choosing Articles::           Reading articles.
3124 * Paging the Article::          Scrolling the current article.
3125 * Reply Followup and Post::     Posting articles.
3126 * Canceling and Superseding::   ``Whoops, I shouldn't have called him that.''
3127 * Marking Articles::            Marking articles as read, expirable, etc.
3128 * Limiting::                    You can limit the summary buffer.
3129 * Threading::                   How threads are made.
3130 * Sorting::                     How articles and threads are sorted.
3131 * Asynchronous Fetching::       Gnus might be able to pre-fetch articles.
3132 * Article Caching::             You may store articles in a cache.
3133 * Persistent Articles::         Making articles expiry-resistant.
3134 * Article Backlog::             Having already read articles hang around.
3135 * Saving Articles::             Ways of customizing article saving.
3136 * Decoding Articles::           Gnus can treat series of (uu)encoded articles.
3137 * Article Treatment::           The article buffer can be mangled at will.
3138 * Article Commands::            Doing various things with the article buffer.
3139 * Summary Sorting::             Sorting the summary buffer in various ways.
3140 * Finding the Parent::          No child support? Get the parent.
3141 * Alternative Approaches::      Reading using non-default summaries.
3142 * Tree Display::                A more visual display of threads.
3143 * Mail Group Commands::         Some commands can only be used in mail groups.
3144 * Various Summary Stuff::       What didn't fit anywhere else.
3145 * Exiting the Summary Buffer::  Returning to the Group buffer.
3146 * Crosspost Handling::          How crossposted articles are dealt with.
3147 * Duplicate Suppression::       An alternative when crosspost handling fails.
3148 @end menu
3149
3150
3151 @node Summary Buffer Format
3152 @section Summary Buffer Format
3153 @cindex summary buffer format
3154
3155 @iftex
3156 @iflatex
3157 \gnusfigure{The Summary Buffer}{180}{
3158 \put(0,0){\epsfig{figure=tmp/summary.ps,width=7.5cm}}
3159 \put(445,0){\makebox(0,0)[br]{\epsfig{figure=tmp/summary-article.ps,width=7.5cm}}}
3160 }
3161 @end iflatex
3162 @end iftex
3163
3164 @menu
3165 * Summary Buffer Lines::     You can specify how summary lines should look.
3166 * Summary Buffer Mode Line:: You can say how the mode line should look.
3167 * Summary Highlighting::     Making the summary buffer all pretty and nice.
3168 @end menu
3169
3170 @findex mail-extract-address-components
3171 @findex gnus-extract-address-components
3172 @vindex gnus-extract-address-components
3173 Gnus will use the value of the @code{gnus-extract-address-components}
3174 variable as a function for getting the name and address parts of a
3175 @code{From} header.  Two pre-defined functions exist:
3176 @code{gnus-extract-address-components}, which is the default, quite
3177 fast, and too simplistic solution; and
3178 @code{mail-extract-address-components}, which works very nicely, but is
3179 slower.  The default function will return the wrong answer in 5% of the
3180 cases.  If this is unacceptable to you, use the other function instead.
3181
3182 @vindex gnus-summary-same-subject
3183 @code{gnus-summary-same-subject} is a string indicating that the current
3184 article has the same subject as the previous.  This string will be used
3185 with those specs that require it.  The default is @code{""}.
3186
3187
3188 @node Summary Buffer Lines
3189 @subsection Summary Buffer Lines
3190
3191 @vindex gnus-summary-line-format
3192 You can change the format of the lines in the summary buffer by changing
3193 the @code{gnus-summary-line-format} variable.  It works along the same
3194 lines as a normal @code{format} string, with some extensions
3195 (@pxref{Formatting Variables}).
3196
3197 The default string is @samp{%U%R%z%I%(%[%4L: %-20,20n%]%) %s\n}.
3198
3199 The following format specification characters are understood:
3200
3201 @table @samp
3202 @item N 
3203 Article number.
3204 @item S
3205 Subject string.
3206 @item s
3207 Subject if the article is the root of the thread or the previous article
3208 had a different subject, @code{gnus-summary-same-subject} otherwise.
3209 (@code{gnus-summary-same-subject} defaults to @code{""}.)
3210 @item F
3211 Full @code{From} header.
3212 @item n
3213 The name (from the @code{From} header).
3214 @item a
3215 The name (from the @code{From} header).  This differs from the @code{n}
3216 spec in that it uses the function designated by the
3217 @code{gnus-extract-address-components} variable, which is slower, but
3218 may be more thorough.
3219 @item A
3220 The address (from the @code{From} header).  This works the same way as
3221 the @code{a} spec.
3222 @item L
3223 Number of lines in the article.
3224 @item c
3225 Number of characters in the article.
3226 @item I
3227 Indentation based on thread level (@pxref{Customizing Threading}).
3228 @item T
3229 Nothing if the article is a root and lots of spaces if it isn't (it
3230 pushes everything after it off the screen).
3231 @item [
3232 Opening bracket, which is normally @samp{[}, but can also be @samp{<}
3233 for adopted articles (@pxref{Customizing Threading}).
3234 @item ]
3235 Closing bracket, which is normally @samp{]}, but can also be @samp{>}
3236 for adopted articles.
3237 @item >
3238 One space for each thread level.
3239 @item <
3240 Twenty minus thread level spaces.
3241 @item U
3242 Unread.
3243 @item R
3244 Replied.
3245 @item i
3246 Score as a number (@pxref{Scoring}).
3247 @item z
3248 @vindex gnus-summary-zcore-fuzz
3249 Zcore, @samp{+} if above the default level and @samp{-} if below the
3250 default level.  If the difference between
3251 @code{gnus-summary-default-level} and the score is less than
3252 @code{gnus-summary-zcore-fuzz}, this spec will not be used.
3253 @item V
3254 Total thread score.
3255 @item x
3256 @code{Xref}.
3257 @item D
3258 @code{Date}.
3259 @item d
3260 The @code{Date} in @code{DD-MMM} format.
3261 @item o
3262 The @code{Date} in @var{YYYYMMDD}@code{T}@var{HHMMSS} format.
3263 @item M
3264 @code{Message-ID}.
3265 @item r
3266 @code{References}.
3267 @item t
3268 Number of articles in the current sub-thread.  Using this spec will slow
3269 down summary buffer generation somewhat.
3270 @item e
3271 An @samp{=} (@code{gnus-not-empty-thread-mark}) will be displayed if the
3272 article has any children.
3273 @item P
3274 The line number.
3275 @item O
3276 Download mark.
3277 @item u
3278 User defined specifier.  The next character in the format string should
3279 be a letter.  Gnus will call the function
3280 @code{gnus-user-format-function-}@samp{X}, where @samp{X} is the letter
3281 following @samp{%u}.  The function will be passed the current header as
3282 argument.  The function should return a string, which will be inserted
3283 into the summary just like information from any other summary specifier.
3284 @end table
3285
3286 The @samp{%U} (status), @samp{%R} (replied) and @samp{%z} (zcore) specs
3287 have to be handled with care.  For reasons of efficiency, Gnus will
3288 compute what column these characters will end up in, and ``hard-code''
3289 that.  This means that it is invalid to have these specs after a
3290 variable-length spec.  Well, you might not be arrested, but your summary
3291 buffer will look strange, which is bad enough.
3292
3293 The smart choice is to have these specs as far to the left as possible.
3294 (Isn't that the case with everything, though?  But I digress.)
3295
3296 This restriction may disappear in later versions of Gnus.
3297
3298
3299 @node Summary Buffer Mode Line
3300 @subsection Summary Buffer Mode Line
3301
3302 @vindex gnus-summary-mode-line-format
3303 You can also change the format of the summary mode bar.  Set
3304 @code{gnus-summary-mode-line-format} to whatever you like.  The default
3305 is @samp{Gnus: %%b [%A] %Z}.  
3306
3307 Here are the elements you can play with:
3308
3309 @table @samp
3310 @item G
3311 Group name.
3312 @item p
3313 Unprefixed group name.
3314 @item A
3315 Current article number.
3316 @item V
3317 Gnus version.
3318 @item U
3319 Number of unread articles in this group.
3320 @item e
3321 Number of unread articles in this group that aren't displayed in the
3322 summary buffer.
3323 @item Z
3324 A string with the number of unread and unselected articles represented
3325 either as @samp{<%U(+%e) more>} if there are both unread and unselected
3326 articles, and just as @samp{<%U more>} if there are just unread articles
3327 and no unselected ones.
3328 @item g
3329 Shortish group name.  For instance, @samp{rec.arts.anime} will be
3330 shortened to @samp{r.a.anime}. 
3331 @item S
3332 Subject of the current article.
3333 @item u
3334 User-defined spec (@pxref{User-Defined Specs}).
3335 @item s
3336 Name of the current score file (@pxref{Scoring}).
3337 @item d
3338 Number of dormant articles (@pxref{Unread Articles}).
3339 @item t
3340 Number of ticked articles (@pxref{Unread Articles}).
3341 @item r
3342 Number of articles that have been marked as read in this session. 
3343 @item E
3344 Number of articles expunged by the score files.
3345 @end table
3346
3347
3348 @node Summary Highlighting
3349 @subsection Summary Highlighting
3350
3351 @table @code
3352
3353 @item gnus-visual-mark-article-hook
3354 @vindex gnus-visual-mark-article-hook
3355 This hook is run after selecting an article.  It is meant to be used for
3356 highlighting the article in some way.  It is not run if
3357 @code{gnus-visual} is @code{nil}.
3358
3359 @item gnus-summary-update-hook
3360 @vindex gnus-summary-update-hook
3361 This hook is called when a summary line is changed.  It is not run if
3362 @code{gnus-visual} is @code{nil}.
3363
3364 @item gnus-summary-selected-face
3365 @vindex gnus-summary-selected-face
3366 This is the face (or @dfn{font} as some people call it) used to
3367 highlight the current article in the summary buffer.
3368
3369 @item gnus-summary-highlight
3370 @vindex gnus-summary-highlight
3371 Summary lines are highlighted according to this variable, which is a
3372 list where the elements are of the format @var{(FORM . FACE)}.  If you
3373 would, for instance, like ticked articles to be italic and high-scored
3374 articles to be bold, you could set this variable to something like
3375 @lisp
3376 (((eq mark gnus-ticked-mark) . italic)
3377  ((> score default) . bold))
3378 @end lisp
3379 As you may have guessed, if @var{FORM} returns a non-@code{nil} value,
3380 @var{FACE} will be applied to the line.
3381 @end table
3382
3383
3384 @node Summary Maneuvering
3385 @section Summary Maneuvering
3386 @cindex summary movement
3387
3388 All the straight movement commands understand the numeric prefix and
3389 behave pretty much as you'd expect. 
3390
3391 None of these commands select articles.
3392
3393 @table @kbd
3394 @item G M-n
3395 @itemx M-n
3396 @kindex M-n (Summary)
3397 @kindex G M-n (Summary)
3398 @findex gnus-summary-next-unread-subject
3399 Go to the next summary line of an unread article
3400 (@code{gnus-summary-next-unread-subject}). 
3401
3402 @item G M-p
3403 @itemx M-p
3404 @kindex M-p (Summary)
3405 @kindex G M-p (Summary)
3406 @findex gnus-summary-prev-unread-subject
3407 Go to the previous summary line of an unread article
3408 (@code{gnus-summary-prev-unread-subject}). 
3409
3410 @item G j
3411 @itemx j
3412 @kindex j (Summary)
3413 @kindex G j (Summary)
3414 @findex gnus-summary-goto-article
3415 Ask for an article number or @code{Message-ID}, and then go to that
3416 article (@code{gnus-summary-goto-article}).
3417
3418 @item G g
3419 @kindex G g (Summary)
3420 @findex gnus-summary-goto-subject
3421 Ask for an article number and then go to the summary line of that article
3422 without displaying the article (@code{gnus-summary-goto-subject}).
3423 @end table
3424
3425 If Gnus asks you to press a key to confirm going to the next group, you
3426 can use the @kbd{C-n} and @kbd{C-p} keys to move around the group
3427 buffer, searching for the next group to read without actually returning
3428 to the group buffer.
3429
3430 Variables related to summary movement:
3431
3432 @table @code
3433
3434 @vindex gnus-auto-select-next
3435 @item gnus-auto-select-next
3436 If you issue one of the movement commands (like @kbd{n}) and there are
3437 no more unread articles after the current one, Gnus will offer to go to
3438 the next group.  If this variable is @code{t} and the next group is
3439 empty, Gnus will exit summary mode and return to the group buffer.  If
3440 this variable is neither @code{t} nor @code{nil}, Gnus will select the
3441 next group, no matter whether it has any unread articles or not.  As a
3442 special case, if this variable is @code{quietly}, Gnus will select the
3443 next group without asking for confirmation.  If this variable is
3444 @code{almost-quietly}, the same will happen only if you are located on
3445 the last article in the group.  Finally, if this variable is
3446 @code{slightly-quietly}, the @kbd{Z n} command will go to the next group
3447 without confirmation.  Also @pxref{Group Levels}.
3448
3449 @item gnus-auto-select-same
3450 @vindex gnus-auto-select-same
3451 If non-@code{nil}, all the movement commands will try to go to the next
3452 article with the same subject as the current.  (@dfn{Same} here might
3453 mean @dfn{roughly equal}.  See @code{gnus-summary-gather-subject-limit}
3454 for details (@pxref{Customizing Threading}).)  This variable is not
3455 particularly useful if you use a threaded display.
3456
3457 @item gnus-summary-check-current
3458 @vindex gnus-summary-check-current
3459 If non-@code{nil}, all the ``unread'' movement commands will not proceed
3460 to the next (or previous) article if the current article is unread.
3461 Instead, they will choose the current article.
3462
3463 @item gnus-auto-center-summary
3464 @vindex gnus-auto-center-summary
3465 If non-@code{nil}, Gnus will keep the point in the summary buffer
3466 centered at all times.  This makes things quite tidy, but if you have a
3467 slow network connection, or simply do not like this un-Emacsism, you can
3468 set this variable to @code{nil} to get the normal Emacs scrolling
3469 action.  This will also inhibit horizontal re-centering of the summary
3470 buffer, which might make it more inconvenient to read extremely long
3471 threads.
3472
3473 @end table
3474
3475
3476 @node Choosing Articles
3477 @section Choosing Articles
3478 @cindex selecting articles
3479
3480 @menu
3481 * Choosing Commands::        Commands for choosing articles.
3482 * Choosing Variables::       Variables that influence these commands.
3483 @end menu
3484
3485
3486 @node Choosing Commands
3487 @subsection Choosing Commands
3488
3489 None of the following movement commands understand the numeric prefix,
3490 and they all select and display an article.
3491
3492 @table @kbd
3493 @item SPACE
3494 @kindex SPACE (Summary)
3495 @findex gnus-summary-next-page
3496 Select the current article, or, if that one's read already, the next
3497 unread article (@code{gnus-summary-next-page}).
3498
3499 @item G n
3500 @itemx n
3501 @kindex n (Summary)
3502 @kindex G n (Summary)
3503 @findex gnus-summary-next-unread-article
3504 @c @icon{gnus-summary-next-unread}
3505 Go to next unread article (@code{gnus-summary-next-unread-article}).
3506
3507 @item G p
3508 @itemx p
3509 @kindex p (Summary)
3510 @findex gnus-summary-prev-unread-article
3511 @c @icon{gnus-summary-prev-unread}
3512 Go to previous unread article (@code{gnus-summary-prev-unread-article}).
3513
3514 @item G N
3515 @itemx N
3516 @kindex N (Summary)
3517 @kindex G N (Summary)
3518 @findex gnus-summary-next-article
3519 Go to the next article (@code{gnus-summary-next-article}).
3520
3521 @item G P
3522 @itemx P
3523 @kindex P (Summary)
3524 @kindex G P (Summary)
3525 @findex gnus-summary-prev-article
3526 Go to the previous article (@code{gnus-summary-prev-article}).
3527
3528 @item G C-n
3529 @kindex G C-n (Summary)
3530 @findex gnus-summary-next-same-subject
3531 Go to the next article with the same subject
3532 (@code{gnus-summary-next-same-subject}). 
3533
3534 @item G C-p
3535 @kindex G C-p (Summary)
3536 @findex gnus-summary-prev-same-subject
3537 Go to the previous article with the same subject
3538 (@code{gnus-summary-prev-same-subject}). 
3539
3540 @item G f
3541 @itemx .
3542 @kindex G f  (Summary)
3543 @kindex .  (Summary)
3544 @findex gnus-summary-first-unread-article
3545 Go to the first unread article
3546 (@code{gnus-summary-first-unread-article}).
3547
3548 @item G b
3549 @itemx ,
3550 @kindex G b (Summary)
3551 @kindex , (Summary)
3552 @findex gnus-summary-best-unread-article
3553 Go to the article with the highest score
3554 (@code{gnus-summary-best-unread-article}). 
3555
3556 @item G l
3557 @itemx l
3558 @kindex l (Summary)
3559 @kindex G l (Summary)
3560 @findex gnus-summary-goto-last-article
3561 Go to the previous article read (@code{gnus-summary-goto-last-article}).
3562
3563 @item G o
3564 @kindex G o (Summary)
3565 @findex gnus-summary-pop-article
3566 @cindex history
3567 @cindex article history
3568 Pop an article off the summary history and go to this article
3569 (@code{gnus-summary-pop-article}).  This command differs from the
3570 command above in that you can pop as many previous articles off the
3571 history as you like, while @kbd{l} toggles the two last read articles.
3572 For a somewhat related issue (if you use these commands a lot),
3573 @pxref{Article Backlog}.
3574 @end table
3575
3576
3577 @node Choosing Variables
3578 @subsection Choosing Variables
3579
3580 Some variables relevant for moving and selecting articles:
3581
3582 @table @code
3583 @item gnus-auto-extend-newsgroup
3584 @vindex gnus-auto-extend-newsgroup
3585 All the movement commands will try to go to the previous (or next)
3586 article, even if that article isn't displayed in the Summary buffer if
3587 this variable is non-@code{nil}.  Gnus will then fetch the article from
3588 the server and display it in the article buffer.
3589
3590 @item gnus-select-article-hook
3591 @vindex gnus-select-article-hook
3592 This hook is called whenever an article is selected.  By default it
3593 exposes any threads hidden under the selected article.
3594
3595 @item gnus-mark-article-hook
3596 @vindex gnus-mark-article-hook
3597 @findex gnus-summary-mark-unread-as-read
3598 @findex gnus-summary-mark-read-and-unread-as-read
3599 @findex gnus-unread-mark
3600 This hook is called whenever an article is selected.  It is intended to
3601 be used for marking articles as read.  The default value is
3602 @code{gnus-summary-mark-read-and-unread-as-read}, and will change the
3603 mark of almost any article you read to @code{gnus-unread-mark}.  The
3604 only articles not affected by this function are ticked, dormant, and
3605 expirable articles.  If you'd instead like to just have unread articles
3606 marked as read, you can use @code{gnus-summary-mark-unread-as-read}
3607 instead.  It will leave marks like @code{gnus-low-score-mark},
3608 @code{gnus-del-mark} (and so on) alone.
3609
3610 @end table
3611
3612
3613 @node Paging the Article
3614 @section Scrolling the Article
3615 @cindex article scrolling
3616
3617 @table @kbd
3618
3619 @item SPACE
3620 @kindex SPACE (Summary)
3621 @findex gnus-summary-next-page
3622 Pressing @kbd{SPACE} will scroll the current article forward one page,
3623 or, if you have come to the end of the current article, will choose the
3624 next article (@code{gnus-summary-next-page}).
3625
3626 @item DEL
3627 @kindex DEL (Summary)
3628 @findex gnus-summary-prev-page
3629 Scroll the current article back one page (@code{gnus-summary-prev-page}). 
3630
3631 @item RET
3632 @kindex RET (Summary)
3633 @findex gnus-summary-scroll-up
3634 Scroll the current article one line forward
3635 (@code{gnus-summary-scroll-up}).
3636
3637 @item A g
3638 @itemx g
3639 @kindex A g (Summary)
3640 @kindex g (Summary)
3641 @findex gnus-summary-show-article
3642 (Re)fetch the current article (@code{gnus-summary-show-article}).  If
3643 given a prefix, fetch the current article, but don't run any of the
3644 article treatment functions.  This will give you a ``raw'' article, just
3645 the way it came from the server.
3646
3647 @item A <
3648 @itemx <
3649 @kindex < (Summary)
3650 @kindex A < (Summary)
3651 @findex gnus-summary-beginning-of-article
3652 Scroll to the beginning of the article
3653 (@code{gnus-summary-beginning-of-article}).
3654
3655 @item A >
3656 @itemx >
3657 @kindex > (Summary)
3658 @kindex A > (Summary)
3659 @findex gnus-summary-end-of-article
3660 Scroll to the end of the article (@code{gnus-summary-end-of-article}).
3661
3662 @item A s 
3663 @itemx s
3664 @kindex A s (Summary)
3665 @kindex s (Summary)
3666 @findex gnus-summary-isearch-article
3667 Perform an isearch in the article buffer
3668 (@code{gnus-summary-isearch-article}).
3669
3670 @item h
3671 @kindex h (Summary)
3672 @findex gnus-summary-select-article-buffer
3673 Select the article buffer (@code{gnus-summary-select-article-buffer}).
3674
3675 @end table
3676
3677
3678 @node Reply Followup and Post
3679 @section Reply, Followup and Post
3680
3681 @menu
3682 * Summary Mail Commands::            Sending mail.
3683 * Summary Post Commands::            Sending news.
3684 @end menu
3685
3686
3687 @node Summary Mail Commands
3688 @subsection Summary Mail Commands
3689 @cindex mail
3690 @cindex composing mail
3691
3692 Commands for composing a mail message:
3693
3694 @table @kbd
3695
3696 @item S r
3697 @itemx r
3698 @kindex S r (Summary)
3699 @kindex r (Summary)
3700 @findex gnus-summary-reply
3701 @c @icon{gnus-summary-mail-reply}
3702 @c @icon{gnus-summary-reply}
3703 Mail a reply to the author of the current article
3704 (@code{gnus-summary-reply}). 
3705
3706 @item S R
3707 @itemx R
3708 @kindex R (Summary)
3709 @kindex S R (Summary)
3710 @findex gnus-summary-reply-with-original
3711 @c @icon{gnus-summary-reply-with-original}
3712 Mail a reply to the author of the current article and include the
3713 original message (@code{gnus-summary-reply-with-original}).  This
3714 command uses the process/prefix convention.
3715
3716 @item S w
3717 @kindex S w (Summary)
3718 @findex gnus-summary-wide-reply
3719 Mail a wide reply to the author of the current article
3720 (@code{gnus-summary-wide-reply}).  A @dfn{wide reply} is a reply that
3721 goes out to all people listed in the @code{To}, @code{From} (or
3722 @code{Reply-to}) and @code{Cc} headers.
3723
3724 @item S W
3725 @kindex S W (Summary)
3726 @findex gnus-summary-wide-reply-with-original
3727 Mail a wide reply to the current article and include the original
3728 message (@code{gnus-summary-reply-with-original}).  This command uses
3729 the process/prefix convention.
3730
3731 @item S o m
3732 @kindex S o m (Summary)
3733 @findex gnus-summary-mail-forward
3734 @c @icon{gnus-summary-mail-forward}
3735 Forward the current article to some other person
3736 (@code{gnus-summary-mail-forward}).  If given a prefix, include the full
3737 headers of the forwarded article.
3738
3739 @item S m
3740 @itemx m
3741 @kindex m (Summary)
3742 @kindex S m (Summary)
3743 @findex gnus-summary-mail-other-window
3744 @c @icon{gnus-summary-mail-originate}
3745 Send a mail to some other person
3746 (@code{gnus-summary-mail-other-window}).
3747
3748 @item S D b
3749 @kindex S D b (Summary)
3750 @findex gnus-summary-resend-bounced-mail
3751 @cindex bouncing mail
3752 If you have sent a mail, but the mail was bounced back to you for some
3753 reason (wrong address, transient failure), you can use this command to
3754 resend that bounced mail (@code{gnus-summary-resend-bounced-mail}).  You
3755 will be popped into a mail buffer where you can edit the headers before
3756 sending the mail off again.  If you give a prefix to this command, and
3757 the bounced mail is a reply to some other mail, Gnus will try to fetch
3758 that mail and display it for easy perusal of its headers.  This might
3759 very well fail, though.
3760
3761 @item S D r
3762 @kindex S D r (Summary)
3763 @findex gnus-summary-resend-message
3764 Not to be confused with the previous command,
3765 @code{gnus-summary-resend-message} will prompt you for an address to
3766 send the current message off to, and then send it to that place.  The
3767 headers of the message won't be altered---but lots of headers that say
3768 @code{Resent-To}, @code{Resent-From} and so on will be added.  This
3769 means that you actually send a mail to someone that has a @code{To}
3770 header that (probably) points to yourself.  This will confuse people.
3771 So, natcherly you'll only do that if you're really eVIl.  
3772
3773 This command is mainly used if you have several accounts and want to
3774 ship a mail to a different account of yours.  (If you're both
3775 @code{root} and @code{postmaster} and get a mail for @code{postmaster}
3776 to the @code{root} account, you may want to resend it to
3777 @code{postmaster}.  Ordnung muß sein!
3778
3779 This command understands the process/prefix convention
3780 (@pxref{Process/Prefix}). 
3781
3782 @item S O m
3783 @kindex S O m (Summary)
3784 @findex gnus-uu-digest-mail-forward
3785 Digest the current series (@pxref{Decoding Articles}) and forward the
3786 result using mail (@code{gnus-uu-digest-mail-forward}).  This command
3787 uses the process/prefix convention (@pxref{Process/Prefix}).
3788
3789 @item S M-c
3790 @kindex S M-c (Summary)
3791 @findex gnus-summary-mail-crosspost-complaint
3792 @cindex crossposting
3793 @cindex excessive crossposting
3794 Send a complaint about excessive crossposting to the author of the
3795 current article (@code{gnus-summary-mail-crosspost-complaint}).  
3796
3797 @findex gnus-crosspost-complaint
3798 This command is provided as a way to fight back agains the current
3799 crossposting pandemic that's sweeping Usenet.  It will compose a reply
3800 using the @code{gnus-crosspost-complaint} variable as a preamble.  This
3801 command understands the process/prefix convention
3802 (@pxref{Process/Prefix}) and will prompt you before sending each mail.
3803
3804 @end table
3805
3806
3807 @node Summary Post Commands
3808 @subsection Summary Post Commands
3809 @cindex post
3810 @cindex composing news
3811
3812 Commands for posting a news article:
3813
3814 @table @kbd
3815 @item S p
3816 @itemx a
3817 @kindex a (Summary)
3818 @kindex S p (Summary)
3819 @findex gnus-summary-post-news
3820 @c @icon{gnus-summary-post-news}
3821 Post an article to the current group
3822 (@code{gnus-summary-post-news}).
3823
3824 @item S f
3825 @itemx f
3826 @kindex f (Summary)
3827 @kindex S f (Summary)
3828 @findex gnus-summary-followup
3829 @c @icon{gnus-summary-followup}
3830 Post a followup to the current article (@code{gnus-summary-followup}).
3831
3832 @item S F
3833 @itemx F
3834 @kindex S F (Summary)
3835 @kindex F (Summary)
3836 @c @icon{gnus-summary-followup-with-original}
3837 @findex gnus-summary-followup-with-original
3838 Post a followup to the current article and include the original message
3839 (@code{gnus-summary-followup-with-original}).   This command uses the
3840 process/prefix convention.
3841
3842 @item S n
3843 @kindex S n (Summary)
3844 @findex gnus-summary-followup-to-mail
3845 Post a followup to the current article via news, even if you got the
3846 message through mail (@code{gnus-summary-followup-to-mail}).
3847
3848 @item S n
3849 @kindex S n (Summary)
3850 @findex gnus-summary-followup-to-mail
3851 Post a followup to the current article via news, even if you got the
3852 message through mail and include the original message
3853 (@code{gnus-summary-followup-to-mail-with-original}).  This command uses
3854 the process/prefix convention.
3855
3856 @item S o p
3857 @kindex S o p (Summary)
3858 @findex gnus-summary-post-forward
3859 Forward the current article to a newsgroup
3860 (@code{gnus-summary-post-forward}).  If given a prefix, include the full
3861 headers of the forwarded article.
3862
3863 @item S O p
3864 @kindex S O p (Summary)
3865 @findex gnus-uu-digest-post-forward
3866 @cindex digests
3867 @cindex making digests
3868 Digest the current series and forward the result to a newsgroup
3869 (@code{gnus-uu-digest-mail-forward}).  This command uses the
3870 process/prefix convention.
3871
3872 @item S u
3873 @kindex S u (Summary)
3874 @findex gnus-uu-post-news
3875 @c @icon{gnus-uu-post-news}
3876 Uuencode a file, split it into parts, and post it as a series
3877 (@code{gnus-uu-post-news}). (@pxref{Uuencoding and Posting}). 
3878 @end table
3879
3880
3881 @node Canceling and Superseding
3882 @section Canceling Articles
3883 @cindex canceling articles
3884 @cindex superseding articles
3885
3886 Have you ever written something, and then decided that you really,
3887 really, really wish you hadn't posted that?
3888
3889 Well, you can't cancel mail, but you can cancel posts.
3890
3891 @findex gnus-summary-cancel-article
3892 @kindex C (Summary)
3893 @c @icon{gnus-summary-cancel-article}
3894 Find the article you wish to cancel (you can only cancel your own
3895 articles, so don't try any funny stuff).  Then press @kbd{C} or @kbd{S
3896 c} (@code{gnus-summary-cancel-article}).  Your article will be
3897 canceled---machines all over the world will be deleting your article.
3898 This command uses the process/prefix convention (@pxref{Process/Prefix}).
3899
3900 Be aware, however, that not all sites honor cancels, so your article may
3901 live on here and there, while most sites will delete the article in
3902 question.
3903
3904 Gnus will use the ``current'' select method when cancelling.  If you
3905 want to use the standard posting method, use the @samp{a} symbolic
3906 prefix (@pxref{Symbolic Prefixes}).
3907
3908 If you discover that you have made some mistakes and want to do some
3909 corrections, you can post a @dfn{superseding} article that will replace
3910 your original article.
3911
3912 @findex gnus-summary-supersede-article
3913 @kindex S (Summary)
3914 Go to the original article and press @kbd{S s}
3915 (@code{gnus-summary-supersede-article}).  You will be put in a buffer
3916 where you can edit the article all you want before sending it off the
3917 usual way.
3918
3919 The same goes for superseding as for canceling, only more so: Some
3920 sites do not honor superseding.  On those sites, it will appear that you
3921 have posted almost the same article twice.
3922
3923 If you have just posted the article, and change your mind right away,
3924 there is a trick you can use to cancel/supersede the article without
3925 waiting for the article to appear on your site first.  You simply return
3926 to the post buffer (which is called @code{*sent ...*}).  There you will
3927 find the article you just posted, with all the headers intact.  Change
3928 the @code{Message-ID} header to a @code{Cancel} or @code{Supersedes}
3929 header by substituting one of those words for the word
3930 @code{Message-ID}.  Then just press @kbd{C-c C-c} to send the article as
3931 you would do normally.  The previous article will be
3932 canceled/superseded.
3933
3934 Just remember, kids: There is no 'c' in 'supersede'.
3935
3936
3937 @node Marking Articles
3938 @section Marking Articles
3939 @cindex article marking
3940 @cindex article ticking
3941 @cindex marks
3942
3943 There are several marks you can set on an article. 
3944
3945 You have marks that decide the @dfn{readedness} (whoo, neato-keano
3946 neologism ohoy!) of the article.  Alphabetic marks generally mean
3947 @dfn{read}, while non-alphabetic characters generally mean @dfn{unread}.
3948
3949 In addition, you also have marks that do not affect readedness.
3950
3951 @menu
3952 * Unread Articles::      Marks for unread articles.
3953 * Read Articles::        Marks for read articles.
3954 * Other Marks::          Marks that do not affect readedness.
3955 @end menu
3956
3957 @ifinfo
3958 There's a plethora of commands for manipulating these marks:
3959 @end ifinfo
3960
3961 @menu
3962 * Setting Marks::           How to set and remove marks.
3963 * Setting Process Marks::   How to mark articles for later processing.
3964 @end menu
3965
3966
3967 @node Unread Articles
3968 @subsection Unread Articles
3969
3970 The following marks mark articles as (kinda) unread, in one form or
3971 other.
3972
3973 @table @samp
3974 @item !
3975 @vindex gnus-ticked-mark
3976 Marked as ticked (@code{gnus-ticked-mark}).
3977
3978 @dfn{Ticked articles} are articles that will remain visible always.  If
3979 you see an article that you find interesting, or you want to put off
3980 reading it, or replying to it, until sometime later, you'd typically
3981 tick it.  However, articles can be expired, so if you want to keep an
3982 article forever, you'll have to make it persistent (@pxref{Persistent
3983 Articles}).  
3984
3985 @item ?
3986 @vindex gnus-dormant-mark
3987 Marked as dormant (@code{gnus-dormant-mark}).  
3988
3989 @dfn{Dormant articles} will only appear in the summary buffer if there
3990 are followups to it.  If you want to see them even if they don't have
3991 followups, you can use the @kbd{/ D} command (@pxref{Limiting}).
3992
3993 @item SPACE
3994 @vindex gnus-unread-mark
3995 Markes as unread (@code{gnus-unread-mark}).
3996
3997 @dfn{Unread articles} are articles that haven't been read at all yet.
3998 @end table
3999
4000
4001 @node Read Articles
4002 @subsection Read Articles
4003 @cindex expirable mark
4004
4005 All the following marks mark articles as read.
4006
4007 @table @samp
4008
4009 @item r
4010 @vindex gnus-del-mark
4011 These are articles that the user has marked as read with the @kbd{d}
4012 command manually, more or less (@code{gnus-del-mark}).
4013
4014 @item R
4015 @vindex gnus-read-mark
4016 Articles that have actually been read (@code{gnus-read-mark}).
4017
4018 @item O
4019 @vindex gnus-ancient-mark
4020 Articles that were marked as read in previous sessions and are now
4021 @dfn{old} (@code{gnus-ancient-mark}).
4022
4023 @item K
4024 @vindex gnus-killed-mark
4025 Marked as killed (@code{gnus-killed-mark}).
4026
4027 @item X
4028 @vindex gnus-kill-file-mark
4029 Marked as killed by kill files (@code{gnus-kill-file-mark}).
4030
4031 @item Y
4032 @vindex gnus-low-score-mark
4033 Marked as read by having too low a score (@code{gnus-low-score-mark}).
4034
4035 @item C
4036 @vindex gnus-catchup-mark
4037 Marked as read by a catchup (@code{gnus-catchup-mark}).
4038
4039 @item G
4040 @vindex gnus-canceled-mark
4041 Canceled article (@code{gnus-canceled-mark})
4042
4043 @item F
4044 @vindex gnus-souped-mark
4045 @sc{SOUP}ed article (@code{gnus-souped-mark}).  @xref{SOUP}.
4046
4047 @item Q
4048 @vindex gnus-sparse-mark
4049 Sparsely reffed article (@code{gnus-sparse-mark}).  @xref{Customizing
4050 Threading}.
4051
4052 @item M
4053 @vindex gnus-duplicate-mark
4054 Article marked as read by duplicate suppression
4055 (@code{gnus-duplicated-mark}).  @xref{Duplicate Suppression}.
4056
4057 @end table
4058
4059 All these marks just mean that the article is marked as read, really.
4060 They are interpreted differently when doing adaptive scoring, though.
4061
4062 One more special mark, though:
4063
4064 @table @samp
4065 @item E
4066 @vindex gnus-expirable-mark
4067 Marked as expirable (@code{gnus-expirable-mark}).
4068
4069 Marking articles as @dfn{expirable} (or have them marked as such
4070 automatically) doesn't make much sense in normal groups---a user doesn't
4071 control expiring of news articles, but in mail groups, for instance,
4072 articles marked as @dfn{expirable} can be deleted by Gnus at
4073 any time.
4074 @end table
4075
4076
4077 @node Other Marks
4078 @subsection Other Marks
4079 @cindex process mark
4080 @cindex bookmarks
4081
4082 There are some marks that have nothing to do with whether the article is
4083 read or not.
4084
4085 @itemize @bullet
4086
4087 @item 
4088 You can set a bookmark in the current article.  Say you are reading a
4089 long thesis on cats' urinary tracts, and have to go home for dinner
4090 before you've finished reading the thesis.  You can then set a bookmark
4091 in the article, and Gnus will jump to this bookmark the next time it
4092 encounters the article.  @xref{Setting Marks}
4093
4094 @item
4095 @vindex gnus-replied-mark
4096 All articles that you have replied to or made a followup to (i.e., have
4097 answered) will be marked with an @samp{A} in the second column
4098 (@code{gnus-replied-mark}).
4099
4100 @item 
4101 @vindex gnus-cached-mark
4102 Articles stored in the article cache will be marked with an @samp{*} in
4103 the second column (@code{gnus-cached-mark}).  @xref{Article Caching}
4104
4105 @item 
4106 @vindex gnus-saved-mark
4107 Articles ``saved'' (in some manner or other; not necessarily
4108 religiously) are marked with an @samp{S} in the second column
4109 (@code{gnus-saved-mark}).
4110
4111 @item 
4112 @vindex gnus-not-empty-thread-mark
4113 @vindex gnus-empty-thread-mark
4114 If the @samp{%e} spec is used, the presence of threads or not will be
4115 marked with @code{gnus-not-empty-thread-mark} and
4116 @code{gnus-empty-thread-mark} in the third column, respectively.
4117
4118 @item 
4119 @vindex gnus-process-mark
4120 Finally we have the @dfn{process mark} (@code{gnus-process-mark}).  A
4121 variety of commands react to the presence of the process mark.  For
4122 instance, @kbd{X u} (@code{gnus-uu-decode-uu}) will uudecode and view
4123 all articles that have been marked with the process mark.  Articles
4124 marked with the process mark have a @samp{#} in the second column.
4125
4126 @end itemize
4127
4128 You might have noticed that most of these ``non-readedness'' marks
4129 appear in the second column by default.  So if you have a cached, saved,
4130 replied article that you have process-marked, what will that look like?
4131
4132 Nothing much.  The precedence rules go as follows: process -> cache ->
4133 replied -> saved.  So if the article is in the cache and is replied,
4134 you'll only see the cache mark and not the replied mark.
4135
4136
4137 @node Setting Marks
4138 @subsection Setting Marks
4139 @cindex setting marks
4140
4141 All the marking commands understand the numeric prefix.
4142
4143 @table @kbd
4144 @item M c
4145 @itemx M-u
4146 @kindex M c (Summary)
4147 @kindex M-u (Summary)
4148 @findex gnus-summary-clear-mark-forward
4149 @cindex mark as unread
4150 Clear all readedness-marks from the current article
4151 (@code{gnus-summary-clear-mark-forward}).  In other words, mark the
4152 article as unread.
4153
4154 @item M t
4155 @itemx !
4156 @kindex ! (Summary)
4157 @kindex M t (Summary)
4158 @findex gnus-summary-tick-article-forward
4159 Tick the current article (@code{gnus-summary-tick-article-forward}).
4160 @xref{Article Caching} 
4161
4162 @item M ?
4163 @itemx ?
4164 @kindex ? (Summary)
4165 @kindex M ? (Summary)
4166 @findex gnus-summary-mark-as-dormant
4167 Mark the current article as dormant
4168 (@code{gnus-summary-mark-as-dormant}).  @xref{Article Caching} 
4169
4170 @item M d
4171 @itemx d
4172 @kindex M d (Summary)
4173 @kindex d (Summary)
4174 @findex gnus-summary-mark-as-read-forward
4175 Mark the current article as read
4176 (@code{gnus-summary-mark-as-read-forward}).
4177
4178 @item D
4179 @kindex D (Summary)
4180 @findex gnus-summary-mark-as-read-backward
4181 Mark the current article as read and move point to the previous line
4182 (@code{gnus-summary-mark-as-read-backward}).
4183
4184 @item M k
4185 @itemx k
4186 @kindex k (Summary)
4187 @kindex M k (Summary)
4188 @findex gnus-summary-kill-same-subject-and-select
4189 Mark all articles that have the same subject as the current one as read,
4190 and then select the next unread article
4191 (@code{gnus-summary-kill-same-subject-and-select}).
4192
4193 @item M K
4194 @itemx C-k
4195 @kindex M K (Summary)
4196 @kindex C-k (Summary)
4197 @findex gnus-summary-kill-same-subject
4198 Mark all articles that have the same subject as the current one as read
4199 (@code{gnus-summary-kill-same-subject}).  
4200
4201 @item M C
4202 @kindex M C (Summary)
4203 @findex gnus-summary-catchup
4204 @c @icon{gnus-summary-catchup}
4205 Mark all unread articles as read (@code{gnus-summary-catchup}).
4206
4207 @item M C-c
4208 @kindex M C-c (Summary)
4209 @findex gnus-summary-catchup-all
4210 Mark all articles in the group as read---even the ticked and dormant
4211 articles (@code{gnus-summary-catchup-all}).
4212
4213 @item M H
4214 @kindex M H (Summary)
4215 @findex gnus-summary-catchup-to-here
4216 Catchup the current group to point
4217 (@code{gnus-summary-catchup-to-here}). 
4218
4219 @item C-w
4220 @kindex C-w (Summary)
4221 @findex gnus-summary-mark-region-as-read
4222 Mark all articles between point and mark as read
4223 (@code{gnus-summary-mark-region-as-read}). 
4224
4225 @item M V k
4226 @kindex M V k (Summary)
4227 @findex gnus-summary-kill-below
4228 Kill all articles with scores below the default score (or below the
4229 numeric prefix) (@code{gnus-summary-kill-below}).
4230
4231 @item M e
4232 @itemx E
4233 @kindex M e (Summary)
4234 @kindex E (Summary)
4235 @findex gnus-summary-mark-as-expirable
4236 Mark the current article as expirable
4237 (@code{gnus-summary-mark-as-expirable}).
4238
4239 @item M b
4240 @kindex M b (Summary)
4241 @findex gnus-summary-set-bookmark
4242 Set a bookmark in the current article
4243 (@code{gnus-summary-set-bookmark}).
4244
4245 @item M B