Domanda

Sto usando Magit per lavorare con Git in Emacs. Ho legato Magit-Status a una chiave, ma ogni volta che colpisco la chiave si apre in una divisione nella metà inferiore della finestra e devo colpire CX 1 per portarlo in una finestra completa. Come posso aprirlo in una finestra completa per impostazione predefinita?

È stato utile?

Soluzione

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

o tramite personalizzare:

MX customize-variable Ret magit-status-buffer-switch-function Ret

Altri suggerimenti

Ecco un altro modo per raggiungere questo obiettivo:

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

Per le versioni più recenti di Magit puoi usarlo sanzionato frammento:

(setq magit-display-buffer-function #'magit-display-buffer-fullframe-status-v1)

Lo combino questo per ottenere uno stato GIT completo di Zen dopo aver cambiato i progetti:

(setq projectile-switch-project-action 'magit-status)

Questa soluzione ha il vantaggio in cui puoi uccidere il buffer a schermo intero 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 hai una versione precedente di Magit, potresti essere necessario rinominare magit-mode-quit-window a magit-quit-window.

Uso questo:

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

Nota! Le versioni più recenti di Magit usano la funzione, magit-display-buffer-function, e questo può essere sfruttato per ottenere lo stesso comportamento. Il seguente snippet ti darà il Magit Desired, FullScreen, 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)))))

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

Se tutto quello che vuoi è magit, Puoi farlo:

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

Per Magit v2.90.1, la risposta corretta non mi è andata bene. Con la linea qui sotto ha raggiunto i migliori risultati.

(setq magit-display-buffer-function 'magit-display-buffer-same-window-except-diff-v1)

Altre funzioni di visualizzazione sono disponibili con il prefisso magit-display-buffer-.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top