Töte den Kompilierungspuffer nach Erfolg

785
Dror

Ich verwende aquamacsMac OS X. In meiner .emacsDatei habe ich Folgendes:

(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...")))) 

Angenommen, ich habe eine .cppDatei alleine im Frame geöffnet. Beim C-c C-cKompilieren wird der Frame dann horizontal geteilt, und unten bekomme ich den Kompilierungspuffer. Wenn die Kompilierung normal beendet wird, wird der Kompilierungspuffer geschlossen und die Aufteilung ist weg. Ansonsten bleibt es offen und ich kann die Fehler überprüfen. So weit, ist es gut!

Das Problem ist, wenn ich an erster Stelle einen Split-Frame hatte, dann die C-c C-cGröße des unteren Teils auf 8 Zeilen ändert, den Kompilierungspuffer im unteren Teil (in einem neuen Tab) öffnet und kompiliert. Wenn die Kompilierung erfolgreich ist, wird der untere Teil geschlossen, d. H. Der Puffer, der vor dem C-c C-cSchließen vorhanden war.

Idealerweise möchte ich, dass C-c C-cein Kompilierungspuffer in einem neuen Split (immer) gestartet wird und keinen vorhandenen Puffer verwendet (falls vorhanden). Eine andere perfekte Lösung wäre, dass der obige Code so geändert wird, dass er die Registerkarte mit dem Kompilierungspuffer nach einer erfolgreichen Kompilierung schließt . Wenn die Zusammenstellung die einzige Registerkarte war, ist die Aufteilung auf diese Weise weg. Andernfalls bleiben die zuvor geöffneten Registerkarten auch nach dem Ende der Zusammenstellung erhalten, unabhängig davon, ob sie erfolgreich war oder nicht. In diesem Fall sollte die Höhe des Zusammenstellungsfensters wahrscheinlich der Höhe der vorhandenen Teilung entsprechen, andernfalls 8 Zeilen.

Wenn du bisher gelesen hast - danke schon alleine dafür :)

3

0 Antworten auf die Frage