天天看點

使用Vim比較兩個檔案的内容

使用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)

8. 上下文的展開和檢視

比較和合并檔案的時候經常需要結合上下文來确定最終要采取的操作。Vimdiff 預設是會把不同之處上下各 6 行的文本都顯示出來以供參考。其他的相同的文本行被自動折疊。如果希望修改預設的上下文行數為3行,可以這樣設定:

:set diffopt=context:3

zf   建立折疊(使用數字表示建立有目前行到下多少行的折疊,比如3j就建立包括4行的折疊)

    zo   打開折疊(l也可以打開折疊)

    zc   關閉目前折疊

    zm   關閉所有折疊

    zr   打開所有折疊

    zE   删除所有折疊

    zd   删除目前折疊

    za   若目前打開則關閉,若目前關閉則打開

    zj   到下一折疊的開始處

    zk   到上一折疊的末尾

人就像是被蒙着眼推磨的驢子,生活就像一條鞭子;當鞭子抽到你背上時,你就隻能一直往前走,雖然連你也不知道要走到什麼時候為止,便一直這麼堅持着。