Vim - 差异


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

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

显示差异

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

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

例如,下面的命令显示差异

在上图中,以洋红色突出显示的文本很常见。剩余文本以红色突出显示,表示常见文本后存在一些差异。

激活和停用diff模式

如果您已经在vim中并且想要执行diff操作,请使用以下命令之一

diffsplit

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

:diffsplit filename

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

垂直diffsplit

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

:vert diffsplit <filename>

它打开以下窗口

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

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

:set scrollbind

要禁用此用途

:set noscrollbind

如果您在此模式下编辑文件,请使用以下命令更新diff

:diffupdate

在diff窗口之间切换

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

Ctrl + w Ctrl + w

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

跳转到上一个更改

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

[c

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

]c

从差异窗口应用更改

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

:diffget

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

将更改从当前窗格应用到另一个窗格 要将更改从当前差异窗口应用到相邻的差异窗口执行

:diffput

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