增量差异

Sublime Text 包含一个内置的diff功能,该功能可跟踪对正在编辑的文件的更改。差异计算是递增的,在执行时跟踪每个缓冲区修改。它不需要将文件存储在版本控制系统(如Git)中。

跟踪每个添加,修改和删除的确切位置。这用于在装订线中显示标记,允许在每个更改之间导航,显示内联差异,并允许还原更改。

差异是根据磁盘上文件的版本计算得出的,但是可以将Git仓库配置为与HEAD进行差异比较,并且该API允许将文件与任何内容进行差异比较。

差异标记

以下是使用Mariana配色方案时显示的差异标记的示例:

2728添加了一行2930修改后的行31其次是另一条修改的行3233删除之前的那一行34

有关自定义差异标记的颜色和宽度的信息,请参见配色方案文档

导航

用户可以使用以下方法跳转到下一个或上一个修改:

  • Ctrl+
  • Ctrl+
  • 转到▶下一个修改
  • 转到▶上一个修改

键盘快捷键往往是在编辑中的文件周围跳转的非常自然的方法。

内联差异

除了跟踪已修改的行之外,增量差异还跟踪确切的更改。这样可以显示文本的原始版本。

切换

在文件的修改区域上单击鼠标右键时,将显示一个菜单项Show Diff Hunk。该菜单项将在当前内容下方内联显示先前的内容。再次右键单击将显示一个菜单项“隐藏差异”,以隐藏嵌入式差异。

可以通过“编辑▶文本▶切换大块差异” 菜单来执行内联差异。

除了基于菜单的激活外,差异还可通过键盘快捷键进行切换:

  • Windows / Linux:Ctrl+KCtrl+/
  • Mac:+K+/

要隐藏某个区域的差异,同时隐藏所有其他差异,请按:

  • Windows / Linux:Ctrl+KCtrl+;
  • Mac:+K+

造型

对于未创建自己规则的配色方案,将自动生成用于显示内联差异的样式。对于自定义样式,请使用以下选择器添加规则:

  • diff.deleted
  • diff.deleted.char
  • diff.inserted
  • diff.inserted.char

通常,每个规则都会设置backgroundforeground_adjust属性。

正在还原

修改可以通过键盘快捷键恢复为原始文本:

  • Windows / Linux:Ctrl+KCtrl+Z
  • Mac:+K+Z

或者,可以使用菜单“编辑▶文本▶还原修改”。

设定值

可以通过mini_diff设置控制增量diff功能。有效值包括:

  • true–始终启用增量差异(DEFAULT)
  • "auto"–为Git储存库中的文件启用增量差异
  • false–禁用增量差异

可以通过git_diff_target设置控制Git仓库中文件的增量diff行为。有效值包括:

  • "index"–对比Git索引,默认
  • "head"–与HEAD上的文件进行比较