Vim diff命令

Vim diff命令

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

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

1. 显示差异

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

$ vimdiff <file> <file> 
或者
$ vim –d <file> <file>

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

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

2. 激活和停用diff模式

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

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

:diffsplit filename

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

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

:vert diffsplit <filename>

它打开以下窗口 -

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

3. 以差异模式导航

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

:set scrollbind

要禁用此用途 -

:set noscrollbind

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

:diffupdate

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

Ctrl + w Ctrl + w

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

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

[c

跳转到下一个更改

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

]c

4. 从差异窗口应用更改

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

:diffget

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

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

:diffput

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