1. vimdiff(1)
  2. vimdiff(1)

NAME

vimdiff - 比较同一文件的两、三或四个版本间的差异

语法

vimdiff [-o] file1 file2 [file3 [file4]]

gvimdiff

描述

vimdiff适合对比一个文件两个,三个或四个版本之间的差异,它拥有简单明了的界 面,可以在多处差异之间快速定位,因而在无法使用图形化的比较工具的时候,或者 在需要快速比较和合并少量文件的时候,vimdiff是最好的选择.

进入比较模式编辑的最简单方法就是用"vimdiff"命令.它如常启动vim,但附加如 下设置,以便于查看输入参数所指定的文件间的差异,如下参数仅设置于当前窗口.

diff        打开
scrollbind  打开
cursorbind  打开
scrollopt   包含"hor"
wrap        关闭
foldmethod  "diff"
foldcolumn  来自'diffopt'的值,缺省为2

vimdiff语法中第二个及其后的文件也可以是目录名.vim将依据第一个参数所指定 的文件名在指定目录中查找另外的文件名.这一特性仅对标准的"diff"命令有效.

两个文件中连续的相同的行被折叠了起来,只在某一文件中存在的行的背景色被设 置为蓝色,而在另一文件中的对应位置被显示为绿色.两个文件中都存在,但是包含 差异的行显示为粉色背景,引起差异的文字用红色背景加以突出.比较基于缓冲区的 内容.因而,如果在载入文件后你做过改动,这些改动也将参加比较.不过,你也许要 不时地使用"diffupdate".因为并非所有的改动的结果都能自动更新.

选项

-o
窗口水平分割,默认为垂直分割.

操作

光标移动

移动光标时左右两侧的屏幕滚动是同步的,这是因为设置了"scrollbind"选项,vim 会尽力保证两侧文件的对齐.可以使用快捷键在各个差异点之间快速移动.跳转到下 一个差异点"]c",反向跳转是"[c".如果在命令前加上数字的话,可以跳过一个或数 个差异点,从而实现跳的更远.比如如果在位于第一个差异点的行输入"2]c",将越过 下一个差异点,跳转到第三个差异点.

文件合并

如果希望把一个差异点中当前文件的内容复制到另一个文件里,可以使用命令"dp". 如果希望把另一个文件的内容复制到当前文件中,可以使用命令"do".如果希望手工 修改某一行,可以使用通常的vim操作.

展开与查看

比较和合并文件的时候经常需要结合上下文来确定最终要采取的操作.vimdiff缺 省是会把不同之处上下各6行的文本都显示出来以供参考.其他的相同的文本行被 自动折叠.可以用简单的折叠命令"zo"来临时展开被折叠的相同的文本行,然后可 以用"zc"命令来重新折叠.

  1. March 2015
  2. vimdiff(1)