GNU ELPA - vundo


Visual undo tree
vundo-2.3.0.tar (.sig), 2024-Apr-24, 80.0 KiB
Yuan Fu <>
Atom feed
Browse ELPA's repository
CGit or Gitweb

To install this package from Emacs, use package-install or list-packages.

Full description

Vundo (visual undo) displays the undo history as a tree and lets you
move in the tree to go back to previous buffer states. To use vundo,
type M-x vundo RET in the buffer you want to undo. An undo tree buffer
should pop up. To move around, type:

  f   to go forward
  b   to go backward

  n   to go to the node below when you at a branching point
  p   to go to the node above

  a   to go back to the last branching point
  e   to go forward to the end/tip of the branch
  l   to go to the last saved node
  r   to go to the next saved node

  m   to mark the current node for diff
  u   to unmark the marked node
  d   to show a diff between the marked (or parent) and current nodes

  q   to quit, you can also type C-g

n/p may need some more explanation. In the following tree, n/p can
move between A and B because they share a parent (thus at a branching
point), but not C and D.

         A  C
      │  ↕
         B  D

By default, you need to press RET to “commit” your change and if you
quit with q or C-g, the changes made by vundo are rolled back. You can
set `vundo-roll-back-on-quit' to nil to disable rolling back.

Note: vundo.el requires Emacs 28.

Customizable faces:

- vundo-default
- vundo-node
- vundo-stem
- vundo-highlight

If you want to use prettier Unicode characters to draw the tree like

    │  └──●

set vundo-glyph-alist by

    (setq vundo-glyph-alist vundo-unicode-symbols)

Your default font needs to contain these Unicode characters, otherwise
they look terrible and don’t align. You can find a font that covers
these characters (eg, Symbola, Unifont), and set `vundo-default' face
to use that font:

    (set-face-attribute 'vundo-default nil :family "Symbola")

Comparing to undo-tree:

Vundo doesn’t need to be turned on all the time nor replace the undo
commands like undo-tree does. Vundo displays the tree horizontally,
whereas undo-tree displays a tree vertically.

Old versions

vundo-2.2.0.tar.lz2024-Jan-0216.4 KiB
vundo-2.1.0.tar.lz2023-May-0814.0 KiB
vundo-2.0.0.tar.lz2022-Apr-2512.6 KiB
vundo-1.0.0.tar.lz2022-Apr-1512.0 KiB


<2023-12-08 Fri>: Version 2.5.0

vundo-diff introduced, providing on-demand diff functionality.  Diff's
are evaluated between the current node and either its parent node, or,
if any, a marked node.  New key commands:

  (m)ark   - mark a node for diff
  (u)nmark - unmark any marked node
  (d)iff   - diff between current and marked or parent node

The (d)ebug command has been moved to (D)ebug.

<2022-04-23 Sat>: Version 2.0.0

Breaking change:

- ‘vundo--window-max-height’ is now ‘vundo-window-max-height’ (double
  dash -> single dash).
- Vundo commands are not shown in the global M-x (since they are not
  used that way anyway).

New features:

- New hooks ‘vundo-pre-enter-hook’ and ‘vundo-post-exit-hook’.

<2022-04-04 Mon>: Version 1.0.0

<2022-03-29 Tue>: ‘vundo--mode’ and ‘vundo--mode-map’ are now
‘vundo-mode’ and ‘vundo-mode-map’. A new custom option
‘vundo-compact-display’ is added.

<2022-03-23 Wed>: UI now defaults to ASCII mode. ASCII mode also draws
differently now, it now draws

    o--o--o     instead of      o--o--o
    |  `--x                     |  +--*
    |--o                        |--o
    `--o                        +--o

<2021-11-26 Fri>: Variable ‘vundo-translate-alist’ changed to
‘vundo-glyph-alist’ and has different value now.