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