【发布时间】:2012-04-06 04:46:44
【问题描述】:
当 Emacs 进入 recursive-edit 时——例如,当进入 M-x(AKA execute-extended-command)的 minibuffer 时——它似乎会记住当前状态的某些方面,并在递归时恢复它们编辑退出并出现错误。恢复的状态位包括所有可见窗口的(window-point)。
这意味着如果您将compilation-scroll-output 设置为t,然后:
- 你运行
(compile ...),它正在做它的事情,逐渐产生输出...... - 然后你点击 M-x 并开始输入扩展命令...
- 然后你会停下来想一想,同时产生了几行额外的输出...
- 然后认为你认为那个扩展命令更好,然后按 C-g 取消它...
会发生什么情况是编译窗口中的点将向后跳转到第 2 步开始时的位置。这意味着编译窗口中的点不再位于(point-max),因此当产生新的输出时,窗口停止滚动。
我不了解你,但由于我正常使用 Emacs,我倾向于进行至少一些递归编辑并取消其中至少一些。所以这意味着在某些时候,我的编译窗口总是卡住了,我必须经常切换到它和 M->。
是否有一个 customize 选项来禁用此行为,以便 window-point 停留在原处,或者修复问题的 elisp 的 sn-p,或者甚至是在递归编辑时执行的特定钩子已退出,并且有足够的信息来说明退出该编辑之前该点的位置?
【问题讨论】: