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

2.18 Misc Group Stuff


The key v is reserved for users. You can bind it to some command 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 Keymaps: (emacs)Keymaps section ‘Keymaps’ in The Emacs Editor.


Enter the server buffer (gnus-group-enter-server-mode). See section 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 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 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 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.

G z

Compact the group under point (gnus-group-compact-group). Currently implemented only in nnml (see section Mail Spool). This removes gaps between article numbers, hence getting a correct total article count.

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.

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

2.18.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.18.2 Group Information

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

To see what variables are dynamically bound (like gnus-tmp-group), you have to look at the source code. The variable names aren’t guaranteed to be stable over Gnus versions, either.

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

2.18.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.18.5 Sieve Commands

Sieve is a server-side mail filtering language. In Gnus you can use the sieve group parameter (see section 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 transferred 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 Emacs Sieve: (sieve)Top 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.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]

This document was generated on January 25, 2015 using texi2html 1.82.