vundo 
- Description
- Visual undo tree
- Latest
- vundo-2.4.0.tar (.sig), 2025-Mar-15, 90.0 KiB
- Maintainer
- Yuan Fu <casouri@gmail.com>
- Website
- https://github.com/casouri/vundo
- Browse ELPA's repository
- CGit or Gitweb
- Badge
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
this:
○──○──○
│ └──●
├──○
└──○
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.3.0.tar.lz | 2024-Apr-24 | 17.5 KiB |
| vundo-2.2.0.tar.lz | 2024-Jan-02 | 16.4 KiB |
| vundo-2.1.0.tar.lz | 2023-May-08 | 14.0 KiB |
| vundo-2.0.0.tar.lz | 2022-Apr-25 | 12.6 KiB |
| vundo-1.0.0.tar.lz | 2022-Apr-15 | 12.0 KiB |
News
<2025-03-14 Fri>: Version 2.4.0
New features:
- A new vundo-popup-mode, which shows vundo window in the background
when user invokes undo/redo commands.
<2023-02-16 Fri>: Version 2.3.0
New features:
- Navigate among all saved nodes with l and r.
- Automatically bury the vundo-diff window when vundo quits.
<2024-01-01 Mon>: Version 2.2.0
New features:
- Now there’s a new command ‘w’ in the vundo buffer, typing it brings
you forward to the next branching point.
<2023-12-08 Fri>: Version 2.1.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.