2012-11-20 174 views
4

我在C兩個類似的功能++,我要仔細比較。我使用emacs功能ediff-regions-linewise逐行比較它們。許多線路都在他們的空白小的差異,例如:如何獲得ediff模式以停止突出顯示僅由空白不同的行?

//Line from first function 
somefunc(i,j); 
//Line from second function 
somefunc(i, j); 

Ediff模式是足夠聰明,知道哪些部分僅由空格不同:命令##名義上的意思是「忽略空白」。它不僅會導致光標跳過那些不同的部分,但仍然強調了它強調了在某些方面的事項不同線路以同樣的方式不同之處僅由空格線。

有沒有辦法讓ediff模式停止突出是因爲空白的唯一不同的線路?

回答

3

我有以下設置在我的Emacs配置版本比較時禁用空白(見man diff什麼它):

(setq ediff-diff-options "-w") 
1

我有有這樣做的實際效果你問這兩個設置:

(setq-default ediff-ignore-similar-regions t) 
(setq-default ediff-highlight-all-diffs nil) 
+0

這並不強調所有具有非空白差異線,它只能通過差異做的。它比我使用的更好,但我仍然喜歡所有非空白區分突出顯示(如果可能的話)。 – Dan

+1

@Dan嘗試只有你的.emacs中的第一行。 –

1

雖然(setq ediff-diff-options "-w")可能擊中它可能隱藏缺陷其他日子指甲。

ediff菜單建議使用切換空白差異。

啓用空白無知移動命令(Ñ/p)跳過與只有空白差異大塊。

Emacs的默認情況下,突出展示了不同的面孔非空白差異。但默認情況下,它們具有相同的顏色。因此,爲了使它們可見使用這樣的:

(set-face-foreground 'diff-added-face "DarkGreen") 
(set-face-foreground 'diff-removed-face "DarkRed") 
(set-face-background 'diff-refine-change "LightBlue1") 

也可以嘗試的H ediff控制緩衝命令。

這不回答你的直接問題,但使得它毫無意義。