[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2. 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.

2.1 Group Buffer Format  Information listed and how you can change it.
2.2 Group Maneuvering  Commands for moving in the group buffer.
2.3 Selecting a Group  Actually reading news.
2.4 Subscription Commands  Unsubscribing, killing, subscribing.
2.5 Group Data  Changing the info for a group.
2.6 Group Levels  Levels? What are those, then?
2.7 Group Score  A mechanism for finding out what groups you like.
2.8 Marking Groups  You can mark groups for later processing.
2.9 Foreign Groups  Creating and editing groups.
2.10 Group Parameters  Each group may have different parameters set.
2.11 Listing Groups  Gnus can list various subsets of the groups.
2.12 Sorting Groups  Re-arrange the group order.
2.13 Group Maintenance  Maintaining a tidy `.newsrc' file.
2.14 Browse Foreign Server  You can browse a server. See what it has to offer.
2.15 Exiting Gnus  Stop reading news and get some work done.
2.16 Group Topics  A folding group mode divided into topics.
2.17 Misc Group Stuff  Other stuff that you can to do.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.1 Group Buffer Format

2.1.1 Group Line Specification  Deciding how the group buffer is to look.
2.1.2 Group Mode Line Specification  The group buffer mode line.
2.1.3 Group Highlighting  Having nice colors in the group buffer.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.1.1 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 8.4 Formatting Variables.

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

There should always be a colon on the line; the cursor always moves to the colon after performing an operation. See section 8.4.6 Positioning Point. 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:

An asterisk if the group only has marked articles.

Whether the group is subscribed.

Level of subscribedness.

Number of unread articles.

Number of dormant articles.

Number of ticked articles.

Number of read articles.

Number of unseen articles.

Estimated total number of articles. (This is really max-number minus min-number plus 1.)

Gnus uses this estimation because the NNTP protocol provides efficient access to max-number and min-number but getting the true unread message count is not possible efficiently. For hysterical raisins, even the mail back ends, where the true number of unread messages might be available efficiently, use the same limited interface. To remove this restriction from Gnus means that the back end interface has to be changed, which is not an easy job. If you want to work on this, please contact the Gnus mailing list.

Number of unread, unticked, non-dormant articles.

Number of ticked and dormant articles.

Full group name.

Group name.

Group comment (see section 2.10 Group Parameters) or group name if there is no comment element in the group parameters.

Newsgroup description. You need to read the group descriptions before these will appear, and to do that, you either have to set gnus-read-active-file or use the group buffer M-d command.

`m' if moderated.

`(m)' if moderated.

Select method.

If the summary buffer for the group is open or not.

Select from where.

A string that looks like `<%s:%n>' if a foreign select method is used.

Indentation based on the level of the topic (see section 2.16 Group Topics).

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--this will mean that group names like `gnu.emacs.gnus' will be shortened to `g.e.gnus'.

`%' (gnus-new-mail-mark) if there has arrived new mail to the group lately.

`#' (gnus-process-mark) if the group is process marked.

A string that says when you last read the group (see section 2.17.3 Group Timestamp).

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 a single dummy parameter 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 native group.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.1.2 Group Mode Line Specification

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

The native news server.
The native select method.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.1.3 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:

(cond (window-system
       (setq custom-background-mode 'light)
       (defface my-group-face-1
         '((t (:foreground "Red" :bold t))) "First group face")
       (defface my-group-face-2
         '((t (:foreground "DarkSeaGreen4" :bold t)))
         "Second group face")
       (defface my-group-face-3
         '((t (:foreground "Green4" :bold t))) "Third group face")
       (defface my-group-face-4
         '((t (:foreground "SteelBlue" :bold t))) "Fourth group face")
       (defface my-group-face-5
         '((t (:foreground "Blue" :bold t))) "Fifth group face")))

(setq gnus-group-highlight
      '(((> unread 200) . my-group-face-1)
        ((and (< level 3) (zerop unread)) . my-group-face-2)
        ((< level 3) . my-group-face-3)
        ((zerop unread) . my-group-face-4)
        (t . my-group-face-5)))

Also see section 8.6 Faces and Fonts.

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

The group name.
The number of unread articles in the group.
The select method.
Whether the group is a mail group.
The level of the group.
The score of the group.
The number of ticked articles in the group.
The total number of articles in the group. Or rather, max-number minus min-number plus one.
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.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.2 Group Maneuvering

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

Go to the next group that has unread articles (gnus-group-next-unread-group).

Go to the previous group that has unread articles (gnus-group-prev-unread-group).

Go to the next group (gnus-group-next-group).

Go to the previous group (gnus-group-prev-group).

Go to the next unread group on the same (or lower) level (gnus-group-next-unread-group-same-level).

Go to the previous unread group on the same (or lower) level (gnus-group-prev-unread-group-same-level).

Three commands for jumping to groups:

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.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.3 Selecting a Group

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, n determines the number of articles Gnus will fetch. If n is positive, Gnus fetches the n newest articles, if n is negative, Gnus fetches the abs(n) oldest articles.

Thus, SPC enters the group normally, C-u SPC offers old articles, C-u 4 2 SPC fetches the 42 newest articles, and C-u - 4 2 SPC fetches the 42 oldest ones.

When you are in the group (in the Summary buffer), you can type M-g to fetch new articles, or C-u M-g to also show the old ones.

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.

This does the same as the command above, but tries to do it with the minimum amount of 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. If you give a 0 prefix to this command (i.e., 0 M-RET), Gnus won't even generate the summary buffer, which is useful if you want to toggle threading before generating the summary buffer (see section 3.26.3 Summary Generation Commands).

This is yet one more command that does the same as the RET command, but this one does it without expunging and hiding dormants (gnus-group-visible-select-group).

Finally, this command selects the current group ephemerally without doing any processing of its contents (gnus-group-select-group-ephemerally). Even threading has been turned off. Everything you do in the group after selecting it in this manner will have no permanent effects.

The gnus-large-newsgroup variable says what Gnus should consider to be a big group. If it is nil, no groups are considered big. The default value is 200. If the group has more (unread and/or ticked) 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-large-ephemeral-newsgroup is the same as gnus-large-newsgroup, but is only used for ephemeral newsgroups.

If gnus-auto-select-first is non-nil, select an article automatically when entering a group with the SPACE command. Which article this is is controlled by the gnus-auto-select-subject variable. Valid values for this variable is:

Place point on the subject line of the first unread article.

Place point on the subject line of the first article.

Place point on the subject line of the first unseen article.

Place point on the subject line of the first unseen article, and if there is no such article, place point on the subject line of the first unread article.

Place point on the subject line of the highest-scored unread article.

This variable can also be a function. In that case, that function will be called to place point on a subject line.

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

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.4 Subscription Commands

S t
Toggle subscription to the current group (gnus-group-unsubscribe-current-group).

S s
Prompt for a group to subscribe, and then subscribe it. If it was subscribed already, unsubscribe it instead (gnus-group-unsubscribe-group).

S k
Kill the current group (gnus-group-kill-group).

S 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
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 time 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 2.6 Group Levels.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.5 Group Data

Mark all unticked articles in this group as read (gnus-group-catchup-current). gnus-group-catchup-group-hook is called when catching up a group from the group buffer.

Mark all articles in this group, even the ticked ones, as read (gnus-group-catchup-current-all).

Clear the data from the current group--nix out marks and the list of read articles (gnus-group-clear-data).

M-x gnus-group-clear-data-on-native-groups
If you have switched from one NNTP server to another, all your marks and read ranges have become worthless. You can use this command to clear out all data that you have on your native groups. Use with caution.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.6 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 2.11 Listing Groups), or to just check for new articles in groups on a given level or lower (see section 2.17.1 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 from levels 1 to 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 (completely dead) (default 9). 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 (e.g. 1 or 2).

Maybe the following description of the default behavior of Gnus helps to understand what these levels are all about. By default, Gnus shows you subscribed nonempty groups, but by hitting L you can have it show empty subscribed groups and unsubscribed groups, too. Type l to go back to showing nonempty subscribed groups again. Thus, unsubscribed groups are hidden, in a way.

Zombie and killed groups are similar to unsubscribed groups in that they are hidden by default. But they are different from subscribed and unsubscribed groups in that Gnus doesn't ask the news server for information (number of messages, number of unread messages) on zombie and killed groups. Normally, you use C-k to kill the groups you aren't interested in. If most groups are killed, Gnus is faster.

Why does Gnus distinguish between zombie and killed groups? Well, when a new group arrives on the server, Gnus by default makes it a zombie group. This means that you are normally not bothered with new groups, but you can type A z to get a list of all new groups. Subscribe the ones you like and kill the ones you don't want. (A k shows a list of killed groups.)

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 valid ranges.

If gnus-keep-same-level is non-nil, some movement commands will only move to groups 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.

If this variable is best, Gnus will make the next newsgroup the one with the best level.

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 (i. e., query the server about) groups 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. The default is 6.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.7 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 have Gnus assign a score to each group through the mechanism described below. 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.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.8 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 u
Remove the mark from the current group (gnus-group-unmark-group).

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 8.1 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.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.9 Foreign Groups

Below 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. All these commands insert the newly created groups under point---gnus-subscribe-newsgroup-method is not consulted.

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 2.14 Browse Foreign Server).

Make an ephemeral group (gnus-group-read-ephemeral-group). Gnus will prompt you for a name, a method and an address.

G r
Rename the current group to something else (gnus-group-rename-group). This is valid only on some groups--mail groups mostly. This command might very well be quite slow on some back ends.

G c
Customize the group parameters (gnus-group-customize).

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).

Enter a buffer where you can edit the group info (gnus-group-edit-group).

G d
Make a directory group (see section 6.6.1 Directory Groups). 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 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 6.7.2 Kibozed Groups.

Read an arbitrary directory as if it were a newsgroup with the nneething back end (gnus-group-enter-directory). See section 6.6.2 Anything Groups.

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 mbox, babyl, digest, news, rnews, mmdf, forward, rfc934, rfc822-forward, mime-parts, standard-digest, slack-digest, clari-briefs, nsmail, outlook, oe-dbx, and mailman. If you run this command without a prefix, Gnus will guess at the file type. See section 6.6.3 Document Groups.

G u
Create one of the groups mentioned in gnus-useful-groups (gnus-group-make-useful-group).

G w
Make an ephemeral group based on a web search (gnus-group-make-web-group). If you give a prefix to this command, make a solid group instead. You will be prompted for the search engine type and the search string. Valid search engine types include google, dejanews, and gmane. See section 6.4.2 Web Searches.

If you use the google search engine, you can limit the search to a particular group by using a match string like `shaving group:alt.sysadmin.recovery'.

Make a group based on an RSS feed (gnus-group-make-rss-group). You will be prompted for an URL. See section 6.4.6 RSS.

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. This command can't be used on read-only groups (like nntp groups), though.

Make a new, fresh, empty nnvirtual group (gnus-group-make-empty-virtual). See section 6.7.1 Virtual Groups.

G v
Add the current group to an nnvirtual group (gnus-group-add-to-virtual). Uses the process/prefix convention.

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

If 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. Also see section 2.6 Group Levels; gnus-activate-level also affects activation of foreign newsgroups.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.10 Group Parameters

The group parameters store information local to a particular group. Here's an example group parameter list:

((to-address . "ding@gnus.org")
 (auto-expire . t))

We see that each element consists of a "dotted pair"---the thing before the dot is the key, while the thing after the dot is the value. All the parameters have this form except local variable specs, which are not dotted pairs, but proper lists.

Some parameters have correspondent customizable variables, each of which is an alist of regexps and values.

The following group parameters can be used:

Address used by when doing followups and new posts.

(to-address . "some@where.com")

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.

See also gnus-parameter-to-address-alist.

Address used when doing a in that group.

(to-list . "some@where.com")

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.

If you do an a command in a mail group and you have neither a to-list group parameter nor a to-address group parameter, then a to-list group parameter will be added automatically upon sending the message if gnus-add-to-list is set to t.

If this variable is set, gnus-mailing-list-mode is turned on when entering summary buffer.

See also gnus-parameter-to-list-alist.

If this parameter is set to t, Gnus will consider the to-address and to-list parameters for this group as addresses of mailing lists you are subscribed to. Giving Gnus this information is (only) a first step in getting it to generate correct Mail-Followup-To headers for your posts to these lists. The second step is to put the following in your `.gnus.el'

(setq message-subscribed-address-functions

See section `Mailing Lists' in The Message Manual, for a complete treatment of available MFT support.

If the group parameter list has the element (visible . t), that group will always be visible in the Group buffer, regardless of whether it has any unread articles.

This parameter cannot be set via gnus-parameters. See gnus-permanently-visible-groups as an alternative.

Elements like (broken-reply-to . t) signals that Reply-To headers in this group are to be ignored, and for the header to be hidden if reply-to is part of gnus-boring-article-headers. 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. That is broken behavior. So there!

Elements like (to-group . "some.group.name") means that all posts in that group will be sent to some.group.name.

If you have (newsgroup . t) in the group parameter list, Gnus will treat all responses as if they were responses to news articles. This can be useful if you have a mail group that's really a mirror of a news group.

If (gcc-self . t) is present in the group parameter list, newly composed messages will be Gcc'd to the current group. If (gcc-self . none) is present, no Gcc: header will be generated, if (gcc-self . "string") is present, this string will be inserted literally as a gcc header. This parameter takes precedence over any default Gcc rules as described later (see section 5.5 Archived Messages).

Caveat: Adding (gcc-self . t) to the parameter list of nntp groups (or the like) isn't valid. An nntp server doesn't accept articles.

If the group parameter has an element that looks like (auto-expire . t), all articles read will be marked as expirable. For an alternative approach, see section 6.3.9 Expiring Mail.

See also gnus-auto-expirable-newsgroups.

If the group parameter has an element that looks like (total-expire . t), all read articles will be put through the expiry process, even if they are not marked as expirable. Use with caution. Unread, ticked and dormant articles are not eligible for expiry.

See also gnus-total-expirable-newsgroups.

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 (see section 6.3.9 Expiring Mail) when expiring expirable messages. The value can either be a number of days (not necessarily an integer) or the symbols never or immediate.

Where expired messages end up. This parameter overrides nnmail-expiry-target.

Elements that look like (score-file . "file") will make `file' into the current score file for the group in question. All interactive score entries will be put into this file.

Elements that look like (adapt-file . "file") will make `file' into the current adaptive file for the group in question. All adaptive score entries will be put into this file.

When unsubscribing from 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.

Elements that look like (display . MODE) say which articles to display on entering the group. Valid values are:

Display all articles, both read and unread.

an integer
Display the last integer articles in the group. This is the same as entering the group with C-u integer.

Display the default visible articles, which normally includes unread and ticked articles.

an array
Display articles that satisfy a predicate.

Here are some examples:

Display only unread articles.

[not expire]
Display everything except expirable articles.

[and (not reply) (not expire)]
Display everything except expirable and articles you've already responded to.

The available operators are not, and and or. Predicates include tick, unsend, undownload, unread, dormant, expire, reply, killed, bookmark, score, save, cache, forward, unseen and recent.

The display parameter works by limiting the summary buffer to the subset specified. You can pop the limit by using the / w command (see section 3.8 Limiting).

Elements that look like (comment . "This is a comment") are arbitrary comments on the group. You can display comments in the group line (see section 2.1.1 Group Line Specification).

Elements that look like (charset . iso-8859-1) will make iso-8859-1 the default charset; that is, the charset that will be used for all articles that do not specify a charset.

See also gnus-group-charset-alist.

Elements that look like (ignored-charsets x-unknown iso-8859-1) will make iso-8859-1 and x-unknown ignored; that is, the default charset will be used for decoding articles.

See also gnus-group-ignored-charsets-alist.

You can store additional posting style information for this group here (see section 5.6 Posting Styles). The format is that of an entry in the gnus-posting-styles alist, except that there's no regexp matching the group name (of course). Style elements in this group parameter will take precedence over the ones found in gnus-posting-styles.

For instance, if you want a funky name and signature in this group only, instead of hacking gnus-posting-styles, you could put something like this in the group parameters:

  (name "Funky Name")
  ("X-My-Header" "Funky Value")
  (signature "Funky Signature"))

If it is set, the value is used as the method for posting message instead of gnus-post-method.

An item like (banner . regexp) causes any part of an article that matches the regular expression regexp to be stripped. Instead of regexp, you can also use the symbol signature which strips the last signature or any of the elements of the alist gnus-article-banner-alist.

This parameter contains a Sieve test that should match incoming mail that should be placed in this group. From this group parameter, a Sieve `IF' control structure is generated, having the test as the condition and `fileinto "group.name";' as the body.

For example, if the `INBOX.list.sieve' group has the (sieve address "sender" "sieve-admin@extundo.com") group parameter, when translating the group parameter into a Sieve script (see section 2.17.5 Sieve Commands) the following Sieve code is generated:

if address \"sender\" \"sieve-admin@extundo.com\" {
        fileinto \"INBOX.list.sieve\";

The Sieve language is described in RFC 3028. See section `Top' in Emacs Sieve.

(agent parameters)
If the agent has been enabled, you can set any of the its parameters to control the behavior of the agent in individual groups. See Agent Parameters in Category Syntax. Most users will choose to set agent parameters in either an agent category or group topic to minimize the configuration effort.

(variable form)
You can use the group parameters to set variables local to the group you are entering. If you want to turn threading off in `news.answers', you could 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.

Note that this feature sets the variable locally to the summary buffer. But some variables are evaluated in the article buffer, or in the message buffer (of a reply or followup or otherwise newly created message). As a workaround, it might help to add the variable in question to gnus-newsgroup-variables. See section 3.26 Various Summary Stuff. So if you want to set message-from-style via the group parameters, then you may need the following statement elsewhere in your `~/.gnus' file:

(add-to-list 'gnus-newsgroup-variables 'message-from-style)

A use for this feature is to remove a mailing list identifier tag in the subject fields of articles. E.g. if the news group


has the tag `DOC-BOOK-APPS:' in the subject of all articles, this tag can be removed from the article subjects in the summary buffer for the group by putting (gnus-list-identifiers "DOCBOOK-APPS:") into the group parameters for the group.

This can also be used as a group-specific hook function. If you want to hear a beep when you enter a group, you could put something like (dummy-variable (ding)) in the parameters of that group. dummy-variable will be set to the (meaningless) result of the (ding) form.

Alternatively, since the VARIABLE becomes local to the group, this pattern can be used to temporarily change a hook. For example, if the following is added to a group parameter

  '(lambda nil (local-set-key "d" (local-key-binding "n"))))

when the group is entered, the 'd' key will not mark the article as expired.

Use the G p or the G c command to edit group parameters of a group. (G p presents you with a Lisp-based interface, G c presents you with a Customize-like interface. The latter helps avoid silly Lisp errors.) You might also be interested in reading about topic parameters (see section 2.16.5 Topic Parameters).

Group parameters can be set via the gnus-parameters variable too. But some variables, such as visible, have no effect (For this case see gnus-permanently-visible-groups as an alternative.). For example:

(setq gnus-parameters
         (gnus-show-threads nil)
         (gnus-use-scoring nil)
          "%U%R%z%I%(%[%d:%ub%-23,23f%]%) %s\n")
         (gcc-self . t)
         (display . all))

         (to-group . "\\1"))

         (gnus-use-scoring  t))

         (total-expire . t)
         (broken-reply-to . t))))

String value of parameters will be subjected to regexp substitution, as the to-group example shows.

By default, whether comparing the group name and one of those regexps specified in gnus-parameters is done in a case-sensitive manner or a case-insensitive manner depends on the value of case-fold-search at the time when the comparison is done. The value of case-fold-search is typically t; it means, for example, the element ("INBOX\\.FOO" (total-expire . t)) might be applied to both the `INBOX.FOO' group and the `INBOX.foo' group. If you want to make those regexps always case-sensitive, set the value of the gnus-parameters-case-fold-search variable to nil. Otherwise, set it to t if you want to compare them always in a case-insensitive manner.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.11 Listing Groups

These commands all list various slices of the groups available.

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 (i.e., gnus-group-default-list-level) or lower (i.e., just subscribed groups).

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 unread, subscribed groups with names that match a regexp (gnus-group-list-matching).

List groups that match a regexp (gnus-group-list-all-matching).

List absolutely all groups 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. Also note that this command may list groups that don't exist (yet)---these will be listed as if they were killed groups. Take the output with some grains of salt.

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).

A c
List all groups with cached articles (gnus-group-list-cached).

A ?
List all groups with dormant articles (gnus-group-list-dormant).

A /
List groups limited within the current selection (gnus-group-list-limit).

A f
Flush groups from the current selection (gnus-group-list-flush).

A p
List groups plus the current selection (gnus-group-list-plus).

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.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.12 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:

Sort the group names alphabetically. This is the default.

Sort the group alphabetically on the real (unprefixed) group names.

Sort by group level.

Sort by group score. See section 2.7 Group Score.

Sort by group score and then the group level. The level and the score are, when taken together, the group's rank. See section 2.7 Group Score.

Sort by number of unread articles.

Sort alphabetically on the select method.

Sort alphabetically on the Gnus server name.

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). See section 2.7 Group Score.

G S r
Sort the group buffer by group rank (gnus-group-sort-groups-by-rank). See section 2.7 Group Score.

G S m
Sort the group buffer alphabetically by back end name

G S n
Sort the group buffer alphabetically by real (unprefixed) group name (gnus-group-sort-groups-by-real-name).

All the commands below obey the process/prefix convention (see section 8.1 Process/Prefix).

When given a symbolic prefix (see section 8.3 Symbolic Prefixes), all these commands will sort in reverse order.

You can also sort a subset of the groups:

G P a
Sort the groups alphabetically by group name (gnus-group-sort-selected-groups-by-alphabet).

G P u
Sort the groups by the number of unread articles (gnus-group-sort-selected-groups-by-unread).

G P l
Sort the groups by group level (gnus-group-sort-selected-groups-by-level).

G P v
Sort the groups by group score (gnus-group-sort-selected-groups-by-score). See section 2.7 Group Score.

G P r
Sort the groups by group rank (gnus-group-sort-selected-groups-by-rank). See section 2.7 Group Score.

G P m
Sort the groups alphabetically by back end name

G P n
Sort the groups alphabetically by real (unprefixed) group name (gnus-group-sort-selected-groups-by-real-name).

G P s
Sort the groups according to gnus-group-sort-function.

And finally, note that you can use C-k and C-y to manually move groups around.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.13 Group Maintenance

Find bogus groups and delete them (gnus-group-check-bogus-groups).

Find new groups and process them (gnus-group-find-new-groups). With 1 C-u, use the ask-server method to query the server for new groups. With 2 C-u's, use most complete method possible to query the server for new groups, and subscribe the new groups as zombies.

C-c C-x
Run all expirable articles in the current group through the expiry process (if any) (gnus-group-expire-articles). That is, delete all expirable articles in the group that have been around for a while. (see section 6.3.9 Expiring Mail).

C-c C-M-x
Run all expirable articles in all groups through the expiry process (gnus-group-expire-all-groups).

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.14 Browse Foreign Server

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 use the gnus-browse-mode. This buffer looks a bit (well, a lot) like a normal group buffer.

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

Go to the next group (gnus-group-next-group).

Go to the previous group (gnus-group-prev-group).

Enter the current group and display the first article (gnus-browse-read-group).

Enter the current group (gnus-browse-select-group).

Unsubscribe to the current group, or, as will be the case here, subscribe to it (gnus-browse-unsubscribe-current-group).

Exit browse mode (gnus-browse-exit).

Describe the current group (gnus-browse-describe-group).

Describe browse mode briefly (well, there's not much to describe, is there) (gnus-browse-describe-briefly).

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.15 Exiting Gnus

Yes, Gnus is ex(c)iting.

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?

Quit Gnus (gnus-group-exit).

Quit Gnus without saving the `.newsrc' files (gnus-group-quit). The dribble file will be saved, though (see section 1.8 Auto Save).

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.


Miss Lisa Cannifax, while sitting in English class, felt 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.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.16 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!

Here's an example:

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

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. Put the following line in your `~/.gnus.el' file:

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

2.16.1 Topic Commands  Interactive E-Z commands.
2.16.2 Topic Variables  How to customize the topics the Lisp Way.
2.16.3 Topic Sorting  Sorting each topic individually.
2.16.4 Topic Topology  A map of the world.
2.16.5 Topic Parameters  Parameters that apply to all groups in a topic.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.16.1 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.

In general, the following kinds of operations are possible on topics. First of all, you want to create topics. Secondly, you want to put groups in topics and to move them around until you have an order you like. The third kind of operation is to show/hide parts of the whole shebang. You might want to hide a topic including its subtopics and groups, to get a better overview of the other groups.

Here is a list of the basic keys that you might need to set up topics the way you like.

T n
Prompt for a new topic name and create it (gnus-topic-create-topic).

"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.

"Un-indent" the current topic so that it becomes a sub-topic of the parent of its current parent (gnus-topic-unindent).

The following two keys can be used to move groups and topics around. They work like the well-known cut and paste. C-k is like cut and C-y is like paste. Of course, this being Emacs, we use the terms kill and yank rather than cut and paste.

Kill a group or topic (gnus-topic-kill-group). All groups in the topic will be removed along with the topic.

Yank the previously killed group or topic (gnus-topic-yank-group). Note that all topics will be yanked before all groups.

So, to move a topic to the beginning of the list of topics, just hit C-k on it. This is like the "cut" part of cut and paste. Then, move the cursor to the beginning of the buffer (just below the "Gnus" topic) and hit C-y. This is like the "paste" part of cut and paste. Like I said -- E-Z.

You can use C-k and C-y on groups as well as on topics. So you can move topics around as well as groups.

After setting up the topics the way you like them, you might wish to hide a topic, or to show it again. That's why we have the following key.

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.

Now for a list of other commands, in no particular order.

T m
Move the current group to some other topic (gnus-topic-move-group). This command uses the process/prefix convention (see section 8.1 Process/Prefix).

T j
Go to a topic (gnus-topic-jump-to-topic).

T c
Copy the current group to some other topic (gnus-topic-copy-group). This command uses the process/prefix convention (see section 8.1 Process/Prefix).

T h
Hide the current topic (gnus-topic-hide-topic). If given a prefix, hide the topic permanently.

T s
Show the current topic (gnus-topic-show-topic). If given a prefix, show the topic permanently.

Remove a group from the current topic (gnus-topic-remove-group). This command is mainly useful if you have the same group in several topics and wish to remove it from one of the topics. You may also remove a group from all topics, but in that case, Gnus will add it to the root topic the next time you start Gnus. In fact, all new groups (which, naturally, don't belong to any topic) will show up in the root topic.

This command uses the process/prefix convention (see section 8.1 Process/Prefix).

Move all groups that match some regular expression to a topic (gnus-topic-move-matching).

Copy all groups that match some regular expression to a topic (gnus-topic-copy-matching).

Toggle hiding empty topics (gnus-topic-toggle-display-empty-topics).

T #
Mark all groups in the current topic with the process mark (gnus-topic-mark-topic). This command works recursively on sub-topics unless given a prefix.

T M-#
Remove the process mark from all groups in the current topic (gnus-topic-unmark-topic). This command works recursively on sub-topics unless given a prefix.

C-c C-x
Run all expirable articles in the current group or topic through the expiry process (if any) (gnus-topic-expire-articles). (see section 6.3.9 Expiring Mail).

T r
Rename a topic (gnus-topic-rename).

Delete an empty topic (gnus-topic-delete).

List all groups that Gnus knows about in a topics-ified way (gnus-topic-list-active).

T M-n
Go to the next topic (gnus-topic-goto-next-topic).

T M-p
Go to the next topic (gnus-topic-goto-previous-topic).

G p
Edit the topic parameters (gnus-topic-edit-parameters). See section 2.16.5 Topic Parameters.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.16.2 Topic Variables

The previous section told you how to tell Gnus which topics to display. This section explains how to tell Gnus what to display about each topic.

The topic lines themselves are created according to the gnus-topic-line-format variable (see section 8.4 Formatting Variables). Valid elements are:

Topic name.
Number of groups in the topic.
Number of unread articles in the topic.
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.

The gnus-topic-display-empty-topics says whether to display even topics that have no unread articles in them. The default is t.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.16.3 Topic Sorting

You can sort the groups in each topic individually with the following commands:

T S a
Sort the current topic alphabetically by group name (gnus-topic-sort-groups-by-alphabet).

T S u
Sort the current topic by the number of unread articles (gnus-topic-sort-groups-by-unread).

T S l
Sort the current topic by group level (gnus-topic-sort-groups-by-level).

T S v
Sort the current topic by group score (gnus-topic-sort-groups-by-score). See section 2.7 Group Score.

T S r
Sort the current topic by group rank (gnus-topic-sort-groups-by-rank). See section 2.7 Group Score.

T S m
Sort the current topic alphabetically by back end name (gnus-topic-sort-groups-by-method).

T S e
Sort the current topic alphabetically by server name (gnus-topic-sort-groups-by-server).

T S s
Sort the current topic according to the function(s) given by the gnus-group-sort-function variable (gnus-topic-sort-groups).

When given a prefix argument, all these commands will sort in reverse order. See section 2.12 Sorting Groups, for more information about group sorting.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.16.4 Topic Topology

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

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

So, here we have one top-level topic (`Gnus'), 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.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.16.5 Topic Parameters

All groups in a topic will inherit group parameters from the parent (and ancestor) topic parameters. All valid group parameters are valid topic parameters (see section 2.10 Group Parameters). When the agent is enabled, all agent parameters (See Agent Parameters in Category Syntax) are also valid topic parameters.

In addition, the following parameters are only valid as topic parameters:

When subscribing new groups by topic (see section 1.5.2 Subscription Methods), the subscribe topic parameter says what groups go in what topic. Its value should be a regexp to match the groups that should go in that topic.

When subscribing new groups by topic (see the subscribe parameter), the group will be subscribed with the level specified in the subscribe-level instead of gnus-level-default-subscribed.

Group parameters (of course) override topic parameters, and topic parameters in sub-topics override topic parameters in super-topics. You know. Normal inheritance rules. (Rules is here a noun, not a verb, although you may feel free to disagree with me here.)

     3: comp.emacs
     2: alt.religion.emacs
   452: alt.sex.emacs
     452: alt.sex.emacs
       0: comp.talk.emacs.recovery
     8: comp.binaries.fractals
    13: comp.sources.unix
   452: alt.sex.emacs

The `Emacs' topic has the topic parameter (score-file . "emacs.SCORE"); the `Relief' topic has the topic parameter (score-file . "relief.SCORE"); and the `Misc' topic has the topic parameter (score-file . "emacs.SCORE"). In addition,
`alt.religion.emacs' has the group parameter (score-file . "religion.SCORE").

Now, when you enter `alt.sex.emacs' in the `Relief' topic, you will get the `relief.SCORE' home score file. If you enter the same group in the `Emacs' topic, you'll get the `emacs.SCORE' home score file. If you enter the group `alt.religion.emacs', you'll get the `religion.SCORE' home score file.

This seems rather simple and self-evident, doesn't it? Well, yes. But there are some problems, especially with the total-expiry parameter. Say you have a mail group in two topics; one with total-expiry and one without. What happens when you do M-x gnus-expire-all-expirable-groups? Gnus has no way of telling which one of these topics you mean to expire articles from, so anything may happen. In fact, I hereby declare that it is undefined what happens. You just have to be careful if you do stuff like that.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.17 Misc Group Stuff

2.17.1 Scanning New Messages  Asking Gnus to see whether new messages have arrived.
2.17.2 Group Information  Information and help on groups and Gnus.
2.17.3 Group Timestamp  Making Gnus keep track of when you last read a group.
2.17.4 File Commands  Reading and writing the Gnus files.
2.17.5 Sieve Commands  Managing Sieve scripts.

The key v is reserved for users. You can bind it key to some function or better use it as a prefix key. For example:

(define-key gnus-group-mode-map (kbd "v j d")
  (lambda ()
    (gnus-group-jump-to-group "nndraft:drafts")))

On keys reserved for users in Emacs and on keybindings in general See section `Keymaps' in The Emacs Editor.

Enter the server buffer (gnus-group-enter-server-mode). See section 6.1 Server Buffer.

Start composing a message (a news by default) (gnus-group-post-news). If given a prefix, post to the group under the point. If the prefix is 1, prompt for a group to post to. Contrary to what the name of this function suggests, the prepared article might be a mail instead of a news, if a mail group is specified with the prefix argument. See section 5. Composing Messages.

Mail a message somewhere (gnus-group-mail). If given a prefix, use the posting style of the group under the point. If the prefix is 1, prompt for a group name to find the posting style. See section 5. Composing Messages.

Start composing a news (gnus-group-news). If given a prefix, post to the group under the point. If the prefix is 1, prompt for group to post to. See section 5. Composing Messages.

This function actually prepares a news even when using mail groups. This is useful for "posting" messages to mail groups without actually sending them over the network: they're just saved directly to the group in question. The corresponding back end must have a request-post method for this to work though.

Variables for the group buffer:

is called after the group buffer has been created.

is called after the group buffer is generated. It may be used to modify the buffer in some strange, unnatural way.

is called as the very last thing after the group buffer has been generated. It may be used to move point around, for instance.

Groups matching this regexp will always be listed in the group buffer, whether they are empty or not.

An alist of method and the charset for group names. It is used to show non-ASCII group names.

For example:

(setq gnus-group-name-charset-method-alist
    '(((nntp "news.com.cn") . cn-gb-2312)))

An alist of regexp of group name and the charset for group names. It is used to show non-ASCII group names. ((".*" utf-8)) is the default value if UTF-8 is supported, otherwise the default is nil.

For example:

(setq gnus-group-name-charset-group-alist
    '(("\\.com\\.cn:" . cn-gb-2312)))

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.17.1 Scanning New Messages

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 re-reading of the active file(s) from the back end(s).

Check whether new articles have arrived in the current group (gnus-group-get-new-news-this-group). gnus-goto-next-group-when-activating says 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).

Restart Gnus (gnus-group-restart). This saves the `.newsrc' file(s), closes the connection to all servers, clears up all run-time Gnus variables, and then starts Gnus all over again.

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.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.17.2 Group Information

H 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. This variable can also be a list of directories. In that case, giving a prefix to this command will allow you to choose between the various sites. ange-ftp (or efs) will be used for fetching the file.

If fetching from the first site is unsuccessful, Gnus will attempt to go through gnus-group-faq-directory and try to open them one by one.

H c
Try to open the charter for the current group in a web browser (gnus-group-fetch-charter). Query for a group if given a prefix argument.

Gnus will use gnus-group-charter-alist to find the location of the charter. If no location is known, Gnus will fetch the control messages for the group, which in some cases includes the charter.

Fetch the control messages for the group from the archive at ftp.isc.org (gnus-group-fetch-control). Query for a group if given a prefix argument.

If gnus-group-fetch-control-use-browse-url is non-nil, Gnus will open the control messages in a browser using browse-url. Otherwise they are fetched using ange-ftp and displayed in an ephemeral group.

Note that the control messages are compressed. To use this command you need to turn on auto-compression-mode (see section `Compressed Files' in The Emacs Manual).

H d
C-c C-d
Describe the current group (gnus-group-describe-group). If given a prefix, force Gnus to re-read the description from the server.

Describe all groups (gnus-group-describe-all-groups). If given a prefix, force Gnus to re-read the description file from the server.

H 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).

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.17.3 Group Timestamp

It can be convenient to let Gnus keep track of when you last read a group. To set the ball rolling, you should add gnus-group-set-timestamp to gnus-select-group-hook:

(add-hook 'gnus-select-group-hook 'gnus-group-set-timestamp)

After doing this, each time you enter a group, it'll be recorded.

This information can be displayed in various ways--the easiest is to use the `%d' spec in the group line format:

(setq gnus-group-line-format
      "%M\%S\%p\%P\%5y: %(%-40,40g%) %d\n")

This will result in lines looking like:

*        0: mail.ding                                19961002T012943
         0: custom                                   19961002T012713

As you can see, the date is displayed in compact ISO 8601 format. This may be a bit too much, so to just display the date, you could say something like:

(setq gnus-group-line-format
      "%M\%S\%p\%P\%5y: %(%-40,40g%) %6,6~(cut 2)d\n")

If you would like greater control of the time format, you can use a user-defined format spec. Something like the following should do the trick:

(setq gnus-group-line-format
      "%M\%S\%p\%P\%5y: %(%-40,40g%) %ud\n")
(defun gnus-user-format-function-d (headers)
  (let ((time (gnus-group-timestamp gnus-tmp-group)))
    (if time
        (format-time-string "%b %d  %H:%M" time)

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.17.4 File Commands

Re-read the init file (gnus-init-file, which defaults to `~/.gnus.el') (gnus-group-read-init-file).

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.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.17.5 Sieve Commands

Sieve is a server-side mail filtering language. In Gnus you can use the sieve group parameter (see section 2.10 Group Parameters) to specify sieve rules that should apply to each group. Gnus provides two commands to translate all these group parameters into a proper Sieve script that can be transfered to the server somehow.

The generated Sieve script is placed in gnus-sieve-file (by default `~/.sieve'). The Sieve code that Gnus generate is placed between two delimiters, gnus-sieve-region-start and gnus-sieve-region-end, so you may write additional Sieve code outside these delimiters that will not be removed the next time you regenerate the Sieve script.

The variable gnus-sieve-crosspost controls how the Sieve script is generated. If it is non-nil (the default) articles is placed in all groups that have matching rules, otherwise the article is only placed in the group with the first matching rule. For example, the group parameter `(sieve address "sender" "owner-ding@hpc.uh.edu")' will generate the following piece of Sieve code if gnus-sieve-crosspost is nil. (When gnus-sieve-crosspost is non-nil, it looks the same except that the line containing the call to stop is removed.)

if address "sender" "owner-ding@hpc.uh.edu" {
        fileinto "INBOX.ding";

See section `Top' in Emacs Sieve.

D g
Regenerate a Sieve script from the sieve group parameters and put you into the gnus-sieve-file without saving it.

D u
Regenerates the Gnus managed part of gnus-sieve-file using the sieve group parameters, save the file and upload it to the server using the sieveshell program.

[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by XEmacs Webmaster on October, 2 2007 using texi2html