ctrl+shift+p filters: :st2 :st3 :win :osx :linux
浏览

Sublundo

jdkato ST3

一个实现类似 Vim 分支撤销/重做的 Sublime Text 3 插件。

详情

  • 0.2.3
  • github.com
  • github.com
  • 7年前
  • 26分钟前
  • 7年前

安装

  • 总数 503
  • Win 198
  • Mac 159
  • Linux 146
2022年8月6日 2022年8月5日 2022年8月4日 2022年8月3日 2022年8月2日 2022年8月1日 2022年7月31日 2022年7月30日 2022年7月29日 2022年7月28日 2022年7月27日 2022年7月26日 2022年7月25日 2022年7月24日 2022年7月23日 2022年7月22日 2022年7月21日 2022年7月20日 2022年7月19日 2022年7月18日 2022年7月17日 2022年7月16日 2022年7月15日 2022年7月14日 2022年7月13日 2022年7月12日 2022年7月11日 2022年7月10日 2022年7月9日 2022年7月8日 2022年7月7日 2022年7月6日 2022年7月5日 2022年7月4日 2022年7月3日 2022年7月2日 2022年7月1日 2022年6月30日 2022年6月29日 2022年6月28日 2022年6月27日 2022年6月26日 2022年6月25日 2022年6月24日 2022年6月23日
Windows 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 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
Mac 1 1 0 0 0 0 0 0 1 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
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 0 0 0 0 0 0 0 0 1 0 0

README

源代码
raw.githubusercontent.com

Sublundo Package Control

sublundo

Sublundo 将像 Vim 一样的持久、分支撤销/重做功能引入到 Sublime Text 3 中。它受到了 Gundo(及其继任者 Mundo)的启发。

然而,由于 Sublime Text 不支持与 Vim 一样的分支撤销,我们需要构建自己的数据结构——UndoTree。一个 UndoTree 是一个包含表示特定缓冲区状态的节点的 N-ary tree

tree

每个节点包含映射节点 ID 到补丁的信息,这意味着我们不需要为每个插入存储整个缓冲区(通常只包含小的更改),我们只需要存储前进和后退所需的信息(在 parent → childrenchild → parent 方向上)。例如:如果 A = 'Hello, world!'B = 'Bye, world!',则 A → B 转换将如下所示:[(-1, 'H'), (1, 'By'), (0, 'e'), (-1, 'llo'), (0, ', wo')]。在 Python 中的表示可能会是:

>>> t = UndoTree()
>>> t.insert('Hello, world!')
>>> t.insert('Bye, world!')
>>> t.text()
'Bye, world!'
>>> t.undo()
# (buffer, patch, cursor position)
('Hello, world!', '@@ -1,7 +1,9 @@\n+H\n-By\n e\n+llo\n , wo\n', None)
>>> t.text()
'Hello, world!'

安装

  1. 安装 Package Control
  2. 打开命令面板(macOS 上为 Command-Shift-P,Linux/Windows 上为 Ctrl-Shift-P)。
  3. 选择 Package Control: Install Package,然后当列表出现时选择 Sublundo

使用方法

此插件完全替换了内置的 undoredo 命令:每次撤销或重做编辑时,都会运行 sublundo 命令。因此,您应该能够像平时一样编辑、撤销和重做文本。

当您想要可视化或导航 UndoTree 时,您将调用 Sublundo: Visualize 命令,然后使用以下键来移动

  • up(或 k):向上移动当前分支(即调用 redo)。
  • down (或 j):将当前分支向下移动(即调用 undo)。
  • left (或 h):移动到左侧的下一个分支。
  • right (或 l):移动到右侧的下一个分支。

有关可用的设置信息,请参阅默认设置文件