:emacs undo

Smart, persistent undo for your inevitable mistakes

1. Description

This module augments Emacs’ built-in undo system to be more intuitive and to persist across Emacs sessions.

1.1. Maintainers

This module has no dedicated maintainers. Become a maintainer?

1.2. Module flags

Uses undo-tree instead of undo-fu, which is a little less stable, but offers branching undo history and a visualizer for navigating it.

1.3. Packages

1.4. Hacks

  • Both undo-fu and undo-tree have been modified to use zstd to compress undo history if it is available.
  • undo-tree only
    • Text properties are stripped from undo history to shrink it.
    • Undo-tree is too chatty about saving its history files; this has been silenced. It will still be logged to \*Messages\*, but won’t appear in your minibuffer.
  • unfo-fu only
    • Doom defines undo-fu-mode to make it easier to add hooks/mode-local keybinds.

2. Prerequisites

This module has no external prerequisites.

3. TODO Usage

This module has no usage documentation yet. Write some?

4. Configuration

This module’s configuration documentation is incomplete. Complete it?

4.1. Disabling persistent undo history

  • If you are using +tree:

    (after! undo-tree
      (setq undo-tree-auto-save-history nil))
  • If you aren’t:

    (remove-hook 'undo-fu-mode-hook #'global-undo-fu-session-mode)

5. TODO Troubleshooting

There are no known problems with this module. Report one?

6. TODO Appendix

This module has no appendix yet. Write one?