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

Undo​Tree

by huyhoang8398 ALL

The undo history visualizer for Sublime Text

Labels undo, utilities

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

Package Control 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

  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