Vim - Diff 差异

与 UNIX diff 差异命令类似,我们可以使用 Vim 以更好的方式显示 diff。 它将以丰富多彩的方式显示差异。 在本章中,我们将讨论以下内容 −

  • 显示文件之间的差异
  • 开启和关闭差异模式
  • 差异模式导航
  • 应用差异窗口中的更改

显示差异

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

$ 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。


差异模式导航

差异模式下的导航有点不同。 例如,当您从一个窗口滚动文本时,相邻窗口的文本也会滚动。 这称为滚动绑定。 要启用此用途 −

:set scrollbind

禁用此用途 −

:set noscrollbind

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

:diffupdate

在差异窗口之间切换

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

Ctrl + w Ctrl + w

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

跳转到上一个更改

在 diff 窗口中,执行以下命令跳转到上一个更改 −

[c

跳转到下一个更改

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

]c

从差异窗口应用更改

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

要将相邻差异窗口的更改应用到当前差异窗口,请执行 −

:diffget

例如,如果您在左侧窗口中,并且想要从右侧窗口更改为当前窗口,那么您将执行上述命令。

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

要将当前差异窗口的更改应用到相邻的差异窗口,请执行 −

:diffput

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