emacs - 如何在递归编辑期间防止编译滚动输出出现 "unstuck"?

标签 emacs elisp

当 Emacs 进入 recursive-edit 时 - 例如当进入 M-x 的迷你缓冲区时(又名 execute-extended-command) -它似乎记得当前状态的某些方面,并在递归编辑因错误退出时恢复它们。在恢复的状态位中是所有可见窗口的 (window-point)

这意味着如果您将 compilation-scroll-output 设置为 t,然后:

  1. 你运行 (compile ...) 它正在做它的事情,逐渐产生输出...
  2. 然后你点击 M-x 并开始输入扩展命令...
  3. 然后你停下来想一想,同时产生了一些额外的输出行......
  4. 然后认为您认为该扩展命令毕竟更好,然后按 C-g 取消它...

将会发生的是,你的编译窗口中的点将向后跳到步骤 2 开始时的位置。这意味着编译窗口中的点不再位于 (point-max ),因此当产生新的输出时窗口停止滚动。

我不了解你,但由于我通常使用 Emacs,所以我倾向于至少进行一些递归编辑并至少取消其中一些。所以这意味着在某些时候,我的编译窗口总是无法卡住,我必须经常切换到它和 M->

是否有 customize 选项来禁用此行为,以便 window-point 保持在原处,或者是修复问题的 elisp 片段,甚至是退出递归编辑时执行的特定 Hook ,具有足够的信息来判断退出编辑之前点的位置?

最佳答案

  1. M-x 不进入递归编辑。有关递归编辑的信息,请参阅 Emacs 手册,节点 Recursive Edit
  2. 您所描述的听起来像是 Emacs 错误。考虑使用 M-x report-emacs-bug,提供您的方法(最好从 emacs -Q 开始)。

关于emacs - 如何在递归编辑期间防止编译滚动输出出现 "unstuck"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8528313/

相关文章:

emacs - 如何使用 Emacs 同时修改两个匹配的分隔符?

python-mode 6.0.12 返回或传递后缩进

emacs - transient 标记模式、预命令 Hook 和带电流缓冲区

emacs - 从 elisp 正确调用交互式脚本

emacs - 组织模式下的 secret 结构?

emacs - 更改自动完成的键绑定(bind)

emacs - 是否可以从其他代码块调用 Org Babel 代码块?

vim - Emacs的Command-T?

Emacs Lisp 函数,将区域写入文件并将其删除

emacsclient 不评估颜色主题?