This file documents GNUS, the GNU Emacs newsreader.

Copyright (C) 1989, 1990, 1993 Free Software Foundation, Inc.

Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.

Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided also that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.

Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.

The GNUS News Reader
********************

You can read netnews within Emacs using the GNUS package.  GNUS uses the NNTP protocol to communicate with a news server, which is a repository of news articles.  This need not be the same computer you are logged in on.

While the author of GNUS recommends pronouncing it as ``news'', we recommend pronouncing it as ``gnoose'', to avoid confusion.

Starting GNUS
*************

This chapter describes how to get started GNUS, how to use a local news spool directly, and how to read private directory.

Getting Started GNUS
====================

To start GNUS, type M-x gnus.

M-x gnus
     Run GNUS using the default NNTP server.

C-u M-x gnus
     Run GNUS without using the default NNTP server.

Telling GNUS Where To Find the News
===================================

Somehow or other, GNUS has to know how to find the current netnews. Usually this means it has to know the hostname of the NNTP server.

There are several ways that GNUS can get this information.  Most often, it comes from the environment variable NNTPSERVER.  You can specify a default when you install Emacs by setting the variable gnus-nntp-server in the site-init.el file.  If neither this default nor the environment variable is defined, then GNUS reads the server name using the minibuffer when you start it.

You can override the default by specifying a prefix argument for the gnus command.  Then it always reads the hostname to use.

GNUS can also bypass NNTP and read the news directly from the file system.  This reduces the overhead, but the features for retrieving by their message IDs may fail to work (see Spool Variables).  To do this, specify :: as the NNTP server ``machine name''.

You can also specify a subdirectory of your home directory to use as the current news spool.  To do this, specify a colon and the subdirectory name as the NNTP server ``machine name''.  For example, :Mail says to use the directory ~/Mail as the news spool.  This makes it possible to read mail stored in MH folders or articles saved by GNUS. The files in the directory with numeric names are considered news articles, and the other files in the directory are ignored.

A server specific startup file for each directory must exist before you start GNUS.  For example, a startup file for the directory ~/Mail should be a file named .newsrc-:Mail. See Startup File, for more information on the server specific startup file.

Each news server has its own active file which lists the numbers of the active articles in each newsgroup.  Reading this file from the server is among the first things GNUS does when it starts.  Commands such as g that report additional newly-arrived articles work by rereading the active file.

Buffers Used by GNUS
********************

GNUS uses three Emacs buffers: the Newsgroup buffer, the Summary buffer, and the Article buffer.  Each has its own particular purpose and its own major mode.  GNUS often displays all three buffers at the same time, with a configuration you can customize by setting the variable gnus-window-configuration.

The Article buffer is where GNUS displays the text of an article. Its major mode is always Article Mode.  Users rarely select this buffer because you can read the text while keeping the Summary buffer selected.

Newsgroup Buffer
================

Newsgroup buffer contains a list of newsgroups.  Its major mode is Group Mode.  This is the first buffer that GNUS displays when it starts up.

Normally the list contains only the newsgroups which you subscribe to and which contain unread articles.  It is normally empty if there is no such newsgroups.  When you start GNUS, it displays the message No news is good news. in the echo area.

The format of the Newsgroup buffer looks like this:

     SM  NUMBER: NEWSGROUP

s
     A character indicating whether the newsgroup is subscribed to.  U means you subscribe to the newsgroup;   means that you don't. You can change your subscriptions using commands available in Group mode.

m
     A character indicating whether there are newly arrived and unread articles in the newsgroup.  * means there are no newly arrived articles in the newsgroup.    means there are newly arrived articles.

number
     The number of unread articles in the newsgroup.

newsgroup
     The name of the newsgroup.

Summary Buffer
==============

The Summary buffer displays a summary of articles in a single newsgroup, including their subjects, their numbers, and who posted them.  Its major mode is Summary mode.  GNUS creates a Summary buffer for a newsgroup when you select the group in the Newsgroup buffer.

A Summary buffer contains a line for each article.  Each line looks like this:

     S NUMBER:C[LINES:AUTHOR] SUBJECT

Here is what the fields mean:

s
     The status code for this article.    means the article is newly arrived and never read.  D means you read the article already. - means you read it but marked it as saved.

