Emacs ediff 不显示基于内联单词的差异

Emacs ediff 不显示基于内联单词的差异

我正在使用带有 emacs 的 ediff 来比较两个文件。并且我的 ediff 视图没有显示内联差异。例如,如果两个文件中的行只有一个词的差异,则 ediff 无法突出显示该词而是整行,我附上了下面的屏幕截图来显示这一点。

在此处输入图片描述

我打开了自动优化,我尝试*按 强制优化,但没有成功。如果我按 比较=区域,那么单词差异会显示如下,但我该如何返回完整文件比较视图?它说切换区域=,但当我再次按下时=,它并没有让我回到完整文件视图,而是要求我再次选择文件 A 和 B 的区域进行比较...

在此处输入图片描述

答案1

如果您使用 (无初始化文件) 启动 Emacs,是否会看到同样的问题 (不突出显示行内的差异) emacs -Q?我没有看到这个问题。我看到一个界面中突出显示了整行,而另一个界面中突出显示了不同的单词 (无需使用*)。

至于=:我以前从未使用过它,我发现尝试使用它存在问题。我甚至提交了 Emacs 错误 #42687现在谈谈其中的一些。

我试了一下,发现它确实(仅)导致单词 difference 被突出显示。它显然创建了一个“子”Ediff 会话,带有一个单独的控制窗口。当我退出该控制窗口(使用q)并在第一个控制窗口中使用时C-l,我恢复了原始突出显示。

但是,如果我比较的两个缓冲区位于不同的框架中,我就会遇到一系列问题 - 窗口重复、窗口太小而无法分割的错误等等。

无论如何,我认为你不想要或不需要=这里。只是常规ediff-buffers应该会像你一开始预期的那样突出显示。这就是我在这里看到的。HTH。

相关内容