成功后终止编译缓冲区

成功后终止编译缓冲区

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 行。

如果你读到这里——我要谢谢你 :)

相关内容