number
     The number assigned to the article.

c
     A character indicating which article is currently selected.  + is placed on the current article.

lines
     The number of lines of the article body.

author
     The mail address of the author of the article.

subject
     The subject of the article.

You can customize the format by setting the variable gnus-optional-headers.

Newsgroup Commands
******************

The Newsgroup buffer normally lists the newsgroups which you subscribe to and which contain unread articles.  But not always---some of the things you can do display additional newsgroups.  The commands available in this buffer are mostly concerned with subscribing and unsubscribing.

Browsing Newsgroups
===================

Most of the newsgroup commands operate on the group described by the current line.  To use them, you need to move the cursor to the group you want to act on.  You can use ordinary Emacs motion commands, or these special commands:

n
     Move point to the next newsgroup containing unread articles (gnus-group-next-unread-group).

p
DEL
     Move point to the previous newsgroup containing unread articles (gnus-group-prev-unread-group).

C-n
     Move point to the next newsgroup (gnus-group-next-group).

C-p
     Move point to the previous newsgroup (gnus-group-prev-group).

j NEWSGROUP RET
     Move point to the NEWSGROUP specified by name (gnus-group-jump-to-group).

<
     Move point to the beginning of the buffer (beginning-of-buffer).

>
     Move point to the end of the buffer (end-of-buffer).

r
     Restrict visible newsgroups to the current region specified by point and the mark (gnus-group-restrict-groups).

The command j (gnus-group-jump-to-group) reads a newsgroup name interactively, and moves point to it.  If there is no such newsgroup in the buffer, a line for the newsgroup is inserted at the beginning of the buffer.

The command r (gnus-group-restrict-groups) restricts visibility in the Newsgroup buffer to the region specified by point and mark.  It is not quite the same as C-x n; it includes all of the line that the region starts in, and all of the line that the region ends in.  Type C-x w (widen) to widen visibility to the whole buffer.

Selecting a Newsgroup
=====================

To start reading the articles in a newsgroup, move to that newsgroup in the Newsgroup buffer and type SPC (gnus-group-read-group) or = (gnus-group-select-group).

SPC
     Select the newsgroup at point, and then select the first unread article automatically (gnus-group-read-group).

=
     Select the newsgroup at point (gnus-group-select-group).

Normally, when you select a newsgroup, GNUS prepares to read only the unread articles (including saved articles).  If the newsgroup has no unread articles and you select it anyway, GNUS prepares to read all the articles.  You can force GNUS to include all the articles by giving a prefix argument to the commands SPC and = (gnus-group-read-group and gnus-group-select-group).

If the number of articles being selected is larger than the variable gnus-large-newsgroup, GNUS prompts for the number of articles to prepare.  If your answer N is positive, GNUS prepares the last N articles.  If N is negative, GNUS prepares the first -N articles.  If you answer with the empty string, GNUS prepares all articles.

Maintaining Subscriptions
=========================

This section explains how to subscribe and unsubscribe, as well as other related activities.  Most of the commands operate on the newsgroup listed on the current line.

c
     Mark all newly arrived articles in the newsgroup as read, but don't alter articles explicitly marked as saved (gnus-group-catchup).

C
     Mark all articles in the newsgroup  as read (gnus-group-catchup-all).

l
     Show only the newsgroups which you now subscribe to and which now contain unread and saved articles (gnus-group-list-groups).

L
     Show all newsgroups available on your news server (gnus-group-list-all-groups).

u
     Unsubscribe from (or subscribe to) the newsgroup (gnus-group-unsubscribe-current-group).

U NEWSGROUP RET
     Unsubscribe from (or subscribe to) the newsgroup named NEWSGROUP (gnus-group-unsubscribe-group).

C-k
     Kill the newsgroup line that point is in (gnus-group-kill-group).

C-w
     Kill newsgroups in current region (excluding current line) (gnus-group-kill-region).

C-y
     Yank the last newsgroup killed (gnus-group-yank-group).  It is inserted just before the current line.  Successive uses of C-y yank earlier kills, in last-in first-out order.

C-x C-t
     Exchange current newsgroup and previous newsgroup. (gnus-group-transpose-groups).

M-x gnus-list-killed-groups

C-c C-l
     Display a list of the newsgroups you have killed.  This is so you can copy them back into the startup file.

