Vim - Diff 差异
与 UNIX diff 差异命令类似,我们可以使用 Vim 以更好的方式显示 diff。 它将以丰富多彩的方式显示差异。 在本章中,我们将讨论以下内容 −
- 显示文件之间的差异
- 开启和关闭差异模式
- 差异模式导航
- 应用差异窗口中的更改
显示差异
要显示文件之间的差异,请执行以下命令 −
$ vimdiff <file> <file> OR $ vim –d <file> <file>
例如下面的命令显示差异 −
在上图中,以品红色突出显示的文本很常见。 剩余的文本以红色突出显示,表示在普通文本之后有一些差异。
开启和关闭差异模式
如果您已经在 vim 中并且想要执行差异操作,请使用以下命令之一 −
diffsplit
使用以下命令执行水平分割 −
:diffsplit filename
上图显示我们正在比较两个文件,即 message-1.txt 和 message-2.txt。
垂直 diffsplit
要执行垂直拆分,请使用以下命令−
:vert diffsplit <filename>
它打开以下窗口 −
上图显示我们正在比较两个文件,即 message-1.txt 和 message-2.txt。
差异模式导航
差异模式下的导航有点不同。 例如,当您从一个窗口滚动文本时,相邻窗口的文本也会滚动。 这称为滚动绑定。 要启用此用途 −
:set scrollbind
禁用此用途 −
:set noscrollbind
如果您在此模式下编辑文件,则使用以下命令更新差异 −
:diffupdate
在差异窗口之间切换
要在差异窗口之间切换,请执行以下命令 −
Ctrl + w Ctrl + w
请注意,我们必须按 Ctrl + w 2 次。
跳转到上一个更改
在 diff 窗口中,执行以下命令跳转到上一个更改 −
[c
跳转到下一个更改
在差异窗口中,执行以下命令跳转到下一个更改 −
]c
从差异窗口应用更改
在当前差异窗口中应用更改
要将相邻差异窗口的更改应用到当前差异窗口,请执行 −
:diffget
例如,如果您在左侧窗口中,并且想要从右侧窗口更改为当前窗口,那么您将执行上述命令。
将当前窗格的更改应用到另一个窗格
要将当前差异窗口的更改应用到相邻的差异窗口,请执行 −
:diffput
例如,如果您在左侧窗口中并且想要将当前窗口的更改应用到右侧窗口,那么您将执行上述命令。