2012-02-24 32 views
19

Tôi đang sử dụng Magit để làm việc với git trong các emacs. Tôi đã ràng buộc magit-trạng thái để một chìa khóa, nhưng mỗi khi tôi nhấn phím nó sẽ mở ra trong một chia ở nửa dưới của cửa sổ và tôi phải nhấn C-x 1 để có được nó vào một cửa sổ đầy đủ. Làm thế nào tôi có thể làm cho nó mở trong một cửa sổ đầy đủ theo mặc định?Cách mở trạng thái magit trong cửa sổ đầy đủ

Trả lời

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

hoặc thông qua tùy chỉnh:

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

+4

Lưu ý rằng với Magit hiện nay, hành vi đệm mới được xử lý bởi 'magit-display-đệm-function'. –

+0

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

2

tôi sử dụng này:

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

Giải pháp này có ưu điểm là bạn có thể giết đệm toàn màn hình trong quit-window phong cách:

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

Nếu bạn có một phiên bản cũ của magit sau đó bạn có thể cần phải đổi tên magit-mode-quit-window để magit-quit-window.

6

Đây là một cách khác để đạt được điều này:

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

1

Lưu ý! Phiên bản mới hơn của magit sử dụng chức năng, magit-display-buffer-function, và điều này có thể được khai thác để có được hành vi tương tự. Đoạn mã sau sẽ cung cấp cho bạn tiền thưởng, toàn màn hình, mong muốn.

(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

Tùy chọn khác là tùy chỉnh biến display-buffer-alist.

Nếu tất cả các bạn muốn là magit, bạn có thể làm điều này:

(customize-set-variable 
    'display-buffer-alist 
    '(("\\*magit: .*" display-buffer-same-window))) 
Các vấn đề liên quan