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