7

我想仔细比较 C++ 中有两个类似的函数。我正在使用 emacs 函数ediff-regions-linewise逐行比较它们。许多行在它们的空白处有细微的差别,例如:

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

Ediff-mode 足够聪明,可以知道哪些部分仅因空格不同:该命令##名义上的意思是“忽略空格”。它只会使光标跳过不同的部分,但仍会突出显示仅由空格不同的行,就像突出显示在某些重要方面不同的行一样。

有没有办法让 ediff-mode 停止突出显示仅因空格而不同的行?

4

3 回答 3

6

我在我的 Emacs 配置中有以下设置来禁用差异时的空格(查看man diff它的作用):

(setq ediff-diff-options "-w")
于 2012-11-20T09:29:15.670 回答
1

我有这两个设置,它们具有执行您所要求的净效果:

(setq-default ediff-ignore-similar-regions t)
(setq-default ediff-highlight-all-diffs nil)
于 2012-11-20T00:45:56.540 回答
1

虽然(setq ediff-diff-options "-w")可能会一针见血,但其他日子可能会隐藏错误。

ediff菜单建议用于##切换空白差异。

启用空白忽略移动命令 ( n/ p) 会跳过只有空白差异的大块。

C-c C-bEmacs 具有通过不同面(或)突出显示非空白差异的命令M-x diff-refine-hunk。它放置与差异案例相同颜色的叠加层:

diff-removed-face
diff-added-face
diff-indicator-added-face
diff-indicator-removed-face

要使差异可见,请使用以下内容:

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

h还可以在 ediff 控制缓冲区中尝试命令。

这并不能回答您的直接问题,而是使其毫无意义。

于 2017-05-09T21:53:42.443 回答