我通常使用 emacs,将单个框架分成 2 个垂直堆叠的窗口。
在 emacs 23(及之前的版本)中,当我遇到带有编译器警告的行时,回显区域/迷你缓冲区将展开以显示消息的整个文本(如果消息超过一行),但是2 个主窗口将不受影响(因此底部窗口可能会暂时丢失一行或 2 个显示)。
然而,在 emacs 24 中,整个底部窗口(迷你缓冲区上方)向上移动,因此顶部窗口最终会暂时丢失一行或两行显示。我发现整个底部窗口发生变化,并且想回到 emacs 23(及更早版本)的行为,这在视觉上非常令人不安。
我浏览了 emacs 手册(窗口、框架、迷你缓冲区、回显区域)和版本 24 NEWS,但没有找到任何可能导致此行为的更改或可能能够的变量来控制这种行为。任何指示将不胜感激。
更新:
重现行为:
- 打开 emacs 24,将框架分成 2 个窗口,一个在另一个窗口上
- 在顶部窗口中打开一些充满文本的缓冲区
- 在底部窗口中打开
“*scratch*”
缓冲区 - 将此代码段添加到临时缓冲区并从光标处执行(使用
eval-last-sexp
、C-x C-e),确保测试消息很长足够它包裹在窗口中
(消息“这是一条非常长的消息,将导致迷你缓冲区窗口显示多行文本,并导致整个底部窗口在 emacs 24 中移动”)
这会导致"*scratch*"
缓冲区窗口在迷你缓冲区显示消息时向上移动,并在消息消失时向下移动。如果您在 emacs 23 中尝试相同的测试,"*scratch*"
缓冲区窗口将不会移动。
更新2:
为了进一步澄清(也许我的描述让一些人感到困惑),但问题不在于迷你缓冲区的行为。迷你缓冲区的行为很好并且没有改变(它暂时调整大小以显示所有文本)。我指的行为是迷你缓冲区上方的窗口(2 个主缓冲区窗口中较低的窗口)的行为。在 emacs 23 中,这个窗口根本没有移动(因此下面的线暂时被遮挡)。在 emacs 24 中,随着迷你缓冲区大小的调整,此窗口中的所有文本都会向上移动。这是新的、有问题的行为。
最佳答案
虽然我不知道到底是什么导致了您所拥有的版本中的这种行为变化,但它似乎在 24.2.50.1 以及希望更高版本中得到了恢复。
关于emacs - emacs 24 中的消息显示行为已更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13238696/