Убить буфер компиляции после успеха


3

я использую 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 запустите буфер компиляции в новом split (всегда) и не будете использовать существующий (если он существует). Другим идеальным решением будет изменение кода, приведенного выше, чтобы он закрывал табуляция содержащий буфер компиляции после успешной компиляции. Таким образом, если компиляция была единственной вкладкой, то разделение исчезнет, ​​и в противном случае ранее открытые вкладки останутся без изменений и после окончания компиляции, независимо от того, была она успешной или нет. В этом случае, вероятно, высота окна компиляции должна быть равна высоте существующего разделения, и 8 строк в противном случае.

Если вы читали до сих пор - спасибо за это в одиночку :)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.