使用Vim比較兩個文件的內容
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)
個人注釋:不能有空格:diffput,diffget.
8. 上下文的展開和查看
比較和合並文件的時候經常需要結合上下文來確定最終要采取的操作。Vimdiff 缺省是會把不同之處上下各 6 行的文本都顯示出來以供參考。其他的相同的文本行被自動折疊。如果希望修改缺省的上下文行數為3行,可以這樣設置:
:set diffopt=context:3
9.展開折疊
可以用簡單的折疊命令來臨時展開被折疊的相同的文本行:
zo(小寫字母'l'也可以打開折疊) (folding open, z這個字母看上去比較像折疊的紙)
然後可以用下列命令來重新折疊:
zc (folding close)
zf 創建折疊(使用數字表示創建有當前行到下多少行的折疊,比如3j就創建包括4行的折疊)
zm 關閉所有折疊
zr 打開所有折疊
zE 刪除所有折疊
zd 刪除當前折疊
za 若當前打開則關閉,若當前關閉則打開
zj 到下一折疊的開始處
zk 到上一折疊的末尾