#+TITLE: emacs/undo #+DATE: April 13, 2020 #+SINCE: v3.0.0 #+STARTUP: inlineimages nofold * Table of Contents :TOC_3:noexport: - [[#description][Description]] - [[#maintainers][Maintainers]] - [[#module-flags][Module Flags]] - [[#plugins][Plugins]] - [[#hacks][Hacks]] - [[#prerequisites][Prerequisites]] - [[#features][Features]] - [[#configuration][Configuration]] - [[#disabling-persistent-undo-history][Disabling persistent undo history]] - [[#troubleshooting][Troubleshooting]] * Description This module augments Emacs' built-in undo system to be more intuitive and to persist across Emacs sessions. ** Maintainers This module has no dedicated maintainers. ** Module Flags + =+tree= Uses ~undo-tree~ instead of ~undo-fu~, which is a little less stable, but offers branching undo history and a visualizer for navigating it. ** Plugins + [[https://gitlab.com/ideasman42/emacs-undo-fu][undo-fu]] + [[https://gitlab.com/ideasman42/emacs-undo-fu-session][undo-fu-session]] + [[https://github.com/emacsmirror/undo-tree][undo-tree]] (=+tree=) ** 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 be "silenced". i.e. It's visible in \*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. * Prerequisites This module has no prereqisites. * TODO Features # An in-depth list of features, how to use them, and their dependencies. * Configuration ** Disabling persistent undo history + If you are using =+tree=: #+BEGIN_SRC elisp (after! undo-tree (setq undo-tree-auto-save-history nil)) #+END_SRC + If you aren't: #+BEGIN_SRC elisp (remove-hook 'undo-fu-mode-hook #'global-undo-fu-session-mode) #+END_SRC * TODO Troubleshooting # Common issues and their solution, or places to look for help.