使用 vimdiff 比较文件的技巧

版权声明:精心研究,潜心学习,本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33468857/article/details/87966457

1. 使用 vimdiff 命令可以比较两个文件的差异,不同的地方高亮显示,如下图所示:

2. 在一行不同处,输入do可将另一个buffer的改动应用于当前buffer,输入dp 可将当前buffer的该行内容应用于另一个buffer。

3. 输入] c跳到下一个不同行;输入[c 跳到上一个不同行。

4. 横向对比时,由于屏幕宽度有限,所以每次要到两个buffer分别:set wrap来使其折行,为了方便,写一个键盘影射来使用,修改~/.vimrc文件,添加下面的内容:
 

func Wrap()
    :set wrap
endfunc
map <F10>       :call Wrap() <CR><C-W><C-W> :call Wrap() <CR> <C-W><C-W>
imap <F10>      <Esc>:call Wrap() <C-W><C-W> :call Wrap() <C-W><C-W> 

1. 使用vim的比较模式打开两个文件:
vim -d file1 file2

vimdiff file1 file2
2. 如果已经打开了文件file1,再打开另一个文件file2进行比较:
:vert diffsplit file2
如果没有用vert命令,diffsplit则会分上下两个窗口。

3. 如果已经用split方式打开了两个文件file1,file2,又想比较两文件的不同。
分别在两个窗口里面输入命令:
:diffthis

4. 如果更改了某个窗口的内容,vim又没有自动更新diff检查,可以使用如下命令更新:
:diffupdate

5. 定位到不同点:
[c     跳到前一个不同点
]c     跳到后一个不同点

6. 在窗口间跳转:
ctrl-w w    跳到下一个窗口
ctrl-w h    跳到左侧窗口
ctrl-w l    跳到右侧窗口
ctrl-w j    跳到下方的窗口
ctrl-w k    跳到上方的窗口

7. 合并文档:
dp          将差异点的当前文档内容应用到另一文档(diff put)
do          将差异点的另一文档的内容拷贝到当前文档(diff get)

8. 上下文的展开和查看
比较和合并文件的时候经常需要结合上下文来确定最终要采取的操作。Vimdiff 缺省是会把不同之处上下各 6 行的文本都显示出来以供参考。其他的相同的文本行被自动折叠。如果希望修改缺省的上下文行数为3行,可以这样设置:
:set diffopt=context:3

可以用简单的折叠命令来临时展开被折叠的相同的文本行: 
zo          (folding open, z这个字母看上去比较像折叠的纸)

然后可以用下列命令来重新折叠: 
zc          (folding close)
 

猜你喜欢

转载自blog.csdn.net/qq_33468857/article/details/87966457
今日推荐