Wie erzwinge ich das Öffnen eines bestimmten Puffers in einem neuen Fenster?

12

Wenn Sie Änderungen in Magit festschreiben, ist es hilfreich, die Diff-Ansicht geöffnet zu haben, während Sie Details zum Festschreiben hinzufügen.

In Magit sehen wir den Unterschied im *magit ..*Puffer. Wenn Sie drücken, ccwährend sich der Cursor auf einer Staged- Datei befindet, wird der Magit-Festschreibungspuffer .. COMMIT_EDITMSGangezeigt. Standardmäßig ersetzt dieser neue Puffer den *magit ..*Puffer, in dem die Festschreibungsdifferenzen angezeigt wurden.

FRAGE - Wie .. COMMIT_EDITMSGöffne ich den Puffer in einem neuen Fenster (verwende ein anderes Fenster erneut oder erstelle ein neues Fenster, wenn der Rahmen zu Beginn nur 1 Fenster hatte), damit ich sowohl den *magit ..*als auch den .. COMMIT_EDITMSGPuffer sehen kann?

Kaushal Modi
quelle

Antworten:

17

Es ist möglich zu konfigurieren, wie ein Puffer geöffnet wird (im selben Frame / Fenster oder in einem anderen Frame / Fenster) display-buffer-alist. Weitere Informationen zu dieser Variablen finden Sie in den nachstehenden Referenzen.

Lösung

Wir müssen Emacs anweisen, immer Puffer zu öffnen, die COMMIT_EDITMSGin einem Fenster enden, aber nicht in demselben ( *magit ..*) Fenster.

Fügen Sie das folgende Snippet zum init.elafter hinzu (require 'magit), um diese Aktion anzugeben.

(add-to-list 'display-buffer-alist
                 '(".*COMMIT_EDITMSG". ((display-buffer-pop-up-window) .
                                        ((inhibit-same-window . t)))))

Aufschlüsselung der Lösung

display-buffer-alistist ein alistAufruf von a FUNCTION(oder einer Liste von Funktionen) mit ALISTParametern, wenn a CONDITIONwahr ist. Die display-buffer-alistkann dargestellt werden als,

'(CONDITION . (FUNCTION . ALIST))
  • Hier CONDITIONendet der Puffername mit COMMIT_EDITMSGund wird durch dargestellt ".*COMMIT_EDITMSG".
  • Der FUNCTIONAufruf ist, display-buffer-pop-up-windowwie wir ein Fenster für diesen Puffer erstellen möchten. Anstatt die Funktion selbst anzugeben, wird sie als Liste einer einzelnen Funktion (display-buffer-pop-up-window)eingefügt, sodass bei Bedarf in Zukunft problemlos weitere Funktionen zur Liste hinzugefügt werden können.
  • Das ALISTenthält, (inhibit-same-window . t)da wir nicht möchten, dass dieser Puffer im selben Fenster geöffnet wird.

Verweise

Kaushal Modi
quelle
2

v2.1.0Wenn Sie standardmäßig mit Magit beginnen, werden die Änderungen neben dem Puffer angezeigt, der zum Schreiben der Festschreibungsnachricht verwendet wird.

Tarsius
quelle