我通常使用emacs将单个帧拆分为垂直堆叠的2个窗口。
在emacs 23(以及之前)中,当我遇到带有编译器警告的行时,echo区域/迷你缓冲区将展开以显示消息的整个文本(如果消息是多行),但是2个主窗口将不受影响(因此底部窗口可能会暂时丢失一行或2个显示屏。)
然而,在emacs 24中,整个底部窗口(迷你缓冲区上方)向上移动,以便顶部窗口最终暂时丢失一行或2个显示。我发现在整个底部窗口转移并且想要回到emacs 23(及更早版本)的行为时,它在视觉上令人不安。
我查看了emacs手册(窗口,框架,迷你缓冲区,回显区域)和版本24 NEWS,但未能找到任何可能导致此行为的变更或可能导致的变量控制这种行为。任何指针都将非常感激。
更新:
重现行为:
"*scratch*"
缓冲区eval-last-sexp
, Cx Ce ),确保测试消息足够长,以便包装在窗口中 (message "this is a very long message that will cause the minibuffer window to show more than one line of text and cause the whole bottom window to shift as a result in emacs 24")
这会导致 "*scratch*"
缓冲区窗口在迷你缓冲区显示消息时向上移动,并在消息消失时退回。如果你在emacs 23中尝试相同的测试,"*scratch*"
缓冲区窗口将不会移动。
更新2:
进一步澄清(也许我的描述让一些人感到困惑),但问题是不与迷你缓冲行为。迷你缓冲区的行为很好,并没有改变(它暂时调整大小以显示所有文本)。我所指的行为是上面的窗口迷你缓冲区(2个主缓冲区窗口的下窗口)。在emacs 23中,这个窗口根本没有移动(因此下面的行暂时被遮挡)。在emacs 24中,当迷你缓冲区调整大小时,此窗口中的所有文本都会向上移动。这是一个新的,有问题的行为。
答案 0 :(得分:1)
虽然我不知道究竟是什么原因导致您所拥有的版本中的行为发生了这种变化,但它似乎在24.2.50.1中得到了恢复,并且希望在以后的版本中得到恢复。