b
     Delete bogus newsgroups (gnus-group-check-bogus-groups).

g
     Get newly arrived articles for all groups (gnus-group-get-new-news).

The commands c and C (gnus-group-catchup and gnus-group-catchup-all) mark all or most of the articles in a newsgroup as read.  They are useful if you have been away from news reading for a while, and you don't want to slog through the backlog of old postings.  These commands do not take account of the cross-reference information in the Xref: field, while the c command in Summary Mode does.

Only subscribed newsgroups containing unread and saved articles are usually displayed in the Newsgroup buffer.  Type L (gnus-group-list-all-groups) to show all newsgroups which are currently active.  Use l (gnus-group-list-groups) to go back to the usual contents---only groups which have news for you to read.

The command U (gnus-group-unsubscribe-group) reads a newsgroup name interactively, and toggles its subscription flag.  This is the usual way to subscribe to new groups.  (You can also type L and then use u on the groups you want to read.)  You can also arrange to subscribe automatically to some or all newly created newsgroups using the options line in your startup file, ~/.newsrc. See Startup File, for more information.

The command C-k (gnus-group-kill-group) kills a newsgroup from both the Newsgroup buffer and the raw startup file.  If you change your mind, type C-y (gnus-group-yank-group); this yanks the last newsgroup killed with the C-k command.

The command C-c C-l (gnus-list-killed-groups) pops up a buffer listing the newsgroups you have killed.  You can yank any of these newsgroups by moving point to the entry for the newsgroup you want, and then typing y or C-y (gnus-browse-killed-yank).  So a convenient way to change the order of newsgroups is to kill some of them, then go to the list of killed groups and yank them in the order you want.

You are not limited to yanking only the groups that you killed in the current GNUS session.  All the groups you have ever killed are remembered in the quick startup file, and you can restore them any time unless you lose the file.

A bogus newsgroup is one not in the list of active newsgroups in the active file.  Type b (gnus-group-check-bogus-groups) to delete all the bogus newsgroups that you subscribe to.  Bogus newsgroups that you have unsubscribed or killed are deleted also.

The g command rereads the active file to get updated lists of articles available to be read.

Exiting GNUS
============

z
     Suspend the current GNUS session (gnus-group-suspend).

q
     Update the startup file .newsrc, and then exit GNUS (gnus-group-exit).

Q
     Exit GNUS without updating the startup file .newsrc (gnus-group-quit).

Suspending GNUS with z (gnus-group-suspend) kills all GNUS buffers except for the Newsgroup buffer.  To resume again, switch to the Newsgroup buffer and type g (gnus-group-get-new-news) to get newly arrived articles.  It is a good idea to update the startup file (see Startup File) before suspending GNUS.

If you want to forget what you read this GNUS session, exit GNUS by the command Q (gnus-group-quit).  Otherwise, exit by the command q (gnus-group-exit) to update the startup file.

The hook gnus-exit-gnus-hook is called when exiting GNUS, and the hook gnus-suspend-gnus-hook is called when suspending GNUS.

Miscellaneous Commands
======================

Other miscellaneous Group mode commands are described here.

a
     Compose a new article (gnus-group-post-news).  See Posting Articles, for more information.

M-k
     Edit a local kill file (gnus-group-edit-local-kill).  See Kill File, for more information.

M-K
     Edit your global kill file (gnus-group-edit-global-kill). See Kill File, for more information.

Summary Commands
****************

The Summary buffer shows you a summary of the contents of a single newsgroup, with one line for each article.  You can move around in the Summary buffer, giving commands to view articles, save them, reply to them, and so on.  When you view an article, its text appears in a separate buffer, but the Summary buffer remains current.  In fact, there is hardly ever a reason to select the Article buffer; you can do almost all news reading tasks while staying in the Summary buffer.

Reading Articles
================

The most basic command for reading articles is SPC (gnus-summary-next-page).  When you are viewing the middle of a article, SPC scrolls the article forward.  When you get to the end of an article, SPC advances to the next article.  You can read all the unread articles straight through using just SPC.

Naturally, though, there are plenty of more advanced features available.

Cursor Motion in the Summary Buffer
-----------------------------------

For moving around in the Summary buffer, you can use these special commands as well as the usual cursor motion commands.

