aquamacs
我在 Mac OS X 上使用。我的.emacs
文件中有以下内容:
(setq compilation-window-height 8)
(setq compilation-finish-function
(lambda (buf str)
(if (string-match "exited abnormally" str)
;;there were errors
(message "compilation errors, press C-x ` to visit")
;;no errors, make the compilation window go away in 0.5 seconds
(run-at-time 0.5 nil 'delete-windows-on buf)
(message "NO COMPILATION ERRORS! Thank you dear compiler..."))))
假设我.cpp
在框架中单独打开了一个文件。然后,当点击C-c C-c
编译时,框架被水平分割,在底部我得到了编译缓冲区。如果编译正常退出,则编译缓冲区将关闭,分割消失。否则,它将保持打开状态,我可以查看错误。到目前为止,一切顺利!
问题是,如果我首先有一个分割框架,然后C-c C-c
将下半部分的大小调整为 8 行,在下半部分打开编译缓冲区(在新选项卡中)并进行编译。如果编译成功,则下半部分将关闭,也就是之前存在的缓冲区C-c C-c
也将关闭。
理想情况下,我希望C-c C-c
在新的拆分中启动编译缓冲区(始终),并且不会使用现有的(如果存在)。另一个完美的解决方案是修改上面的代码,以便关闭标签包含成功编译后的编译缓冲区。这样,如果编译是唯一的选项卡,则拆分将消失,否则,无论编译是否成功,之前打开的选项卡在编译结束后也将保持不变。在这种情况下,编译窗口的高度可能应该等于现有拆分的高度,否则为 8 行。
如果你读到这里——我要谢谢你 :)