Jak wymusić otwarcie określonego bufora w nowym oknie?

12

Przy zatwierdzaniu zmian w Magit, przydatne jest, aby mieć otwarty widok różnicowy podczas dodawania szczegółów na temat zatwierdzenia.

W Magit widzimy różnicę w *magit ..*buforze. Kiedy trafisz cc, gdy kursor znajduje się nad wystawił pliku, Magit popełnić bufor .. COMMIT_EDITMSGodskoczy. Domyślnie ten nowy bufor zastępuje *magit ..*bufor, który pokazywał różnice zatwierdzeń.

PYTANIE - Jak mogę .. COMMIT_EDITMSGotworzyć bufor w nowym oknie (ponownie użyć innego okna lub utworzyć nowe okno, jeśli ramka miała tylko 1 okno na początek), aby widzieć bufory *magit ..*i .. COMMIT_EDITMSG?

Kaushal Modi
źródło
Powiązane: emacs.stackexchange.com/q/327/50
Malabarba

Odpowiedzi:

17

Możliwe jest skonfigurowanie sposobu otwierania bufora (w tej samej ramce / oknie lub innej ramce / oknie) za pomocą display-buffer-alist. Zapoznaj się z odnośnikami poniżej, aby dowiedzieć się więcej o tej zmiennej.

Rozwiązanie

Musimy powiedzieć emacsowi, aby zawsze otwierał bufory kończące się COMMIT_EDITMSGna okno, ale nie w tym samym ( *magit ..*) oknie.

Dodaj następujący fragment kodu do init.elpo, (require 'magit)aby określić tę akcję.

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

Podział rozwiązania

display-buffer-alistjest to, alistże wywołuje FUNCTION(lub listę funkcji) zALIST parametrami, gdy a CONDITIONjest prawdziwe. display-buffer-alistMogą być reprezentowane,

'(CONDITION . (FUNCTION . ALIST))
  • Tutaj CONDITIONnazwa bufora kończy się COMMIT_EDITMSGi jest reprezentowana przez ".*COMMIT_EDITMSG".
  • FUNCTIONZadzwonić to display-buffer-pop-up-windowjak chcemy utworzyć okna dla tego bufora. Zamiast określać samą funkcję, umieszcza się ją jako listę pojedynczej funkcji (display-buffer-pop-up-window), aby w razie potrzeby można było łatwo dodać do niej więcej funkcji.
  • The ALISTZawiera (inhibit-same-window . t)jak nie chcemy to bufor, aby otworzyć w tym samym oknie.

Bibliografia

Kaushal Modi
źródło
2

Zaczynając od v2.1.0Magit domyślnie pokazuje zmiany, które są zatwierdzane wraz z buforem używanym do napisania komunikatu zatwierdzenia.

Tarsjusz
źródło