C-n
     Move point to the next header (gnus-summary-next-subject).

C-p
     Move point to the previous header (gnus-summary-prev-subject).

M-n
     Move point to the next header, skipping marked articles (gnus-summary-next-unread-subject).

M-p
     Move point to the previous header, skipping marked articles (gnus-summary-prev-unread-subject).

j NUMBER RET
     Move point to the line describing an article specified by number with a prefix argument (gnus-summary-goto-subject).

Commands to Read Articles
-------------------------

SPC
     SPC in the Summary buffer scrolls the Article buffer to the next screenful or to the next article (gnus-summary-next-page)

g
     Select the article on the current line (gnus-summary-show-article).  This command always rereads the article text from the server even if the same article is already selected.

=
     Expand the Summary buffer's window to occupy all the screen space that GNUS is now using (gnus-summary-expand-window).

C-t
     Toggle truncation of lines in the Summary buffer (gnus-summary-toggle-truncation).

w
     Stop page breaking of article buffer (gnus-summary-stop-page-breaking).

t
     Show all headers of the current article if pruned header currently shown, or vice versa (gnus-summary-toggle-header).

M-t
     Toggle MIME processing (gnus-summary-toggle-mime).

C-c C-r
     Caesar rotate letters by 13 places and Japanese characters by 47 places (gnus-summary-caesar-message).

The command = (gnus-summary-expand-window) expands the Summary window by deleting the Article window.  Use it when you want to concentrate on the Summary buffer.  This command is different from C-x 1 when more than two windows exist.

The command C-c C-r (gnus-summary-caesar-message) rotates all letters in the body of the current article by 13/47 places.  (This encoding is often called ``rot 13''.)  To undo this operation, run it a second time.

If an article contains multiple pages, GNUS normally displays just one page at a time.  To advance to the next page of an article, simply type SPC.  It advances to the next page whenever the end of a page is on the screen.

The command w (gnus-summary-stop-page-breaking) temporarily suspends page breaking; it makes the entire current article visible.  You can turn off page breaking all the time by setting the variable gnus-break-pages to nil.

Page boundaries are defined by the variable gnus-page-delimiter, whose value is a regular expression.  The default is to match a formfeed character at the beginning of a line.

GNUS normally hides many uninteresting header fields when it displays an article.  (The variable gnus-ignored-headers controls which fields are ignored.)  If you want to see the whole header, type t (gnus-summary-toggle-header).  Use t a second time to hide the uninteresting header fields again.

Scrolling Within an Article
---------------------------

This section describes the commands you can type in the Summary buffer to scroll the Article buffer.  (If you want to scroll the Summary buffer, you can use the usual Emacs scrolling commands.)

SPC
     Scroll to the next page of the current article (gnus-summary-next-page).  Select it first if no article is selected yet.  Select the next unread article automatically at the end of the message.

DEL
     Scroll the current article backward (gnus-summary-prev-page).

RET
     Scroll the current article one (or N) lines forward (gnus-summary-scroll-up).  A negative argument scrolls backward.

<
     Move point to the beginning of the current article (gnus-summary-beginning-of-article).

>
     Move point to the end of the current article (gnus-summary-end-of-article).

Moving Among Articles
---------------------

These commands move point in the Summary buffer to a different line and display that line's article.

n
     Read the next article, skipping marked articles (gnus-summary-next-unread-article).

p
     Read the previous article, skipping marked articles (gnus-summary-prev-unread-article).

N
     Read the next article (gnus-summary-next-article).

P
     Read the previous article (gnus-summary-prev-article).

C-M-n
     Read the next article with the same subject as the current article (gnus-summary-next-same-subject).

C-M-p
     Read the previous article with the same subject as the current article (gnus-summary-prev-same-subject).

.
     Read the first unread article (gnus-summary-first-unread-article).

l
     Read the article selected last (gnus-summary-goto-last-article).

If the variable gnus-auto-select-same is non-nil, the commands n and p (gnus-summary-next-unread-article and gnus-summary-prev-unread-article) skip articles until they come to another article with the same subject.  If you are used to reading news with rn -S, set the variable to non-nil to get familiar behavior.

