ctrl+shift+p filters: :st2 :st3 :win :osx :linux
Browse

Undo​Tree

by huyhoang8398 ALL New

The undo history visualizer for Sublime Text

Labels undo, utilities

Details

Installs

  • Total 7
  • Win 3
  • Mac 2
  • Linux 2
Feb 1 Jan 31 Jan 30 Jan 29 Jan 28 Jan 27 Jan 26 Jan 25 Jan 24 Jan 23 Jan 22 Jan 21 Jan 20 Jan 19 Jan 18 Jan 17 Jan 16 Jan 15 Jan 14 Jan 13 Jan 12 Jan 11 Jan 10 Jan 9 Jan 8 Jan 7 Jan 6 Jan 5 Jan 4 Jan 3 Jan 2 Jan 1 Dec 31 Dec 30 Dec 29 Dec 28 Dec 27 Dec 26 Dec 25 Dec 24 Dec 23 Dec 22 Dec 21 Dec 20 Dec 19
Windows 0 0 2 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
Mac 0 0 2 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 0
Linux 0 0 1 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

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.

preview


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

  1. Place the plugin folder into your Sublime Text Packages directory:
  • Linux: ~/.config/sublime-text/Packages/
  • Windows: %APPDATA%\Sublime Text\Packages\
  • macOS: ~/Library/Application Support/Sublime Text/Packages/
  1. 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