Emacs ediff 不均匀地滚动缓冲区

Emacs ediff 不均匀地滚动缓冲区

在 Emacs ediff 中,我可以使用vV来上下滚动我同时比较的缓冲区。

然而,我注意到:

  1. 如果我开始滚动每个缓冲区独立
  2. 然后将点(光标)放在两个缓冲区的第一行上,
  3. 尝试使用同时移动它们v

那么缓冲区不会均匀地滚动(例如,右侧的缓冲区会额外滚动一行)。

我注意到,如果我关闭 ediff 会话并打开一个包含这两个文件的新会话,问题就会消失。

这些文件在各自文件末尾附近有一些实质性差异,但对于前 2K 行左右,它们是相同的。

如果这是一个错误,我会感到非常惊讶,所以一定有一些我不理解的地方。有没有控制滚动的参数?快捷键vV应该使两个缓冲区滚动相同的量,对吗?

我正在比较的文件每行都以CR LF.我在下面包含了来自替代编辑器(Notepadd++)的快照:

   在此输入图像描述

注意:这是 Emacs 23.3.1(最新的稳定版本)

答案1

Emacs 按屏幕行而不是物理行滚动,因此,如果物理行在一个窗口中占用两个屏幕行(由于环绕),而在另一个窗口中仅占用一个屏幕行(由于该窗口更宽),那么当您滚动时窗口放在一起它们会不同步。如果您遇到这种情况,您可以使用以下方法解决问题

(setq 截断部分宽度窗口 t)

当您从中间分割 Emacs 框架时,这会关闭环绕,因此物理行将在两个窗口中占据一根屏幕行。

相关内容