If the variable gnus-auto-extend-newsgroup is non-nil, the commands N and P (gnus-summary-next-article and gnus-summary-prev-article) extend visible articles to forward and backward if possible.  The Summary buffer normally displays just a subset of the extant articles; extending the buffer means that if you try to move forward from the last article shown, it looks for later articles that are not shown, and puts them into the buffer so you can move to them.

The variable gnus-auto-select-next defines the behavior of GNUS when there is no unread article in the current newsgroup and a command selecting the next unread article is executed.  If the variable is non-nil, the next newsgroup containing unread articles is selected automatically.

Marking Articles
----------------

GNUS uses single-character marks to indicate the status of an article.

  (a space)
     A newly arrived article.

-
     An article marked as saved.

anything else
     An article marked as read.

Both newly arrived articles and saved articles are considered unread.

The status is displayed at the beginning of each line of the Summary buffer.  Here are some commands for changing these marks:

d
     Mark this line's article as read, then move point to the following line (gnus-summary-mark-as-read-forward).  This and the following similar commands do not select an article; they only move point in the Summary buffer.

u
     Mark this line's article as saved, then move point to the following line (gnus-summary-mark-as-unread-forward).

M-u
     Clear marks on this line's article, then move point to the next line (gnus-summary-clear-mark-forward).  This sets the status to ``newly arrived''.

D

U

M-U
     Analogous to d, u and M-u, except that they move backwards instead of forwards in the Summary buffer.

k
     Mark as read all articles with the same subject as the current article, then select the next unread article (gnus-summary-kill-same-subject-and-select).  Use this when you decide a certain discussion is not interesting.

C-k
     Mark as read all articles with the same subject as the current article (gnus-summary-kill-same-subject).

c
     Mark all newly arrived articles as read; then exit the current newsgroup (gnus-summary-catchup-and-exit).  This does not change the status of articles that are saved.

M-x gnus-summary-catchup-all-and-exit
     Mark all articles (including saved articles) as read, and then exit the current newsgroup.

M-x gnus-summary-catchup
     Mark all newly arrived articles as read, but don't alter saved articles.

M-x gnus-summary-catchup-all
     Mark all articles as read.

x
     Delete summary lines for articles marked as read (gnus-summary-delete-marked-as-read).

X MARKS RET
     Delete headers marked with any of MARKS (gnus-summary-delete-marked-with).

You can make it easier to see the remaining unread articles in the Summary buffer by deleting the lines describing the already read articles.  To do this, use the command x (gnus-summary-delete-marked-as-read).  The command X (gnus-summary-delete-marked-with) deletes headers which have certain specified marks.  Thus, X D - RET deletes all articles marked with D or ----which is to say, all read and saved articles.  (There are no spaces in that command; we inserted spaces for clarity when showing it here.)

Reading Based on Conversation Threads
-------------------------------------

A thread is defined as a set of articles related by cross-reference.  These references make use of header fields References: and In-Reply-To:, which cite the message ID of another article.

Conversations in a newsgroup usually contain several threads under a single subject.  This makes it difficult to know which article follows which without reading references directly.  You can use the thread-based commands to do this automatically.  You can follow threads of conversation, mark entire threads as read, and go up and down thread trees.

The command M-C-t (gnus-summary-toggle-threads) toggles showing conversation threads in Summary mode.  If it is turned on, Summary buffer is displayed in a tree structured form which shows the thread structure.

C-M-t
     Toggle thread-based reading (gnus-summary-toggle-threads).

C-M-s
     Show the thread subtree of the current line (gnus-summary-show-thread).

M-x gnus-summary-show-all-threads
     Show all thread subtrees.

C-M-h
     Hide the thread subtrees of the current line (gnus-summary-hide-thread).

M-x gnus-summary-hide-all-threads
     Hide all thread subtrees.

C-M-f
     Go to the next thread at the same level (gnus-summary-next-thread).

C-M-b
     Go to the previous thread at the same level (gnus-summary-prev-thread).

C-M-d
     Go down to next thread subordinate to the current line. (gnus-summary-down-thread).

C-M-u
     Go up to the parent thread of the current line (gnus-summary-up-thread).

C-M-k
     Mark all articles under current thread as read (gnus-summary-kill-thread).

Thread subtrees can be hidden by using the command C-M-h (gnus-summary-hide-thread), and the hidden subtrees can be shown by using the command C-M-s (gnus-summary-show-thread).

