2013-08-01 98 views
2

當在vim中分析兩個文件(例如vim -d file1 file2)時,我想要忽略所有空白。 Is there a way to configure vimdiff to ignore ALL whitespaces?有沒有辦法將vimdiff配置爲忽略具有非空白區分的行上的空格?

該建議會引起diff命令來獲取-w選項,以便它不包括只有空白的差異線:

我幾乎在這個問題下面亞當·卡茨的意見達到了這個在結果中。

如果存在一個包含空白區和非空白區的區別,那麼這些區域會被diff正確返回。但是vim也突出了空白。

E.g.如果正在顯示差異兩條線:

File 1: a,b,c,d 
File 2: a, b, c, e 

然後突出顯示的差異將是b, c, e,而不是我所希望的e

有沒有什麼辦法告訴vim忽略高亮過程中的空白?

我使用vim 7.3(gvim)。

回答

2

diff操作上線,而不是字符或單詞,所以-b-w確定要忽略的。如果行不會被忽略,這是每當非空白改變的參與(除非你忽略大小寫或明確忽略匹配一些正則表達式線)的情況下,diff總會輸出是這樣的:

1c1 
< a,b,c,d 
--- 
> a, b, c, e 

改變diffopt或即使diffexpr也隻影響Vim調用diff的方式,而不影響它如何處理它接收的差異。由於-b-w都不會改變上面的差異,因此Vim會顯示相同的結果。因此,您正在尋找的是一種方法來改變Vim如何突出顯示它接收到的差異,我認爲這是不可能的。

+0

我想你是對的,這是不可能的。至少在目前版本的Vim中不存在。謝謝 – Bjorn

0

文件1 = F1, 文件2 = F2

約在另一個臨時文件刪除空格什麼?

vim -c "s/\s//g" -c "wq! f2.tmp" f2 

然後

vimdiff f1 f2.tmp 
+0

這是一個有趣的解決方法。它可能在某些情況下運行良好,但會使閱讀/理解變更的背景變得更加困難。謝謝! – Bjorn

相關問題