Go to the first, previous, next, last section, table of contents.


The Group Buffer

The group buffer lists all (or parts) of the available groups. It is the first buffer shown when Gnus starts, and will never be killed as long as Gnus is active.

Group Buffer Format

Group Line Specification

The default format of the group buffer is nice and dull, but you can make it as exciting and ugly as you feel like.

Here's a couple of example group lines:

     25: news.announce.newusers
 *    0: alt.fan.andrea-dworkin

Quite simple, huh?

You can see that there are 25 unread articles in `news.announce.newusers'. There are no unread articles, but some ticked articles, in `alt.fan.andrea-dworkin' (see that little asterisk at the beginning of the line?)

You can change that format to whatever you want by fiddling with the gnus-group-line-format variable. This variable works along the lines of a format specification, which is pretty much the same as a printf specifications, for those of you who use (feh!) C. See section Formatting Variables.

The default value that produced those lines above is `%M%S%5y: %(%g%)\n'.

There should always be a colon on the line; the cursor always moves to the colon after performing an operation. Nothing else is required--not even the group name. All displayed text is just window dressing, and is never examined by Gnus. Gnus stores all real information it needs using text properties.

(Note that if you make a really strange, wonderful, spreadsheet-like layout, everybody will believe you are hard at work with the accounting instead of wasting time reading news.)

Here's a list of all available format characters:

`M'
Only marked articles.
`S'
Whether the group is subscribed.
`L'
Level of subscribedness.
`N'
Number of unread articles.
`I'
Number of dormant articles.
`T'
Number of ticked articles.
`R'
Number of read articles.
`t'
Total number of articles.
`y'
Number of unread, unticked, non-dormant articles.
`i'
Number of ticked and dormant articles.
`g'
Full group name.
`G'
Group name.
`D'
Newsgroup description.
`o'
`m' if moderated.
`O'
`(m)' if moderated.
`s'
Select method.
`n'
Select from where.
`z'
A string that looks like `<%s:%n>' if a foreign select method is used.
`P'
Indentation based on the level of the topic (see section Group Topics).
`c'
Short (collapsed) group name. The gnus-group-uncollapsed-levels variable says how many levels to leave at the end of the group name. The default is 1.
`u'
User defined specifier. The next character in the format string should be a letter. GNUS will call the function gnus-user-format-function-`X', where `X' is the letter following `%u'. The function will be passed the current headers as argument. The function should return a string, which will be inserted into the buffer just like information from any other specifier.

All the "number-of" specs will be filled with an asterisk (`*') if no info is available--for instance, if it is a non-activated foreign group, or a bogus (or semi-bogus) native group.

Group Modeline Specification

The mode line can be changed by setting (gnus-group-mode-line-format). It doesn't understand that many format specifiers:

`S'
The native news server.
`M'
The native select method.

Group Highlighting

Highlighting in the group buffer is controlled by the gnus-group-highlight variable. This is an alist with elements that look like (form . face). If form evaluates to something non-nil, the face will be used on the line.

Here's an example value for this variable that might look nice if the background is dark:

