UndoTree
The undo history visualizer for Sublime Text
Details
Installs
- Total 41
- Win 21
- Mac 10
- Linux 10
| Jun 7 | Jun 6 | Jun 5 | Jun 4 | Jun 3 | Jun 2 | Jun 1 | May 31 | May 30 | May 29 | May 28 | May 27 | May 26 | May 25 | May 24 | May 23 | May 22 | May 21 | May 20 | May 19 | May 18 | May 17 | May 16 | May 15 | May 14 | May 13 | May 12 | May 11 | May 10 | May 9 | May 8 | May 7 | May 6 | May 5 | May 4 | May 3 | May 2 | May 1 | Apr 30 | Apr 29 | Apr 28 | Apr 27 | Apr 26 | Apr 25 | Apr 24 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Windows | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| Mac | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 0 |
| Linux | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
Readme
- Source
- raw.githubusercontent.com
UndoTree for Sublime Text
A Vim-style UndoTree plugin for Sublime Text 4 (Python 3.8+), visualizing undo history as a branching ASCII tree with live diff previews.
Features
- Branching undo history — every save creates a new node; multiple branches supported
- ASCII tree visualization — shows the hierarchy of undo states using indentation and
- - Current node marker — the active undo state is marked with
* - Sequential counters — each node is numbered for easier reference (
1 -> +2 -0) - Live diff preview — highlights changes when navigating the tree
- Restore any state — select a node to restore its content in the editor
- Automatic initial snapshot — captures file content on open
- Lightweight & Python-only — no external dependencies
Installation
- Place the plugin folder into your Sublime Text
Packagesdirectory:
- Linux:
~/.config/sublime-text/Packages/ - Windows:
%APPDATA%\Sublime Text\Packages\ - macOS:
~/Library/Application Support/Sublime Text/Packages/
- Restart Sublime Text.
Usage
Open UndoTree
- Open the command palette (
Ctrl+Shift+P/Cmd+Shift+P) → Show UndoTree - The tree will appear in a Quick Panel, for example:
*1 -> Initial state
2 -> +2 -0
3 -> +1 -0
4 -> +3 -1
5 -> +1 -2
*marks the current node->separates the counter from the diff summary
Restore a Node
- Move the selection in the Quick Panel
- Press Enter → restores the editor content to that node
- Hovering over nodes shows a live diff preview in a separate panel
UndoTree Behavior
- Every file save creates a new node
- Branches are automatically tracked if you modify the file from an older state
- Initial file load automatically captures the starting state
Example Tree
*1 -> Initial state
2 -> +2 -0
3 -> +1 -0
4 -> +3 -1
5 -> +1 -2
- Shows indentation for branches
- Current node is marked with
* - Numbers help track node order
Commands
| Command | Description |
|---|---|
show_undo_tree |
Opens the UndoTree Quick Panel |
undo_tree_restore |
Restore buffer content to a specific node |
undotree_write_preview |
Internal: writes live diff preview |
undotree_write_panel |
Internal: updates ASCII tree panel |
Requirements
- Sublime Text 4 / 3.8+
- Python 3.8+ (built-in with Sublime Text 4)
- No additional dependencies
Notes
- ASCII tree uses spaces and
-only for branch visualization, so it works in any font - Hover preview works with the diff panel
- Branches can be navigated visually, but the Quick Panel does not allow full Vim-style j/k navigation yet