If the variable gnus-thread-hide-killed is non-nil, thread subtrees killed by the command C-M-k (gnus-summary-kill-thread) are hidden automatically.

If you want to hide thread subtrees initially, set the variable gnus-thread-hide-subtree to non-nil.

If you want to enable thread-based reading automatically, set the variable gnus-show-threads to non-nil.

Reading Digest Articles
-----------------------

Digest article is a message containing many messages in digest format.  Since a digest article contains many messages in one article, it is a little bit difficult to read it on a per message basis.  The following commands make it easier to read each message in a digest.

C-c C-n
     Scroll to the next digest message of the current article (gnus-summary-next-digest).

C-c C-p
     Scroll to the previous digest message of the current article (gnus-summary-prev-digest).

C-d
     Read the current digest article using Rmail (gnus-summary-rmail-digest).

The commands C-c C-n and C-c C-p (gnus-summary-next-digest and gnus-summary-prev-digest) scroll a digest article to the next and previous digested message, respectively.  The variable gnus-digest-separator specifies a regexp which separates digested messages.

The command C-d (gnus-summary-rmail-digest) runs Rmail on a digest article and makes it possible to read messages not in digest form using Rmail Mode.  See Rmail (The GNU Emacs Manual), for more information on Rmail Mode.  Use the hook gnus-select-article-hook to run Rmail on digest articles automatically.

Some newsgroups use a digest format that cannot be read using Rmail. In this case, C-d displays Article is not a digest in the echo area.  It is, however, possible to read these incomplete digest articles by modifying the message headers or bodies appropriately using the hook gnus-select-digest-hook.  See Hooks, to modify incomplete digest articles.

If the variable gnus-digest-show-summary is non-nil, a summary of the digest article is also displayed automatically when Rmail is invoked.

Searching Articles
==================

s
     Do incremental search on the current article (gnus-summary-isearch-article).

M-s REGEXP RET
     Search for articles containing a match for REGEXP forward (gnus-summary-search-article-forward).  If REGEXP is empty, the last regexp used is used again.

M-r REGEXP RET
     Search for articles containing a match for REGEXP backward (gnus-summary-search-article-backward).  If REGEXP is empty, the last regexp used is used again.

& FIELD RET REGEXP RET COMMAND RET
     Execute COMMAND on articles containing a match for REGEXP in FIELD of the headers (gnus-summary-execute-command).  If FIELD is empty, the entire article is searched for.

The command s (gnus-summary-isearch-article) does an incremental search on the current article.  This is like switching to the Article buffer and typing C-s except that the Summary buffer remains selected.  The command M-s (gnus-summary-search-article-forward) searches for articles containing a match for regexp.  The search starts from the current point of the current article.  To search backwards, use the command M-r (gnus-summary-search-article-backward).

The command & (gnus-summary-execute-command) interactively reads a header field name, a regular expression, and a valid key sequence.  It then searches for all articles in which that regular expression matches the contents of the specified header field. It executes the key sequence in each such message.

Referencing Articles
====================

^
     Refer to parent of the current article in terms of the References field (gnus-summary-refer-parent-article).  With a prefix argument, go back to the child.

M-^ MESSAGE-ID RET
     Refer to the article by using the MESSAGE-ID (gnus-summary-refer-article).

The command ^ (gnus-summary-refer-parent-article) refers to parent article of the current article.  You can go back to the child article with C-u ^.

^ and M-^ select a new article without moving point in the Summary buffer.  As a consequence, you can use g to go back to the article in which you started the last sequence of ^ and M-^ commands.

You can use the r command in Article mode to follow a reference contained in the text of an article.  See Article Commands.

Saving Articles
===============

GNUS supports four different formats for saving articles: Rmail format, Unix mailbox format, MH folder, and article format.

o
     Save the current article in Rmail format (gnus-summary-save-article).

C-o
     Save the current article in Unix mail file format (gnus-summary-save-in-mail).

| COMMAND RET
     Send contents of the current article through a pipe to a subprocess running COMMAND (gnus-summary-pipe-output).

