Emacs has a powerful undo system. Unlike the standard undo/redo system in most software, it allows you to recover any past state of a buffer (whereas the standard undo/redo system can lose past states as soon as you redo). However, this power comes at a price: many people find Emacs' undo system confusing and difficult to use, spawning a number of packages that replace it with the less powerful but more intuitive undo/redo system. Both the loss of data with standard undo/redo, and the confusion of Emacs' undo, stem from trying to treat undo history as a linear sequence of changes. It's not. The undo-tree-mode provided by this package replaces Emacs' undo system with a system that treats undo history as what it is: a branching tree of changes. This simple idea allows the more intuitive behaviour of the standard undo/redo system to be combined with the power of never losing any history. It gets better. You don't have to imagine the undo tree, because undo-tree-mode includes an undo-tree visualizer which draws it for you, and lets you browse around the undo history. For more information, see the Commentary at the top of the undo-tree.el file. (Note that undo-tree-mode does not yet support undo-in-region, nor, for low-level reasons, does it restore marker adjustments. I plan to support both of these in a future version.)
24 lines
1.3 KiB
Text
24 lines
1.3 KiB
Text
Emacs has a powerful undo system. Unlike the standard undo/redo system
|
|
in most software, it allows you to recover any past state of a buffer
|
|
(whereas the standard undo/redo system can lose past states as soon as
|
|
you redo). However, this power comes at a price: many people find
|
|
Emacs' undo system confusing and difficult to use, spawning a number
|
|
of packages that replace it with the less powerful but more intuitive
|
|
undo/redo system.
|
|
|
|
Both the loss of data with standard undo/redo, and the confusion of
|
|
Emacs' undo, stem from trying to treat undo history as a linear
|
|
sequence of changes. It's not. The undo-tree-mode provided by this
|
|
package replaces Emacs' undo system with a system that treats undo
|
|
history as what it is: a branching tree of changes. This simple idea
|
|
allows the more intuitive behaviour of the standard undo/redo system
|
|
to be combined with the power of never losing any history.
|
|
|
|
It gets better. You don't have to imagine the undo tree, because
|
|
undo-tree-mode includes an undo-tree visualizer which draws it for
|
|
you, and lets you browse around the undo history.
|
|
|
|
For more information, see the Commentary at the top of the
|
|
undo-tree.el file. (Note that undo-tree-mode does not yet support
|
|
undo-in-region, nor, for low-level reasons, does it restore marker
|
|
adjustments. I plan to support both of these in a future version.)
|