我最近从Carbon Emacs(v22.3)升级到vanilla Emacs 23.2(来自http://www.emacsformacosx.com).在编译项目时,Carbon Emacs将框架分为两部分,顶部窗口中的当前源文件/ SConscript和底部窗口中的编译输出.我点击C-x `导航到编译输出中的第一个警告或错误,它将替换顶部窗口中的错误或警告所在的源文件.
但是,在Emacs 23.2中,打开第3个窗口,导致在框架的上半部分(垂直分割)打开两个窗口,并在框架的下半部分的窗口中打开编译输出.如何告诉Emacs不打开新窗口而是打开框架中现有的非编译器输出窗口中的代码?
对我刚才注意到的行为做了一点进一步的澄清.如果C-x `在包含源文件或SConscript文件的缓冲区处于活动状态时命中,则不会打开新窗口.只有当我手动浏览*编译*缓冲区并按下输入错误或警告,或者在第三个缓冲区窗口出现时鼠标单击警告时.
next-error
在功能中使用的函数pop-to-buffer
又使用split-window-sensibly
. split-window-sensibly
您可以通过调整变量split-width-threshold
和来控制 的行为split-height-threshold
。
就你而言,它split-width-threshold
太小了。在我的 emacs 23.1 中,它设置为 160。只需将其设置为更大的数字,问题就应该解决:
(setq split-width-threshold 200)
Run Code Online (Sandbox Code Playgroud)