vimdiff: 使用Vim中強大的文件diff功能[轉]

學習了一段時間的Vim,直到最近才發現Vim的diff功能是如此方便,對比代碼變化不再用處處去找diff軟件或者依靠版本控制的diff了。強大的Vim。vim

下圖是我在macVim中的diff效果。bash

屏幕快照-2014-05-28-下午9.26.59.png

下面是vimdiff的常見用法,總結了一下,不仔細看一遍手冊,在各類場景下還真不必定能立刻想到最合適的命令。學習

 

在終端中直接以diff模式打開Vim:spa

1 vimdiff file1 file2 [file3 [file4]] #或者
2 vim -d file1 file2 [file3 [file4]]
 

使用GUI(gVim)的話:版本控制

1 gvimdiff file1 file2 [file3 [file4]]
2  
3 #或者
4  
5 vim -d -g file1 file2 [file3 [file4]]

mac用戶使用macVim的話以下,這是vim doc中沒有提到的:code

1 mvim -d -g file1 file2 [file3 [file4]]

上面的操做將會用vertical分割的方式打開文件進行diff,若是要使用水平分割,能夠加入參數-oblog

1 vimdiff -o file1 file2
2  
3 #或者以下,gvim和macvim類推
4  
5 vim -d -o file1 file2

前面是使用diff模式直接打開Vim的方法,若是已經在Vim中要啓用diff模式,則使用如下命令:it

1 :diffs[plit] {filename} #在當前窗口分割,載入另外一個文件filename進行diff
2  
3 :difft[his] #將當前文件加入diff
4  
5 :diffp[atch] {patchfile} #將buffer中的文件載入當前窗口進行diff
 

以上操做均可以加入 vimdiff 的其餘 -options。io

若是在載入文件時要使用縱向分割,能夠加上vert前綴命令:class

1 :vert diffs file2.txt
 

文件改動後,要刷新diff,可使用diffupdate命令

1 :diffu[pdate] #更新diff
2  
3 :diffu[pdate] ! #對全部文件更新diff

在diff中的跳轉:

1 ] c #下一個不一樣
2 [ c #上一個不一樣

在diff模式中,要關閉diff模式返回正常模式,可使用diffoff命令:

1 :diffo[ff] #將目前文件退出diff模式
2  
3 :diffo[ff]! #將目前窗口中的全部文件退出diff模式

以上就是經常使用的vimdiff命令和方法,還有不少複雜的命令沒有研究和列舉,例如diffexpr, diffcopying 等等,功能就更增強大了。

在版本文件中隨意切換、diff和跳轉查看變動,在Vim中就是如此簡單!

相關文章
相關標籤/搜索