Как открыть magit-статус в полном окне - PullRequest
21 голосов
/ 25 февраля 2012

Я использую Magit для работы с git в emacs.Я связал magit-статус с ключом, но каждый раз, когда я нажимаю на ключ, он открывается в разрезе в нижней половине окна, и мне приходится нажимать Cx 1, чтобы получить его в полном окне.Как я могу открыть его в полном окне по умолчанию?

Ответы [ 7 ]

26 голосов
/ 25 февраля 2012
(setq magit-status-buffer-switch-function 'switch-to-buffer)

или через настройку:

Mx customize-variable RET magit-status-buffer-switch-function RET

6 голосов
/ 30 июля 2014

Вот еще один способ добиться этого:

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

5 голосов
/ 04 октября 2018

Для более новых версий magit вы можете использовать этот санкционированный фрагмент:

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

Я комбинирую это, чтобы получить статус дзен-подобного полного окнапосле переключения проектов:

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

3 голосов
/ 20 февраля 2014

Преимущество этого решения в том, что вы можете уничтожить полноэкранный буфер в стиле quit-window:

(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)

Если у вас более старая версия magit, вам может потребоваться переименовать magit-mode-quit-window в * 1006.*.

2 голосов
/ 13 апреля 2016

Внимание!Более новые версии magit используют функцию magit-display-buffer-function, и ее можно использовать для получения того же поведения.Следующий фрагмент даст вам желаемое, полноэкранное, магическое вознаграждение.

(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)))))
2 голосов
/ 25 февраля 2012

Я использую это:

(defun my-magit-status ()
  "Don't split window."
  (interactive)
  (let ((pop-up-windows nil))
    (call-interactively 'magit-status)))
1 голос
/ 02 февраля 2017

Другой вариант - настроить переменную display-buffer-alist.

Если вам нужно только magit, вы можете сделать это:

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