The variable gnus-default-article-saver controls the formats used by the o command.  By default, it uses Rmail format.  If you set the variable to gnus-summary-save-in-folder, o uses MH format.  If you set it to gnus-summary-save-in-file, o saves the article text verbatim.  The default value is gnus-summary-save-in-rmail.  (All three of these values are commands that you can bind to other keys.)

The variable gnus-article-save-directory specifies the default directory for saving articles.  If you don't set this variable explicitly, it is initialized from the SAVEDIR environment variable, or, as a last resort, ~/News.

Sorting Headers
===============

GNUS can sort the Summary buffer by number, subject, date, or author of articles.

C-c C-s C-n
     Sort the headers by number (gnus-summary-sort-by-number).

C-c C-s C-s
     Sort the headers by subject (gnus-summary-sort-by-subject).

C-c C-s C-d
     Sort the headers by date (gnus-summary-sort-by-date).

C-c C-s C-a
     Sort the headers by author (gnus-summary-sort-by-author).

Sorting is stable, which means that it does not disturb the relative order of articles whose sort keys are equal.  So you can sort on multiple keys by using several sort commands in a row; the last sort command specifies the most powerful sort key.  Thus, C-c C-s C-a C-c C-s C-d C-c C-s C-n sorts by author, and sorts the messages for each author by date, and any messages with the same author and date are sorted by number.

To sort in reverse order, give a prefix argument to the sort commands. It is also possible to sort the headers automatically when a newsgroup is selected using the hook gnus-select-group-hook (see Hooks).

Posting Articles
================

a
     Compose a new article (gnus-summary-post-news).

f
     Compose a followup to the current article (gnus-summary-followup).

F
     Compose a followup, and insert the original article right away (gnus-summary-followup-with-original).

C
     Cancel the current article you posted (gnus-summary-cancel-article).

Type a (gnus-summary-post-news) to post a new article. If the variable gnus-interactive-post is non-nil, this command reads the newsgroup, subject, and distribution interactively. The command f (gnus-summary-followup) fills these values in automatically from those of the selected article; thus, the article you post will be a followup to the selected article.

Type C-c C-y (news-reply-yank-original) to include the original article in the text of the followup.  Unless the original article is quite short, you should edit it to keep only the particular sentences you are directly responding to.

The command F (gnus-summary-followup-with-original) yanks the original article automatically.  If you want to followup to several articles in a single article and want to include them in it, type F for each of them.  You will be asked if a text being edited should be erased.  You should answer n to the question.

If the variable gnus-novice-user is non-nil, your confirmations will be required for composing a new article.

The major mode for composing a new article is News Mode which is borrowed from rnewspost.el.  Type C-h m (describe-mode) to get more help on News Mode.

Suppose you post an article and then later realize that you made a horrible mistake.  You really do not want anyone to see your article. You want the article to be removed from any machines that it may have reached.  The command C (gnus-summary-cancel-article) is intended to do this.  First select the offending article as current, then type C.

Forwarding Messages and Replying To Them
========================================

r
     Reply to the author of the current article (gnus-summary-reply).

R
     Reply to the author of the current article with the original article (gnus-summary-reply-with-original).

C-c C-f
     Forward current message to someone else. (gnus-summary-mail-forward).

m
     Compose a mail message in other window (gnus-summary-mail-other-window).

Use the command r (gnus-summary-reply) to mail a reply to the author of the article.  Type C-c C-y to yank the text of the article you are replying to.  The command R (gnus-summary-reply-with-original) yanks the original article automatically.

See Mail Mode (The GNU Emacs Manual), for information on how to finish sending the reply.

Exiting the Current Newsgroup
=============================

Exiting a newsgroup means going back to the Newsgroup buffer and (normally) saving the changes you have made in the status of articles.

q
     Exit the current newsgroup, and return to Group Mode (gnus-summary-exit).  This updates the startup file to indicate the changes in article status in this newsgroup.

Q
     Exit the current newsgroup without saving information about article status (gnus-summary-quit).  The effect is to cancel all the status changes that took place while you were reading this newsgroup.

C-x C-s
     Save the article status changes, but keep the newsgroup selected (gnus-summary-reselect-current-group).

The command C-x C-s (gnus-summary-reselect-current-group) selects the current newsgroup again after temporary exiting the newsgroup.  If no articles remain unread, all articles in the newsgroup will be selected.  A prefix argument to the command means to select all articles in the newsgroup.