Как отключить * вход / выход * буфер в гуд
Недавно я перешел на использование 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)
Обратите внимание, что это не влияет на уже выделенные окна.