2012-02-24 13 views
19

Sto usando Magit per lavorare con git in emacs. Ho associato lo stato di magit a una chiave, ma ogni volta che premo il tasto si apre in una divisione nella metà inferiore della finestra e devo premere C-x 1 per farlo entrare in una finestra piena. Come posso renderlo aperto in una finestra completa di default?Come aprire lo stato di magit in finestra intera

risposta

24
(setq magit-status-buffer-switch-function 'switch-to-buffer) 

o tramite customize:

M-xcustomize-variableRETmagit-status-buffer-switch-functionRET

+4

Si noti che con la corrente Magit, nuovo comportamento del buffer è gestita da 'magit-display-buffer-function'. –

+0

https://github.com/magit/magit/issues/1953 –

2

Io uso questo:

(defun my-magit-status() 
    "Don't split window." 
    (interactive) 
    (let ((pop-up-windows nil)) 
    (call-interactively 'magit-status))) 
2

Questa soluzione ha il vantaggio che si può uccidere il buffer di schermo intero in quit-window stile:

(defadvice magit-status (around magit-fullscreen activate) 
    (window-configuration-to-register :magit-fullscreen) 
    ad-do-it 
    (delete-other-windows)) 

(defadvice magit-mode-quit-window (after magit-restore-screen activate) 
    "Restores the previous window configuration and kills the magit buffer" 
    (jump-to-register :magit-fullscreen)) 

(define-key magit-status-mode-map (kbd "q") 'magit-mode-quit-window) 

Se si dispone di una versione precedente di magit quindi potrebbe essere necessario rinominare magit-mode-quit-window a magit-quit-window.

6

Ecco un altro modo per raggiungere questo obiettivo:

(add-to-list 'same-window-regexps "\*magit: .*\*")

1

Nota! Le versioni più recenti di magit utilizzano la funzione, magit-display-buffer-function, e possono essere sfruttate per ottenere lo stesso comportamento. Lo snippet seguente ti darà la taglia desiderata, a schermo intero, magit.

(defun display-buffer-full-screen (buffer alist) 
    (delete-other-windows) 
    (set-window-dedicated-p nil nil) 
    (set-window-buffer nil buffer) 
    (get-buffer-window buffer)) 

(setq magit-display-buffer-function 
     (lambda (buffer) 
     (if magit-display-buffer-noselect 
      (magit-display-buffer-traditional buffer) 
      (display-buffer buffer '(display-buffer-full-screen))))) 
0

Un'altra opzione è personalizzare la variabile display-buffer-alist.

Se invece si è magit, si può fare questo:

(customize-set-variable 
    'display-buffer-alist 
    '(("\\*magit: .*" display-buffer-same-window))) 
Problemi correlati