如何在完整窗口中打开magit-status

时间:2012-02-24 23:49:43

标签: emacs magit

我正在使用Magit在emacs中使用git。我已将magit-status绑定到一个键,但每次我按下它时,它会在窗口的下半部分中打开,我必须按C-x 1才能进入一个完整的窗口。默认情况下,如何在完整窗口中打开它?

8 个答案:

答案 0 :(得分:26)

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

或通过自定义:

M-x customize-variable RET magit-status-buffer-switch-function RET

答案 1 :(得分:6)

以下是实现此目的的另一种方法:

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

答案 2 :(得分:5)

对于较新版本的magit,您可以使用以下sanctioned代码段:

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

在切换项目后,我将其结合起来以获得类似zen的全窗口git状态:

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

答案 3 :(得分:3)

此解决方案的优势在于您可以使用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重命名为magit-quit-window

答案 4 :(得分:2)

我用这个:

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

答案 5 :(得分:2)

请注意!较新版本的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)))))

答案 6 :(得分:1)

另一个选择是自定义变量display-buffer-alist

如果你想要的只是magit,你可以这样做:

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

答案 7 :(得分:0)

对于Magit v2.90.1,正确的答案不适合我。在下面的行中,它取得了最佳效果。

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

其他显示功能可以通过前缀magit-display-buffer-找到。