It is very useful to be able to undo actions one has done. In normal
Emacs buffers, it's easy enough---you just push the undo
button.
In Gnus buffers, however, it isn't that simple.
The things Gnus displays in its buffer is of no value whatsoever to
Gnus---it's all just data designed to look nice to the user.
Killing a group in the group buffer with C-k makes the line
disappear, but that's just a side-effect of the real action---the
removal of the group in question from the internal Gnus structures.
Undoing something like that can't be done by the normal Emacs
undo
function.
Gnus tries to remedy this somewhat by keeping track of what the user
does and coming up with actions that would reverse the actions the user
takes. When the user then presses the undo
key, Gnus will run
the code to reverse the previous action, or the previous actions.
However, not all actions are easily reversible, so Gnus currently offers
a few key functions to be undoable. These include killing groups,
yanking groups, and changing the list of read articles of groups.
That's it, really. More functions may be added in the future, but each
added function means an increase in data to be stored, so Gnus will
never be totally undoable.
The undoability is provided by the gnus-undo-mode
minor mode. It
is used if gnus-use-undo
is non-nil
, which is the
default. The M-C-_ key performs the gnus-undo
command
command, which should feel kinda like the normal Emacs undo
command.