Vim - 差异比较



类似于 UNIX 的 diff 命令,我们可以使用 Vim 以更佳的方式显示差异。它将以彩色方式显示差异。在本节中,我们将讨论以下内容:

  • 显示文件之间的差异
  • 激活和停用差异模式
  • 差异模式下的导航
  • 应用差异窗口中的更改

显示差异

要显示文件之间的差异,请执行以下命令:

$ vimdiff <file> <file> 
OR 
$ vim –d <file> <file>

例如,以下命令显示差异:

Show

在上图中,以品红色突出显示的文本是共同的。其余文本以红色突出显示,表示在公共文本之后存在一些差异。

激活和停用差异模式

如果您已经在 vim 中并且想要执行差异操作,则可以使用以下命令之一:

diffsplit

使用以下命令执行水平分割:

:diffsplit filename

Split

上图显示我们正在比较两个文件,即 message-1.txt 和 message-2.txt。

垂直 diffsplit

要执行垂直分割,请使用以下命令:

:vert diffsplit <filename>

它将打开以下窗口:

Vertical

上图显示我们正在比较两个文件,即 message-1.txt 和 message-2.txt。

差异模式下的导航

差异模式下的导航略有不同。例如,当您从一个窗口滚动文本时,相邻窗口中的文本也会滚动。这称为 scrollbind。要启用此功能,请使用:

:set scrollbind

要禁用此功能,请使用:

:set noscrollbind

如果您在此模式下编辑文件,则使用以下命令更新差异:

:diffupdate

在差异窗口之间切换

要在差异窗口之间切换,请执行以下命令:

Ctrl + w Ctrl + w

请注意,我们必须按两次 Ctrl + w。

跳转到上一个更改

在差异窗口中,执行以下命令以跳转到上一个更改:

[c

跳转到下一个更改

在差异窗口中,执行以下命令以跳转到下一个更改:

]c

应用差异窗口中的更改

在当前差异窗口中应用更改

要将相邻差异窗口中的更改应用于当前差异窗口,请执行:

:diffget

例如,如果您位于左侧窗口,并且想要将右侧窗口中的更改应用于当前窗口,则将执行上述命令。

将当前窗格中的更改应用于另一个窗格

要将当前差异窗口中的更改应用于相邻差异窗口,请执行:

:diffput

例如,如果您位于左侧窗口,并且想要将当前窗口中的更改应用于右侧窗口,则将执行上述命令。

广告