vim diff的介绍

启动diff

在VIM中开启diff的方式有很多,下面介绍几种常用的场景。

外部直接打开两个文件

1
2
3
4
# 直接使用vimdiff指令
vimdiff FILE_1 FILE_2
# 使用vim指令加-d参数
vim -d FILE_1 FILE_2

打开文件之后再进行文件比较

1
2
3
4
5
6
# 先打开一个文件,再打开另一个文件进行对比
vim FILE_1
:vertical diffsplit FILE_2
# 直接打开两个文件,在进行比较
vim -On FILE_1 FILE_2
:diffthis # 要在两个窗口都输入

改变文件位置

可以根据个人习惯和文件格式来更改对比文件的显示位置。

1
2
3
4
Ctrl-w K # 把当前窗口移到最上边
Ctrl-w H # 把当前窗口移到最左边
Ctrl-w J # 把当前窗口移到最下边
Ctrl-w L # 把当前窗口移到最右边

锁定和解锁

在进行文件比较时,默认是锁定了两个文件的滚动条的。

1
2
:set noscrollbind # 解锁
:set scrollbind # 锁定(会重新对齐)

移动光标

在修改文件时需要移动光标位置,VIM下的移动方式都可以,但是多了一个跳转到差异行的快捷键。

1
2
3
4
]c # 跳到下一个差异点
[c # 跳到上一个差异点
n]c # 越过n哥差异点跳到下一个差异点
n[c # 越过n哥差异点跳到上一个差异点

文件合并

比较文件的目的一般是将两个文件合并为一个文件,diff提供了便捷的合并方式。

1
2
dp # diff “put” 将此文件的内容复制到另外一个文件中
do # diff “get” 将另外一个文件的内容复制到此文件中

手动修改

如果两边的文件都不尽如人意,你可以跳转到相应窗口,手动修改文件。

1
2
3
4
5
ctrl+w # 跳转到下个窗口
ctrl+h # 跳转到左边窗口
ctrl+j # 跳转到下面窗口
ctrl+k # 跳转到上面窗口
ctrl+l # 跳转到右边窗口

手动更新

有时,在修改完成后,VIM并没有自动刷新差异项,这时,我们需要手动更新文件。

1
:diffupdate

折叠无差异项

VIM是默认折叠无差异项的,我也可以手动打开和折叠,协助比较。

1
2
zo # folding open 展开无差异项
zc # folding close 折叠无差异项

修改上下文行数

VIM默认显示6行上下文,我们可以根据自己需求修改。

1
:set diffopt=context:n # 设置显示n行上下文

发表评论