当Emacs输入recursive-edit
时 - 例如当输入 Mx (AKA execute-extended-command
)的迷你缓冲区时 - 它似乎记住当前状态的某些方面,并恢复如果递归编辑退出时出现错误。恢复状态的位数是所有可见窗口的(window-point)
。
这意味着如果您将compilation-scroll-output
设置为t
,那么:
(compile ...)
正在做的事情,逐渐产生输出...... 将会发生的事情是编译窗口中的点将向后跳转到步骤2开头的位置。这意味着编译窗口中的点不再是(point-max)
,并且因此,当生成新输出时,窗口会停止滚动。
我不了解你,但由于我正常使用Emacs,我倾向于进行至少一些递归编辑并取消至少一些。所以这意味着在某些时候,我的编辑窗口总是不稳定,我必须经常切换到它和 M-> 。
是否有customize
选项可以禁用此行为,以便window-point
保持原样,或者修复问题的elisp片段,甚至是递归时执行的特定挂钩编辑已退出,有足够的信息可以告诉退出编辑之前该点的位置?
答案 0 :(得分:1)
Recursive Edit
。M-x report-emacs-bug
,提供您的食谱(最好从emacs -Q
开始)。答案 1 :(得分:1)
这确实是一个错误,你最好用M-x report-emacs-bug
报告它,以便它可以在某个时候得到修复。同时,一种解决方法是将编译缓冲区放在一个单独的帧中,因为此迷你缓冲区输入执行的“保存和恢复”仅影响当前帧。