Vim - 差異比較



類似於 UNIX 的 diff 命令,我們可以使用 Vim 以更佳的方式顯示差異。它將以彩色方式顯示差異。在本節中,我們將討論以下內容:

  • 顯示檔案之間的差異
  • 啟用和停用差異模式
  • 差異模式下的導航
  • 應用差異視窗中的更改

顯示差異

要顯示檔案之間的差異,請執行以下命令:

$ vimdiff <file> <file> 
OR 
$ vim –d <file> <file>

例如,以下命令顯示差異:

Show

在上圖中,以品紅色突出顯示的文字是共同的。其餘文字以紅色突出顯示,表示在公共文字之後存在一些差異。

啟用和停用差異模式

如果您已經在 vim 中並且想要執行差異操作,則可以使用以下命令之一:

diffsplit

使用以下命令執行水平分割:

:diffsplit filename

Split

上圖顯示我們正在比較兩個檔案,即 message-1.txt 和 message-2.txt。

垂直 diffsplit

要執行垂直分割,請使用以下命令:

:vert diffsplit <filename>

它將開啟以下視窗:

Vertical

上圖顯示我們正在比較兩個檔案,即 message-1.txt 和 message-2.txt。

差異模式下的導航

差異模式下的導航略有不同。例如,當您從一個視窗滾動文字時,相鄰視窗中的文字也會滾動。這稱為 scrollbind。要啟用此功能,請使用:

:set scrollbind

要停用此功能,請使用:

:set noscrollbind

如果您在此模式下編輯檔案,則使用以下命令更新差異:

:diffupdate

在差異視窗之間切換

要在差異視窗之間切換,請執行以下命令:

Ctrl + w Ctrl + w

請注意,我們必須按兩次 Ctrl + w。

跳轉到上一個更改

在差異視窗中,執行以下命令以跳轉到上一個更改:

[c

跳轉到下一個更改

在差異視窗中,執行以下命令以跳轉到下一個更改:

]c

應用差異視窗中的更改

在當前差異視窗中應用更改

要將相鄰差異視窗中的更改應用於當前差異視窗,請執行:

:diffget

例如,如果您位於左側視窗,並且想要將右側視窗中的更改應用於當前視窗,則將執行上述命令。

將當前窗格中的更改應用於另一個窗格

要將當前差異視窗中的更改應用於相鄰差異視窗,請執行:

:diffput

例如,如果您位於左側視窗,並且想要將當前視窗中的更改應用於右側視窗,則將執行上述命令。

廣告