(setq gnus-group-highlight
    `(((> unread 200) . 
       ,(custom-face-lookup "Red" nil nil t nil nil))
      ((and (< level 3) (zerop unread)) . 
       ,(custom-face-lookup "SeaGreen" nil nil t nil nil))
      ((< level 3) . 
       ,(custom-face-lookup "SpringGreen" nil nil t nil nil))
      ((zerop unread) . 
       ,(custom-face-lookup "SteelBlue" nil nil t nil nil))
      (t . 
       ,(custom-face-lookup "SkyBlue" nil nil t nil nil))
      ))

Variables that are dynamically bound when the forms are evaluated include:

group
The group name.
unread
The number of unread articles in the group.
method
The select method.
mailp
Whether the group is a mail group.
level
The level of the group.
score
The score of the group.
ticked
The number of ticked articles in the group.
topic
When using the topic minor mode, this variable is bound to the current topic being inserted.

When the forms are evaled, point is at the beginning of the line of the group in question, so you can use many of the normal Gnus functions for snarfing info on the group.

gnus-group-update-hook is called when a group line is changed. It will not be called when gnus-visual is nil. This hook calls gnus-group-highlight-line by default.

Group Maneuvering

All movement commands understand the numeric prefix and will behave as expected, hopefully.

n
Go to the next group that has unread articles (gnus-group-next-unread-group).
p
DEL
Go to the previous group group that has unread articles (gnus-group-prev-unread-group).
N
Go to the next group (gnus-group-next-group).
P
Go to the previous group (gnus-group-prev-group).
M-p
Go to the next unread group on the same level (or lower) (gnus-group-next-unread-group-same-level).
M-n
Go to the previous unread group on the same level (or lower) (gnus-group-prev-unread-group-same-level).

Three commands for jumping to groups:

j
Jump to a group (and make it visible if it isn't already) (gnus-group-jump-to-group). Killed groups can be jumped to, just like living groups.
,
Jump to the unread group with the lowest level (gnus-group-best-unread-group).
.
Jump to the first group with unread articles (gnus-group-first-unread-group).

If gnus-group-goto-unread is nil, all the movement commands will move to the next group, not the next unread group. Even the commands that say they move to the next unread group. The default is t.

Selecting a Group

SPACE
Select the current group, switch to the summary buffer and display the first unread article (gnus-group-read-group). If there are no unread articles in the group, or if you give a non-numerical prefix to this command, Gnus will offer to fetch all the old articles in this group from the server. If you give a numerical prefix N, Gnus will fetch N number of articles. If N is positive, fetch the N newest articles, if N is negative, fetch the abs(N) oldest articles.
RET
Select the current group and switch to the summary buffer (gnus-group-select-group). Takes the same arguments as gnus-group-read-group---the only difference is that this command does not display the first unread article automatically upon group entry.
M-RET
This does the same as the command above, but tries to do it with the minimum amount off fuzz (gnus-group-quick-select-group). No scoring/killing will be performed, there will be no highlights and no expunging. This might be useful if you're in a real hurry and have to enter some humongous group.
M-SPACE
This is yet one more command that does the same as the one above, but this one does it without expunging and hiding dormants (gnus-group-visible-select-group).
c
Mark all unticked articles in this group as read (gnus-group-catchup-current). gnus-group-catchup-group-hook is when catching up a group from the group buffer.
C
Mark all articles in this group, even the ticked ones, as read (gnus-group-catchup-current-all).

The gnus-large-newsgroup variable says what Gnus should consider to be a big group. This is 200 by default. If the group has more unread articles than this, Gnus will query the user before entering the group. The user can then specify how many articles should be fetched from the server. If the user specifies a negative number (-n), the n oldest articles will be fetched. If it is positive, the n articles that have arrived most recently will be fetched.

gnus-auto-select-first control whether any articles are selected automatically when entering a group.

nil
Don't select any articles when entering the group. Just display the full summary buffer.
t
Select the first unread article when entering the group.
best
Select the most high-scored article in the group when entering the group.

If you want to prevent automatic selection in some group (say, in a binary group with Huge articles) you can set this variable to nil in gnus-select-group-hook, which is called when a group is selected.

Subscription Commands

S t
u
Toggle subscription to the current group (gnus-group-unsubscribe-current-group).
S s
U
Prompt for a group to subscribe, and then subscribe it. If it was subscribed already, unsubscribe it instead (gnus-group-unsubscribe-group).
S k
C-k
Kill the current group (gnus-group-kill-group).
S y
C-y
Yank the last killed group (gnus-group-yank-group).
C-x C-t
Transpose two groups (gnus-group-transpose-groups). This isn't really a subscription command, but you can use it instead of a kill-and-yank sequence sometimes.
S w
C-w
Kill all groups in the region (gnus-group-kill-region).
S z
Kill all zombie groups (gnus-group-kill-all-zombies).
S C-k
Kill all groups on a certain level (gnus-group-kill-level). These groups can't be yanked back after killing, so this command should be used with some caution. The only thing where this command comes in really handy is when you have a `.newsrc' with lots of unsubscribed groups that you want to get rid off. S C-k on level 7 will kill off all unsubscribed groups that do not have message numbers in the `.newsrc' file.

Also see section Group Levels.

Group Levels

All groups have a level of subscribedness. For instance, if a group is on level 2, it is more subscribed than a group on level 5. You can ask Gnus to just list groups on a given level or lower (see section Listing Groups), or to just check for new articles in groups on a given level or lower (see section Scanning New Messages).

Remember: The higher the level of the group, the less important it is.

S l
Set the level of the current group. If a numeric prefix is given, the next n groups will have their levels set. The user will be prompted for a level.

Gnus considers groups on between levels 1 and gnus-level-subscribed (inclusive) (default 5) to be subscribed, gnus-level-subscribed (exclusive) and gnus-level-unsubscribed (inclusive) (default 7) to be unsubscribed, gnus-level-zombie to be zombies (walking dead) (default 8) and gnus-level-killed to be killed (default 9), completely dead. Gnus treats subscribed and unsubscribed groups exactly the same, but zombie and killed groups have no information on what articles you have read, etc, stored. This distinction between dead and living groups isn't done because it is nice or clever, it is done purely for reasons of efficiency.

It is recommended that you keep all your mail groups (if any) on quite low levels (eg. 1 or 2).

If you want to play with the level variables, you should show some care. Set them once, and don't touch them ever again. Better yet, don't touch them at all unless you know exactly what you're doing.

Two closely related variables are gnus-level-default-subscribed (default 3) and gnus-level-default-unsubscribed (default 6), which are the levels that new groups will be put on if they are (un)subscribed. These two variables should, of course, be inside the relevant legal ranges.

If gnus-keep-same-level is non-nil, some movement commands will only move to groups that are of the same level (or lower). In particular, going from the last article in one group to the next group will go to the next group of the same level (or lower). This might be handy if you want to read the most important groups before you read the rest.

All groups with a level less than or equal to gnus-group-default-list-level will be listed in the group buffer by default.

If gnus-group-list-inactive-groups is non-nil, non-active groups will be listed along with the unread groups. This variable is t by default. If it is nil, inactive groups won't be listed.

If gnus-group-use-permanent-levels is non-nil, once you give a level prefix to g or l, all subsequent commands will use this level as the "work" level.

Gnus will normally just activate groups that are on level gnus-activate-level or less. If you don't want to activate unsubscribed groups, for instance, you might set this variable to 5.

Group Score

You would normally keep important groups on high levels, but that scheme is somewhat restrictive. Don't you wish you could have Gnus sort the group buffer according to how often you read groups, perhaps? Within reason?

This is what group score is for. You can assign a score to each group. You can then sort the group buffer based on this score. Alternatively, you can sort on score and then level. (Taken together, the level and the score is called the rank of the group. A group that is on level 4 and has a score of 1 has a higher rank than a group on level 5 that has a score of 300. (The level is the most significant part and the score is the least significant part.)

If you want groups you read often to get higher scores than groups you read seldom you can add the gnus-summary-bubble-group function to the gnus-summary-exit-hook hook. This will result (after sorting) in a bubbling sort of action. If you want to see that in action after each summary exit, you can add gnus-group-sort-groups-by-rank or gnus-group-sort-groups-by-score to the same hook, but that will slow things down somewhat.

Marking Groups

If you want to perform some command on several groups, and they appear subsequently in the group buffer, you would normally just give a numerical prefix to the command. Most group commands will then do your bidding on those groups.

However, if the groups are not in sequential order, you can still perform a command on several groups. You simply mark the groups first with the process mark and then execute the command.

#
M m
Set the mark on the current group (gnus-group-mark-group).
M-#
M u
Remove the mark from the current group (gnus-group-unmark-group).
M U
Remove the mark from all groups (gnus-group-unmark-all-groups).
M w
Mark all groups between point and mark (gnus-group-mark-region).
M b
Mark all groups in the buffer (gnus-group-mark-buffer).
M r
Mark all groups that match some regular expression (gnus-group-mark-regexp).

Also see section Process/Prefix.

If you want to execute some command on all groups that have been marked with the process mark, you can use the M-& (gnus-group-universal-argument) command. It will prompt you for the command to be executed.

Foreign Groups

Here are some group mode commands for making and editing general foreign groups, as well as commands to ease the creation of a few special-purpose groups:

G m
Make a new group (gnus-group-make-group). Gnus will prompt you for a name, a method and possibly an address. For an easier way to subscribe to NNTP groups, see section Browse Foreign Server.
G r
Rename the current group to something else (gnus-group-rename-group). This is legal only on some groups -- mail groups mostly. This command might very well be quite slow on some backends.
G e
Enter a buffer where you can edit the select method of the current group (gnus-group-edit-group-method).
G p
Enter a buffer where you can edit the group parameters (gnus-group-edit-group-parameters).
G E
Enter a buffer where you can edit the group info (gnus-group-edit-group).
G d
Make a directory group. You will be prompted for a directory name (gnus-group-make-directory-group).
G h
Make the Gnus help group (gnus-group-make-help-group).
G a
Make a Gnus archive group (gnus-group-make-archive-group). By default a group pointing to the most recent articles will be created (gnus-group-recent-archive-directory), but given a prefix, a full group will be created from from gnus-group-archive-directory.
G k
Make a kiboze group. You will be prompted for a name, for a regexp to match groups to be "included" in the kiboze group, and a series of strings to match on headers (gnus-group-make-kiboze-group). See section Kibozed Groups
G D
Read an arbitrary directory as if with were a newsgroup with the nneething backend (gnus-group-enter-directory).
G f
Make a group based on some file or other (gnus-group-make-doc-group). If you give a prefix to this command, you will be prompted for a file name and a file type. Currently supported types are babyl, mbox, digest, mmdf, news, rnews, clari-briefs, and forward. If you run this command without a prefix, Gnus will guess at the file type.
G DEL
This function will delete the current group (gnus-group-delete-group). If given a prefix, this function will actually delete all the articles in the group, and forcibly remove the group itself from the face of the Earth. Use a prefix only if you are absolutely sure of what you are doing.
G V
Make a new, fresh, empty nnvirtual group (gnus-group-make-empty-virtual).
G v
Add the current group to an nnvirtual group (gnus-group-add-to-virtual). Uses the process/prefix convention.

See section Select Methods for more information on the various select methods.

If the gnus-activate-foreign-newsgroups is a positive number, Gnus will check all foreign groups with this level or lower at startup. This might take quite a while, especially if you subscribe to lots of groups from different NNTP servers.

Group Parameters

Gnus stores all information on a group in a list that is usually known as the group info. This list has from three to six elements. Here's an example info.

("nnml:mail.ding" 3 ((1 . 232) 244 (256 . 270)) ((tick 246 249))
                  (nnml "private") ((to-address . "ding@ifi.uio.no")))

The first element is the group name, as Gnus knows the group, anyway. The second element is the subscription level, which normally is a small integer. The third element is a list of ranges of read articles. The fourth element is a list of lists of article marks of various kinds. The fifth element is the select method (or virtual server, if you like). The sixth element is a list of group parameters, which is what this section is about.

Any of the last three elements may be missing if they are not required. In fact, the vast majority of groups will normally only have the first three elements, which saves quite a lot of cons cells.

The group parameters store information local to a particular group:

to-address
If the group parameter list contains an element that looks like (to-address . "some@where.com"), that address will be used by the backend when doing followups and posts. This is primarily useful in mail groups that represent closed mailing lists--mailing lists where it's expected that everybody that writes to the mailing list is subscribed to it. Since using this parameter ensures that the mail only goes to the mailing list itself, it means that members won't receive two copies of your followups. Using to-address will actually work whether the group is foreign or not. Let's say there's a group on the server that is called `fa.4ad-l'. This is a real newsgroup, but the server has gotten the articles from a mail-to-news gateway. Posting directly to this group is therefore impossible--you have to send mail to the mailing list address instead.
to-list
If the group parameter list has an element that looks like (to-list . "some@where.com"), that address will be used when doing a a in any group. It is totally ignored when doing a followup--except that if it is present in a news group, you'll get mail group semantics when doing f.
broken-reply-to
Elements like (broken-reply-to . t) signals that Reply-To headers in this group are to be ignored. This can be useful if you're reading a mailing list group where the listserv has inserted Reply-To headers that point back to the listserv itself. This is broken behavior. So there!
to-group
If the group parameter list contains an element like (to-group . "some.group.name"), all posts will be sent to that group.
auto-expire
If this symbol is present in the group parameter list, all articles that are read will be marked as expirable. For an alternative approach, see section Expiring Mail.
total-expire
If this symbol is present, all read articles will be put through the expiry process, even if they are not marked as expirable. Use with caution.
expiry-wait
If the group parameter has an element that looks like (expiry-wait . 10), this value will override any nnmail-expiry-wait and nnmail-expiry-wait-function when expiring expirable messages. The value can either be a number of days (not necessarily an integer) or the symbols never or immediate.
score-file
Elements that look like (score-file . "file") will make `file' into the current score file for the group in question. This means that all score commands you issue will end up in that file.
admin-address
When unsubscribing to a mailing list you should never send the unsubscription notice to the mailing list itself. Instead, you'd send messages to the administrative address. This parameter allows you to put the admin address somewhere convenient.
comment
This parameter allows you to enter a arbitrary comment on the group.
(variable form)
You can use the group parameters to set variables local to the group you are entering. Say you want to turn threading off in `news.answers'. You'd then put (gnus-show-threads nil) in the group parameters of that group. gnus-show-threads will be made into a local variable in the summary buffer you enter, and the form nil will be evaled there. This can also be used as a group-specific hook function, if you'd like. If you want to hear a beep when you enter the group `alt.binaries.pictures.furniture', you could put something like (dummy-variable (ding)) in the parameters of that group. dummy-variable will be set to the result of the (ding) form, but who cares?

If you want to change the group info you can use the G E command to enter a buffer where you can edit it.

You usually don't want to edit the entire group info, so you'd be better off using the G p command to just edit the group parameters.

Listing Groups

These commands all list various slices of the groups that are available.

l
A s
List all groups that have unread articles (gnus-group-list-groups). If the numeric prefix is used, this command will list only groups of level ARG and lower. By default, it only lists groups of level five or lower (i.e., just subscribed groups).
L
A u
List all groups, whether they have unread articles or not (gnus-group-list-all-groups). If the numeric prefix is used, this command will list only groups of level ARG and lower. By default, it lists groups of level seven or lower (i.e., just subscribed and unsubscribed groups).
A l
List all unread groups on a specific level (gnus-group-list-level). If given a prefix, also list the groups with no unread articles.
A k
List all killed groups (gnus-group-list-killed). If given a prefix argument, really list all groups that are available, but aren't currently (un)subscribed. This could entail reading the active file from the server.
A z
List all zombie groups (gnus-group-list-zombies).
A m
List all subscribed groups with unread articles that match a regexp (gnus-group-list-matching).
A M
List groups that match a regexp (gnus-group-list-all-matching).
A A
List absolutely all groups that are in the active file(s) of the server(s) you are connected to (gnus-group-list-active). This might very well take quite a while. It might actually be a better idea to do a A m to list all matching, and just give `.' as the thing to match on.
A a
List all groups that have names that match a regexp (gnus-group-apropos).
A d
List all groups that have names or descriptions that match a regexp (gnus-group-description-apropos).

Groups that match the gnus-permanently-visible-groups regexp will always be shown, whether they have unread articles or not. You can also add the visible element to the group parameters in question to get the same effect.

Groups that have just ticked articles in it are normally listed in the group buffer. If gnus-list-groups-with-ticked-articles is nil, these groups will be treated just like totally empty groups. It is t by default.

Sorting Groups

The C-c C-s (gnus-group-sort-groups) command sorts the group buffer according to the function(s) given by the gnus-group-sort-function variable. Available sorting functions include:

gnus-group-sort-by-alphabet
Sort the group names alphabetically. This is the default.
gnus-group-sort-by-level
Sort by group level.
gnus-group-sort-by-score
Sort by group score.
gnus-group-sort-by-rank
Sort by group score and then the group level. The level and the score are, when taken together, the group's rank.
gnus-group-sort-by-unread
Sort by number of unread articles.
gnus-group-sort-by-method
Sort by alphabetically on the select method.

gnus-group-sort-function can also be a list of sorting functions. In that case, the most significant sort key function must be the last one.

There are also a number of commands for sorting directly according to some sorting criteria:

G S a
Sort the group buffer alphabetically by group name (gnus-group-sort-groups-by-alphabet).
G S u
Sort the group buffer by the number of unread articles (gnus-group-sort-groups-by-unread).
G S l
Sort the group buffer by group level (gnus-group-sort-groups-by-level).
G S v
Sort the group buffer by group score (gnus-group-sort-groups-by-score).
G S r
Sort the group buffer by group level (gnus-group-sort-groups-by-rank).
G S m
Sort the group buffer alphabetically by backend name (gnus-group-sort-groups-by-method).

When given a prefix, all these commands will sort in reverse order.

Group Maintenance

b
Find bogus groups and delete them (gnus-group-check-bogus-groups).
F
Find new groups and process them (gnus-find-new-newsgroups). If given a prefix, use the ask-server method to query the server for new groups.
C-c C-x
Run all expirable articles in the current group through the expiry process (if any) (gnus-group-expire-articles).
C-c M-C-x
Run all articles in all groups through the expiry process (gnus-group-expire-all-groups).

Browse Foreign Server

B
You will be queried for a select method and a server name. Gnus will then attempt to contact this server and let you browse the groups there (gnus-group-browse-foreign-server).

A new buffer with a list of available groups will appear. This buffer will be use the gnus-browse-mode. This buffer looks a bit (well, a lot) like a normal group buffer, but with one major difference - you can't enter any of the groups. If you want to read any of the news available on that server, you have to subscribe to the groups you think may be interesting, and then you have to exit this buffer. The new groups will be added to the group buffer, and then you can read them as you would any other group.

Future versions of Gnus may possibly permit reading groups straight from the browse buffer.

Here's a list of keystrokes available in the browse mode:

n
Go to the next group (gnus-group-next-group).
p
Go to the previous group (gnus-group-prev-group).
SPACE
Enter the current group and display the first article (gnus-browse-read-group).
RET
Enter the current group (gnus-browse-select-group).
u
Unsubscribe to the current group, or, as will be the case here, subscribe to it (gnus-browse-unsubscribe-current-group).
l
q
Exit browse mode (gnus-browse-exit).
?
Describe browse mode briefly (well, there's not much to describe, is there) (gnus-browse-describe-briefly).

Exiting Gnus

Yes, Gnus is ex(c)iting.

z
Suspend Gnus (gnus-group-suspend). This doesn't really exit Gnus, but it kills all buffers except the Group buffer. I'm not sure why this is a gain, but then who am I to judge?
q
Quit Gnus (gnus-group-exit).
Q
Quit Gnus without saving any startup files (gnus-group-quit).

gnus-suspend-gnus-hook is called when you suspend Gnus and gnus-exit-gnus-hook is called when you quit Gnus, while gnus-after-exiting-gnus-hook is called as the final item when exiting Gnus.

If you wish to completely unload Gnus and all its adherents, you can use the gnus-unload command. This command is also very handy when trying to customize meta-variables.

Note:

Miss Lisa Cannifax, while sitting in English class, feels her feet go numbly heavy and herself fall into a hazy trance as the boy sitting behind her drew repeated lines with his pencil across the back of her plastic chair.

Group Topics

If you read lots and lots of groups, it might be convenient to group them hierarchically according to topics. You put your Emacs groups over here, your sex groups over there, and the rest (what, two groups or so?) you put in some misc section that you never bother with anyway. You can even group the Emacs sex groups as a sub-topic to either the Emacs groups or the sex groups--or both! Go wild!

To get this fab functionality you simply turn on (ooh!) the gnus-topic minor mode--type t in the group buffer. (This is a toggling command.)

Go ahead, just try it. I'll still be here when you get back. La de dum... Nice tune, that... la la la... What, you're back? Yes, and now press l. There. All your groups are now listed under `misc'. Doesn't that make you feel all warm and fuzzy? Hot and bothered?

If you want this permanently enabled, you should add that minor mode to the hook for the group mode:

(add-hook 'gnus-group-mode-hook 'gnus-topic-mode)

Topic Variables

Now, if you select a topic, if will fold/unfold that topic, which is really neat, I think.

The topic lines themselves are created according to the gnus-topic-line-format variable. See section Formatting Variables. Elements allowed are:

`i'
Indentation.
`n'
Topic name.
`v'
Visibility.
`l'
Level.
`g'
Number of groups in the topic.
`a'
Number of unread articles in the topic.
`A'
Number of unread articles in the topic and all its subtopics.

Each sub-topic (and the groups in the sub-topics) will be indented with gnus-topic-indent-level times the topic level number of spaces. The default is 2.

gnus-topic-mode-hook is called in topic minor mode buffers.

Topic Commands

When the topic minor mode is turned on, a new T submap will be available. In addition, a few of the standard keys change their definitions slightly.

T n
Prompt for a new topic name and create it (gnus-topic-create-topic).
T m
Move the current group to some other topic (gnus-topic-move-group). This command understands the process/prefix convention (see section Process/Prefix).
T c
Copy the current group to some other topic (gnus-topic-copy-group). This command understands the process/prefix convention (see section Process/Prefix).
T D
Remove a group from the current topic (gnus-topic-remove-group). This command understands the process/prefix convention (see section Process/Prefix).
T M
Move all groups that match some regular expression to a topic (gnus-topic-move-matching).
T C
Copy all groups that match some regular expression to a topic (gnus-topic-copy-matching).
T #
Mark all groups in the current topic with the process mark (gnus-topic-mark-topic).
T M-#
Remove the process mark from all groups in the current topic (gnus-topic-unmark-topic).
RET
SPACE
Either select a group or fold a topic (gnus-topic-select-group). When you perform this command on a group, you'll enter the group, as usual. When done on a topic line, the topic will be folded (if it was visible) or unfolded (if it was folded already). So it's basically a toggling command on topics. In addition, if you give a numerical prefix, group on that level (and lower) will be displayed.
T TAB
"Indent" the current topic so that it becomes a sub-topic of the previous topic (gnus-topic-indent). If given a prefix, "un-indent" the topic instead.
C-k
Kill a group or topic (gnus-topic-kill-group).
C-y
Yank the previously killed group or topic (gnus-topic-yank-group). Note that all topics will be yanked before all groups.
T r
Rename a topic (gnus-topic-rename).
T DEL
Delete an empty topic (gnus-topic-delete).
A T
List all groups that Gnus knows about in a topics-ified way (gnus-topic-list-active).

Topic Topology

So, let's have a look at an example group buffer:

Gnus
  Emacs -- I wuw it!
       3: comp.emacs
       2: alt.religion.emacs
    Naughty Emacs
     452: alt.sex.emacs
       0: comp.talk.emacs.recovery
  Misc
       8: comp.binaries.fractals
      13: comp.sources.unix

So, here we have one top-level topic, two topics under that, and one sub-topic under one of the sub-topics. (There is always just one (1) top-level topic). This topology can be expressed as follows:

(("Gnus" visible)
 (("Emacs -- I wuw it!" visible) 
  (("Naughty Emacs" visible)))
 (("Misc" visible)))

This is in fact how the variable gnus-topic-topology would look for the display above. That variable is saved in the `.newsrc.eld' file, and shouldn't be messed with manually--unless you really want to. Since this variable is read from the `.newsrc.eld' file, setting it in any other startup files will have no effect.

This topology shows what topics are sub-topics of what topics (right), and which topics are visible. Two settings are currently allowed---visible and invisible.

Misc Group Stuff

^
Enter the server buffer (gnus-group-enter-server-mode). See section The Server Buffer.
a
Post an article to a group (gnus-group-post-news). The current group name will be used as the default.
m
Mail a message somewhere (gnus-group-mail).

Variables for the group buffer:

gnus-group-mode-hook
gnus-group-mode-hook is called after the group buffer has been created.
gnus-group-prepare-hook
gnus-group-prepare-hook is called after the group buffer is generated. It may be used to modify the buffer in some strange, unnatural way.
gnus-permanently-visible-groups
Groups matching this regexp will always be listed in the group buffer, whether they are empty or not.

Scanning New Messages

g
Check the server(s) for new articles. If the numerical prefix is used, this command will check only groups of level arg and lower (gnus-group-get-new-news). If given a non-numerical prefix, this command will force a total rereading of the active file(s) from the backend(s).
M-g
Check whether new articles have arrived in the current group (gnus-group-get-new-news-this-group). The gnus-goto-next-group-when-activating variable controls whether this command is to move point to the next group or not. It is t by default.
C-c M-g
Activate absolutely all groups (gnus-activate-all-groups).
R
Restart Gnus (gnus-group-restart).

gnus-get-new-news-hook is run just before checking for new news.

gnus-after-getting-new-news-hook is run after checking for new news.

Group Information

M-f
Try to fetch the FAQ for the current group (gnus-group-fetch-faq). Gnus will try to get the FAQ from gnus-group-faq-directory, which is usually a directory on a remote machine. ange-ftp will be used for fetching the file.
D
Describe the current group (gnus-group-describe-group). If given a prefix, force Gnus to re-read the description from the server.
M-d
Describe all groups (gnus-group-describe-all-groups). If given a prefix, force Gnus to re-read the description file from the server.
V
Display current Gnus version numbers (gnus-version).
?
Give a very short help message (gnus-group-describe-briefly).
C-c C-i
Go to the Gnus info node (gnus-info-find-node).

File Commands

r
Read the init file (gnus-init-file, which defaults to `~/.gnus') (gnus-group-read-init-file).
s
Save the `.newsrc.eld' file (and `.newsrc' if wanted) (gnus-group-save-newsrc). If given a prefix, force saving the file(s) whether Gnus thinks it is necessary or not.


Go to the first, previous, next, last section, table of contents.