2010年(83)
分类:
2010-08-19 15:51:13
Vimdiff user guide
1.start
vimdiff FILE_LEFT FILE_RIGHT
or vim -d FILE_LEFT FILE_RIGHT
or vim FILE_LEFT
然后在vim的ex模式(也就是"冒号"模式)下输入:
:vertical diffsplit FILE_RIGHT
2.After start, pic as follow:
屏幕被垂直分割,左右两侧分别显示被比较的两个文件。两个文件中连续的相同的行被折叠了起来,以便使用者能把注意力集中在两个文件的差异上。只在某一文件 中存在的行的背景色被设置为蓝色,而在另一文件中的对应位置被显示为绿色。两个文件中都存在,但是包含差异的行显示为粉色背景,引起差异的文字用红色背景 加以突出.
3.交换两个窗口的位置,或者希望改变窗口的分割方式,可以使用下列命令:
1). Ctrl-w K(把当前窗口移到最上边)
2). Ctrl-w H(把当前窗口移到最左边)
3). Ctrl-w J(把当前窗口移到最下边)
4). Ctrl-w L(把当前窗口移到最右边)
其中1)和3)两个操作会把窗口改成水平分割方式。
4 光标移动
接下来试试在行间移动光标,可以看到左右两侧的屏幕滚动是同步的。这是因为"scrollbind"选项被设置了的结果,vim会尽力保证两侧文件的对齐。如果不想要这个特性,可以设置:
:set noscrollbind
5.差异点跳转
使用快捷键在各个差异点之间快速移动。跳转到下一个差异点
]c
反向跳转是:
[c
如果在命令前加上数字的话,可以跳过一个或数个差异点,从而实现跳的更远。比如如果在位于第一个差异点的行输入"2]c",将越过下一个差异点,跳转到第三个差异点
6.文件合并
文件比较的最终目的之一就是合并,以消除差异。如果希望把一个差异点中当前文件的内容复制到另一个文件里,可以使用命令
dp (diff "put")
注意,修改的结果是将光标所在文件的差异点merge到另一个文件中
如果希望把另一个文件的内容复制到当前行中,可以使用命令
do (diff "get",之所以不用dg,是因为dg已经被另一个命令占用了)
7.文件跳转
如果希望在两个文件之间来回跳转,可以用下列命令序列
Ctrl-w, w
8.手动刷新比较结果
在修改一个或两个文件之后,vimdiff会试图自动来重新比较文件,来实时反映比较结果。但是也会有处理失败的情况,这个时候需要手工来刷新比较结果:
:diffupdate
9.撤销修改
如果希望撤销修改,可以和平常用vim编辑一样,直接
但是要注意一定要将光标移动到需要撤销修改的文件窗口中
10.对两个文件操作
退出两个文件
:qa
保存全部文件
:wa
保存全部文件,然后退出:
:wqa
退出的时候不希望保存任何操作的结果:
:qa!
11.上下文的展开和查看
Vimdiff 缺省是会把不同之处上下各 6 行的文本都显示出来以供参考。其他的相同的文本行被自动折叠。 如果希望修改缺省的上下文行数,可以这样设置:
:set diffopt=context:3
简单的折叠命令来临时展开被折叠的相同的文本行
zo (folding open,之所以用z这个字母,是因为它看上去比较像折叠着的纸)
用下列命令来重新折叠:
zc (folding close)