vimdiff 命令使用介绍

vimdiff 命令使用介绍,第1张

vimdiff 命令常用于编辑同一文件的不同历史版本,对各文件的内容进行比对与调整。如下面两个文件:

可以使用 vim -O2 file1 file2 命令,在左右排列的两个窗口中同时打开 file1 和 file2 两个文件,如下图所示:

而 vimdiff file1 file2 命令会以同样的形式打开这两个文件,并且用 不同的背景色 高亮显示彼此间有差别的内容,如下图:

从上面的两幅截图中可以得出 vimdiff 标记差别内容时的几个规则:

除了 vimdiff FILE_LEFT FILE_RIGHT 或者 vim -d FILE_LEFT FILE_RIGHT 的形式外,也可以通过在 Vim 中输入命令进入 diff 模式。

比如先进入 Vim 编辑 FILE_LEFT 文件( vim FILE_LEFT ),再输入以下命令进入 diff 模式:

:vertical diffsplit FILE_RIGHT

可以使用下列两种快捷键,在文件的各个差异点之间前后移动:

至于光标在两个窗口之前的切换,可以使用如下按键:

可以使用 d, p (即 diff put)命令,将当前差异点中的内容覆盖到另一文件中的对应位置。

如当光标位于左侧文件(file1)中的第一行时,依次按下 d 、 p 键,则 file1 中的 Line one 被推送到右侧,并替换掉 file2 中对应位置上的 Line 1 。截图如下:

而 d, o (即 diff obtain)命令可以将另一窗口中差异点处的内容拉取到当前位置并进行替换操作。截图如下:

即在 file1 的第一行执行 d o 命令后,file2 中的第一行内容 Line 1 被拉取到 file1 中并替换掉原来位置上的 Line one 。

vimdiff 实际上是 Vim 编辑器的 diff 模式,因此适用于 Vim 编辑器的命令和快捷键也同样可以在该模式下使用。常用的几个命令如下:

其他常用的命令与快捷键可参考 Vim 速查手册

同时打开两个或者多个文件,进行比较。

vimdiff会将两个文件的相同指出尽量列在同一位置上面,便于查对比较。其命令基本和vim是一致的。

vimdiff使用vim启动两个或者多个文件,每个文件有其自己的窗口。每个文件中不同的地方会用高亮显示出来。它在进行改变的检查以及将改动从一个版本的文件移动到另一个版本的情况下非常方便。首先你得保证安装了vim才能是用vimdiff.用这个命令安装:

其他类似的工具还tkdiff,meld 和 xfdiff4等。

这样会同时打开两个文件垂直在两栏显示,可以打开不止两个文件。

这样会同时打开两个文件在上下两栏显示.

可以看见不同的地方会高亮显示,相同的地方默认会被折叠起来。

如下常用操作:

输入"]c".

输入"[c".

输入"do".

这里,前提是用']c'或者'[c'跳到相应的不同处,执行完毕之后,当前窗口当前位置内容被替换为另外一个窗口的当前位置内容。注意这里是两个文件的情况,当前窗口有多于两个文件时无法进行。

输入"1,100 diffg".

或输入"1,100 diffget".

这里,等同于do不过指定了范围,如果有缓冲还可在diffg后面指定缓冲名字。

输入"1,100 diffg 3".

或输入"1,100 diffget 3".

这里,在diffg后面指定缓冲名字。

输入"dp".

这里,前提是用']c'或者'[c'跳到相应的不同处,执行完毕之后,另外一个窗口的当前位置内容被替换成当前窗口当前的位置内容。注意这里是两个文件的情况,当前窗口有多于两个文件时无法进行。

输入"1,100 diffpu".

或输入"1,100 diffput".

这里,等同于dp不过指定了范围,如果有缓冲还可在diffpu后面指定缓冲名字。

输入"1,100 diffpu 3".

或输入"1,100 diffput 3".

这里,在diffpu后面指定缓冲名字。

输入":diffsplit file".

这里新开的窗口是水平排列的,在不同窗口间移动的命令同vim。

输入"vert diffsplit file".

这里,vert实际是vertical前缀的简写。新开的窗口是垂直排列的,在不同窗口间移动的命令同vim。

输入":diffupdate".

这里,当我们修改某一个文件的时候,vim会试图使它和另外一个文件的不同之处保持更新,例如插入和删除行。但是,更复杂的修改或者在一个行内的修改可能会导致不同处(vimdiff)没有及时更新,这时候可以运行这个命令(diffupdate)进行强制更新。

输入":set diffopt=context:3".

这里vimdiff 缺省是会把不同之处上下各 6 行的文本都显示出来以供参考。其他的相同的文本行被自动折叠。如果希望修改缺省的上下文行数,可以这样设置.

输入"zo".

输入"zc".

输入"wqa".

其实vimdiff就是vim,只是一个符号链接而已,你可以file /etc/alternatives/*|grep bin/vim看看。

参考资料: http://www.chineselinuxuniversity.net/articles/22028.shtml


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/25847.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-02-17
下一篇2023-02-17

发表评论

登录后才能评论

评论列表(0条)

    保存