gnus: Undo

 
 9.10 Undo
 =========
 
 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
 ‘C-M-_’ key performs the ‘gnus-undo’ command, which should feel kinda
 like the normal Emacs ‘undo’ command.