2016-11-24 84 views
1

我在我的項目中修復了一些縮進問題,我正在查看前後的vimdiff輸出。我注意到,vimdiff同時似乎是因爲實際的變化是什麼很困惑,使在這種情況下,幾乎無用輸出:有沒有辦法調整vimdiff的變更行位置?

Vimdiff confused

例如,它似乎認爲第一行是新增行:

<div class="text-xs-center p-4"> 

實際上,所有改變的都是縮進。 Vimdiff沒有正確認識到這些變化。

在另一個類似的文件中,DIFF效果要好得多:

Unconfused vimdiff

我覺得不同的是,在第二個文件我沒有刪除第一行。

有沒有辦法手動修復這種東西,以便diff顯示正確?我不想更改任何一個文件,所做的更改都是正確的。但是我想告訴vimdiff它是在比較錯誤的線條。

這可能嗎?

+0

5的多餘空行很可能是罪魁禍首,在這裏。差異是逐行計算的,所以從5到EOF的所有行都是不同的。 – romainl

回答

1

底層diff工具比較各條線,無論「僅」縮進是否更改,或者更基本的東西。就像在你的第一種情況下一樣,還有一個額外的未縮進的行,所以差異認識到這一點是不變的,這就混淆了整個差異。

如果你想確保只有壓痕得到了改變,您可以通過

:set diffopt+=iwhite 

忽略空白的變化之後,DIFF應顯示以不變應萬變(或者,在你的第一個例子中,只有添加的行5)。

也許還有其他的diff工具更聰明地處理這些情況。如果你找到這樣的工具,你可以配置Vim通過'diffexpr'來使用它。

相關問題