Come forzare l'apertura di un buffer specifico in una nuova finestra?


12

Quando si effettuano modifiche in Magit, è utile avere la vista diff aperta durante l'aggiunta di dettagli sul commit.

In Magit, vediamo la differenza nel *magit ..*buffer. Quando si colpisce cc, mentre il cursore si trova su un Staged file, il Magit commettere tampone .. COMMIT_EDITMSGsi apre. Per impostazione predefinita, questo nuovo buffer sostituisce il *magit ..*buffer che mostrava le differenze di commit.

DOMANDA - Come posso .. COMMIT_EDITMSGaprire il buffer in una nuova finestra (riutilizzare una finestra diversa o creare una nuova finestra se il frame aveva solo 1 finestra per cominciare) in modo che io possa vedere sia il buffer *magit ..*che il .. COMMIT_EDITMSGbuffer?


Risposte:


17

È possibile configurare come si apre un buffer (nello stesso frame / finestra o in un frame / finestra diversi) utilizzando display-buffer-alist. Fare riferimento ai riferimenti seguenti per ulteriori informazioni su questa variabile.

Soluzione

Dobbiamo dire a emacs di aprire sempre i buffer che finiscono con COMMIT_EDITMSGin una finestra ma non nella stessa ( *magit ..*) finestra.

Aggiungi il seguente frammento al init.eldopo (require 'magit)per specificare questa azione.

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

Analisi della soluzione

display-buffer-alistè un alistche chiama un FUNCTION(o un elenco di funzioni) con ALISTparametri quando a CONDITIONè vero. Il display-buffer-alistpuò essere rappresentato come,

'(CONDITION . (FUNCTION . ALIST))
  • Ecco CONDITIONche il nome del buffer termina con COMMIT_EDITMSGe che è rappresentato da ".*COMMIT_EDITMSG".
  • La FUNCTIONchiamata è display-buffer-pop-up-windowcome vogliamo creare una finestra per questo buffer. Invece di specificare la funzione da sola, viene inserita come un elenco di una singola funzione in (display-buffer-pop-up-window)modo che più funzioni possano essere facilmente aggiunte all'elenco se necessario in futuro.
  • Il ALISTcontiene (inhibit-same-window . t)poiché non vogliamo che questo buffer si apra nella stessa finestra.

Riferimenti


2

A partire da v2.1.0Magit per impostazione predefinita, vengono visualizzate le modifiche che vengono impegnate insieme al buffer utilizzato per scrivere il messaggio di commit.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.