2012-11-26 2 views
18

최근에 23에서 GNU Emacs 24를 사용하도록 전환했으며 gud를 입력 할 때마다 입출력 * 버퍼가 열려 있음을 알았습니다. 내가 디버깅 할 때마다 C-x 0을 수동으로 닫는다. 누구든지 기본적으로이 버퍼를 표시하지 않도록 구성해야하는 올바른 변수를 알려줄 수 있습니까?gud에서 * 입출력 * 버퍼를 끄는 방법

답변

7

이 문제도 있습니다. 소스 코드를 간략하게 살펴보면 GUD가 대부분의 창을 바꿀 수 있다고합니다 (즉, set-window-dedicated-p을 호출 함). 전용 창은 전환 할 수없는 창입니다. 많은 젊은이들이 많은 창 모드에서 GUD를 사용하고 GUD가 창 레이아웃을 관리하기를 원합니다. 수동으로 수행하려는 사용자는 소수입니다. 이 동작을 비활성화하는 gdb-mi.el에는 아무런 문제가없는 것으로 보입니다 (예 : gdb-set-window-buffer은 관리하는 모든 창에 대해 set-window-dedicated-p ~ t).

현재로서는 this solution이 다소 사용하고 있습니다. 수동으로 창 헌신을 비활성화합니다. 그러나 이것은 차선책으로 보입니다. GUD에서 수동으로 창 레이아웃을 관리 할 수있는 방법이 있어야합니다. This question is related.

+0

어떤 이유로 든 수정 사항은 조금만 작동합니다. 그러면 새로운 출력이 나올 때마다 창이 전용 모드에서 다시 팝업됩니다. –

12

새로운 emacs 릴리즈에는 gdb/emacs 상호 작용 (전용 윈도우 및 I/O 버퍼 없음)의 이전 동작을 구현하는 'gud-gdb'가 있습니다. 당신은 당신이 그것을 사용할 때-GDB 하느님의 MX 호출하지 않으려면 당신은 MX gdb를 별칭을 정의 할 수 있습니다 당신은 이런 식으로 모두 창 헌신을 해제 할 수 있습니다

+0

thanx .. 기본 gdb 동작은 바람직하지 않습니다. M-x gdb-many-windows는 영원히 존재했기 때문에 바람직하지 않습니다. – vrdhn

3

: (이맥스 24.4+에서)

(defun set-window-undedicated-p (window flag) 
"Never set window dedicated." 
flag) 

(advice-add 'set-window-dedicated-p :override #'set-window-undedicated-p) 

이 옵션은 이미 전용 창에 영향을 미치지 않습니다.