특정 버퍼를 새 창에서 강제로 열려면 어떻게합니까?


12

Magit에서 변경 사항을 커밋 할 때 커밋에 대한 세부 정보를 추가하면서 diff보기를 열어두면 유용합니다.

Magit에서는 *magit ..*버퍼 의 차이를 볼 수 있습니다. 당신이 공격 할 때 cc커서가 켜져있는 동안 단계적 파일의 Magit은 버퍼 커밋 .. COMMIT_EDITMSG팝을. 기본적으로이 새 버퍼는 *magit ..*커밋 차이를 표시 한 버퍼를 대체합니다 .

질문-.. COMMIT_EDITMSG 버퍼를 새 창에서 열려면 어떻게해야합니까 ( 버퍼가 1 개 뿐인 프레임이있는 경우 다른 창을 재사용하거나 새 창을 만드는 경우) 어떻게 버퍼 *magit ..*.. COMMIT_EDITMSG버퍼를 모두 볼 수 있습니까?


답변:


17

을 사용하여 버퍼가 같은 프레임 / 창 또는 다른 프레임 / 창에서 열리는 방식을 구성 할 수 있습니다 display-buffer-alist. 이 변수에 대한 자세한 내용은 아래 참조를 참조하십시오.

해결책

emacs에게 항상 COMMIT_EDITMSG같은 *magit ..*창 ( )이 아닌 창으로 끝나는 버퍼를 열도록 지시해야합니다 .

init.el이후 (require 'magit)에 다음 스 니펫을 추가 하여이 조치를 지정하십시오.

(add-to-list 'display-buffer-alist
                 '(".*COMMIT_EDITMSG". ((display-buffer-pop-up-window) .
                                        ((inhibit-same-window . t)))))

솔루션 분석

display-buffer-alist입니다 alist호출하는 FUNCTION와 (기능 또는 목록) ALISTA는 경우 매개 변수를 CONDITION사실이다. 는 display-buffer-alist,로서 표현 될 수있다

'(CONDITION . (FUNCTION . ALIST))
  • 여기서 CONDITION상기 버퍼 이름과 단부이다 COMMIT_EDITMSG및 해당 의해 표현된다 ".*COMMIT_EDITMSG".
  • FUNCTION에 대한 호출은 display-buffer-pop-up-window우리가이 버퍼 창을 만들려고한다. 함수 자체를 지정하는 대신 단일 함수 (display-buffer-pop-up-window)의 목록으로 추가되므로 나중에 필요한 경우 더 많은 함수를 목록에 쉽게 추가 할 수 있습니다.
  • ALIST포함 (inhibit-same-window . t)우리는이 버퍼가 같은 창에서 열려하지 않는.

참고 문헌


2

v2.1.0기본적 으로 Magit으로 시작 하면 커밋 메시지를 작성하는 데 사용 된 버퍼와 함께 커밋되고있는 변경 내용이 표시됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.