Linux下用Vim比较文件:
1. 使用vim的比较模式打开两个文件:
vim -d file1 file2
或
vimdiff file1 file2
2. 如果已经打开了文件file1,再打开另一个文件file2进行比较:
:vert diffsplit file2
3. 如果已经用split方式打开了两个文件file1,file2,又想比较两文件的不同。
分别在两个窗口里面输入命令:
:diffthis
第3条没弄明白
4. 如果更改了某个窗口的内容,vim又没有自动更新diff检查,可以使用如下命令更新:
:diffupdate
5. 定位到不同点:
[c 跳到前一个不同点
]c 跳到后一个不同点
6. 在窗口间跳转:
ctrl-w w 跳到下一个窗口
ctrl-w h 跳到左侧窗口
ctrl-w l 跳到右侧窗口
ctrl-w j 跳到下方的窗口
ctrl-w k 跳到上方的窗口
7. 合并文档:
dp 将差异点的当前文档内容应用到另一文档(diff put)
do 将差异点的另一文档的内容拷贝到当前文档(diff get)
8. 上下文的展开和查看
比较和合并文件的时候经常需要结合上下文来确定最终要采取的操作。Vimdiff 缺省是会把不同之处上下各 6 行的文本都显示出来以供参考。其他的相同的文本行被自动折叠。如果希望修改缺省的上下文行数为3行,可以这样设置:
:set diffopt=context:3
同时操作两个文件
在比较和合并告一段落之后,可以用下列命令对两个文件同时进行操作。比如同时退出:
1
|
:qa (quit all)
|
如果希望保存全部文件:
1
|
:wa (write all)
|
或者是两者的合并命令,保存全部文件,然后退出:
1
|
:wqa (write, then quit all)
|
如果在退出的时候不希望保存任何操作的结果:
1
|
:qa! (force to quit all)
|
可以用简单的折叠命令来临时展开被折叠的相同的文本行:
1
|
zo (folding open,之所以用z这个字母,是因为它看上去比较像折叠着的纸)
|
然后可以用下列命令来重新折叠:
1
|
zc (folding close)
|