Emacs 23.2 为导航到的每个编译错误/警告打开一个新窗口

标签 emacs elisp

我最近从 Carbon Emacs (v22.3) 升级到 vanilla Emacs 23.2(来自 http://www.emacsformacosx.com)。在 Carbon Emacs 上编译项目时,框架被分成两部分,当前源文件/SConscript 在顶部窗口,编译输出在底部窗口。我点击 C-x ` 导航到编译输出中的第一个警告或错误,它将用错误或警告所在的源文件替换顶部窗口中的任何内容。

然而,在 Emacs 23.2 中,打开了第三个窗口,导致在框架的上半部分(垂直拆分)打开两个窗口,并在框架的下半部分的窗口中打开编译输出。如何告诉 Emacs 不要打开新窗口,而是在框架中现有的非编译器输出窗口中打开代码?

进一步澄清我刚刚注意到的行为。如果在包含源文件或 SConscript 文件的缓冲区处于事件状态时按下 C-x `,则不会打开新窗口。只有当我手动浏览*编译*缓冲区并在出现错误或警告时按回车键,或者在出现第三个缓冲区窗口时鼠标单击警告。

最佳答案

next-error中使用的函数功能是 pop-to-buffer反过来使用 split-window-sensibly .您可以控制 split-window-sensibly 的行为通过调整变量 split-width-thresholdsplit-height-threshold .

在您的情况下,它是 split-width-threshold这太小了。在我的 emacs 23.1 中它被设置为 160。只需将它设置为更大的数字,问题应该可以解决:

(setq split-width-threshold 200)

关于Emacs 23.2 为导航到的每个编译错误/警告打开一个新窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2813273/

相关文章:

c - cedet语义解析我系统的c头文件时,出现 "Idle Parse Error":

emacs - sql-set-sqli-buffer "there is no suitable sqli buffer"

emacs - Emacs ORG 模式如何工作?

emacs - 根据值将列表列表转换为不同的列表列表

c# - Emacs 'csharp-mode' 字节编译错误

emacs - 在 SMerge 模式下更改字体锁定颜色

emacs - 隐藏抽屉或属性中的组织待办事项状态更改

emacs - emacs 启动进程输出缓冲区中的 ANSI 着色

emacs latex Hook 未运行

emacs ( 重新编译 -y )