vimdiff——好用的可视化文本对比工具
启动方法
vimdiff FILE_LEFT FILE_RIGHT
或
vim -d FILE_LEFT FILE_RIGHT
从上图我们可以看到一个清晰的比较结果。屏幕被垂直分割,左右两侧分别显示被比较的两个文件。
两个文件中连续的相同的行被折叠了起来,以便使用者能把注意力集中在两个文件的差异上。
**只在某一文件中存在的行的背景色被设置为蓝色,而在另一文件中的对应位置被显示为青色且有虚线。 **
**两个文件中都存在,但是包含差异的行显示为粉色背景,引起差异的文字用红色背景加以突出。 **
除了用这种方法启动vim的diff模式之外,我们还可以用分割窗口命令来启动diff模式:
vim FILE_LEFT
然后在vim的ex模式(也就是"冒号"模式)下输入:
:vertical diffsplit FILE_RIGHT
也可以达到同样的效果。如果希望交换两个窗口的位置,或者希望改变窗口的分割方式,可以使用下列命令:
- Ctrl-w K(把当前窗口移到最上边)
- Ctrl-w H (把当前窗口移到最左边)
- Ctrl-w J(把当前窗口移到最下边)
- Ctrl-w|(把当前窗口移到最右边)
其中1和3两个操作会把窗口改成水平分割方式。
光标移动
接下来试试在行间移动光标,可以看到左右两侧的屏幕滚动是同步的。这是因为"scrollbind"选项被设
置了的结果,vim会尽力保证两侧文件的对齐。如果不想要这个特性,可以设置:
:set noscrollbind
可以使用快捷键在各个差异点之间快速移动。跳转到下一个差异点:
]c
反向跳转是:
[c
如果在命令前加上数字的话,可以跳过一个或数个差异点,从而实现跳的更远。比如如果在位于第一
个差异点的行输入"2]c",将越过下一个差异点,跳转到第三个差异点。