2012-11-20 29 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控制缓冲命令。

这不回答你的直接问题,但使得它毫无意义。