Как отключить * вход / выход * буфер в гуд

Недавно я перешел на использование GNU Emacs 24 из 23, и я заметил, что всякий раз, когда я вхожу в gud, буфер *input/output* открыт. Я закрываю его вручную с помощью Cx 0 каждый раз, когда отлаживаю. Может кто-нибудь указать мне правильную переменную, которая должна быть настроена, чтобы перестать отображать этот буфер по умолчанию?

3 ответа

В новых выпусках emacs есть gud-gdb, в котором реализовано старое поведение взаимодействия gdb/emacs (нет выделенных окон и нет буфера ввода / вывода). Если вы не хотите вызывать Mx gud-gdb при его использовании, вы можете определить псевдоним для Mx gdb

У меня тоже есть эта проблема. После быстрого просмотра исходного кода проблема, по-видимому, заключается в том, что GUD выделяет большинство своих окон (то есть set-window-dedicated-p на них). Выделенное окно - это окно, от которого нельзя переключиться. Я предполагаю, что все больше и больше молодых людей используют GUD в режиме многих окон и хотят, чтобы GUD управлял их расположением окон, и те из нас, кто любит делать это вручную, составляют меньшинство. Кажется, в gdb-mi.el нет ничего очевидного, что отключает это поведение (например, gdb-set-window-buffer кажется, всегда делают set-window-dedicated-p в t для всех окон это обходится).

На данный момент это решение более или менее то, что я использую - я вручную отключаю выделение окон. Это кажется неоптимальным, хотя. Должен быть какой-то способ заставить GUD позволить вам вручную управлять макетом окна. Этот вопрос связан.

Вы можете полностью отключить выделение окон следующим образом: (в Emacs 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)

Обратите внимание, что это не влияет на уже выделенные окна.

Другие вопросы по тегам