Linux实用工具-vimdiff
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux实用工具-vimdiff相关的知识,希望对你有一定的参考价值。
参考技术A 同时打开两个或者多个文件,进行比较。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
Vimdiff 使用
what is vimdiff
在类nuix平台,我们希望对文件之间的差异之间快速定位,希望能够很容易的进行文件合并……。
可以使用Vim提供的diff模式,通常称作vimdiff,就是这样一个能满足所有这些需求,甚至能够提供更多的强力工具。
启动方法
首先保证系统中的diff命令是可用的。Vim的diff模式是依赖于diff命令的。Vimdiff的基本用法就是:
# vimdiff FILE_LEFT FILE_RIGHT
或者
# vim -d FILE_LEFT FILE_RIGHT
常用命令
跳转到下一个diff点:
请使用 ]c 命令
跳转到前一个diff点:
请使用 [c 命令
如果希望手工修改某一行,可以使用通常的vim操作。
如果希望在两个文件之间来回跳转,可以用下列命令序列:Ctrl-w, w
如果想交换上/下、左/右两个分隔窗口的位置,可以使用 ctrl-w,r 命令
如果希望把一个差异点中当前文件的内容复制到另一个文件里,可以使用命令:
dp (diff "put")
如果希望把另一个文件的内容复制到当前行中,可以使用命令:
do (diff "get",之所以不用dg,是因为dg已经被另一个命令占用了,所以用了diff "obtain")
在修改一个或两个文件之后,vimdiff会试图自动来重新比较文件,以便实时地反映比较结果。但是有时候会处理失败,这个时候就需要手工来刷新。
:diffupdate
zo (folding open)打开折叠代码。之所以用z这个字母,是因为它看上去比较像折叠着的纸。
zc (folding close)重新折叠起来。
以上是关于Linux实用工具-vimdiff的主要内容,如果未能解决你的问题,请参考以下文章