UndoTree
The undo history visualizer for Sublime Text
Details
Installs
- Total 47
- Win 24
- Mac 11
- Linux 12
| Jul 21 | Jul 20 | Jul 19 | Jul 18 | Jul 17 | Jul 16 | Jul 15 | Jul 14 | Jul 13 | Jul 12 | Jul 11 | Jul 10 | Jul 9 | Jul 8 | Jul 7 | Jul 6 | Jul 5 | Jul 4 | Jul 3 | Jul 2 | Jul 1 | Jun 30 | Jun 29 | Jun 28 | Jun 27 | Jun 26 | Jun 25 | Jun 24 | Jun 23 | Jun 22 | Jun 21 | Jun 20 | Jun 19 | Jun 18 | Jun 17 | Jun 16 | Jun 15 | Jun 14 | Jun 13 | Jun 12 | Jun 11 | Jun 10 | Jun 9 | Jun 8 | Jun 7 | Jun 6 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Windows | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 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 | 1 |
| Mac | 0 | 0 | 0 | 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 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| Linux | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 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 |
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