vim diff 文件比对

新一之前有整理过《VIM快捷键》一文;VIM快捷键笔记中并未对VIMdiff有介绍;今天新一用了vimdiff比较了2文本;于是就有了本文。注:] c[ c由于wordpress博客使用了代码加亮插件导致有些不兼容故多加了一个空格

vim

vim diff 比较

可以从命令行调用以下命令,来打开两个文件进行比较:

vim -d file1 file2

如果已经打开了文件file1,那么可以在Vim中用以下命令,再打开另一个文件file2进行比较:

:diffsplit file2

如果已经使用split打开了两个文件,那么可以分别在两个窗口里面输入以下命令,进行比较:

:diffthis

屏幕将被水平分隔,分别显示一个文件,其中不同的部分将被高亮显示。

  • 只在某一文件中存在的行,显示为蓝色
  • 而在另一文件中的对应位置的行,显示为绿色
  • 在两个文件中都存在的行,显示为紫色
  • 行中不相同的字符,显示为红色
  • 相同的行,没有高亮显示并且会被折叠。

如果想要垂直比较两个文件,可以使用以下命令:

:vert diffsplit file2

vim diff 折叠

使用zo命令,可以展开被折叠的相同的文本行;而zc命令,则可以重新折叠相同的行。

vim diff 查看

比较文件时,经常需要结合上下文来确定最终要采取的操作。缺省情况下,是会把不同之处上下各6行的文本显示出来以供参考。其他的相同的文本行被自动折叠。如果希望修改缺省的上下文行数为3行,可以使用以下命令

:set diffopt=context:3

vim diff 滚动

如果你在一个文件中滚动屏幕,那么另一个文件也会自动滚动以显示相同的位置。你可以使用以下命令,取消联动:

:set noscrollbind

使用以下命令,将重新绑定联动:

:set scrollbind

利用以下命令,可以定义滚动方式:

:set scrollopt ver,hor,jump

其中:选项ver ,启用垂直同步滚动;选项hor ,启用水平同步滚动;而jump 选项,则在切换窗口时,使垂直滚动始终同步。

如果光标停留在两个文件的不同位置,那么可以使用下面的命令同步滚动:

:syncbind

vim diff 更新

如果更改了某个文件的内容,vim又没有自动更新diff检查,那么可以使用如下命令更新:

:diffupdate

vim diff 跳转

你可以用[ c命令;跳转到前一个不同点;或者用] c命令,跳转到后一个不同点。

vim diff 命令总结

diffsplit分隔窗并比较文件

:diffthis比较文件

:diffupdate更新比较结果

zo展开

zc折叠

[ c跳转到前一个不同点

] c跳转到后一个不同点

vim diff 更多资料

技巧:Vimdiff 使用:http://www.ibm.com/developerworks/cn/linux/l-vimdiff/

转载请注明来源:新一 » vim diff 文件比对

赞 (1) 评论 (5) 分享 ()

评论 5

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. 灰常记忆程序猿回复