我最近从 23 切换到使用 GNU Emacs 24,我注意到每当我输入 gud 时,*输入/输出* 缓冲区都是打开的。每次调试时,我都使用 C-x 0 手动关闭它。任何人都可以指出我需要配置的正确变量才能默认停止显示此缓冲区吗?
在新的 emacs 版本中有一个"gud-gdb",它实现了 gdb/emacs 交互的旧行为(没有专用窗口和 I/O 缓冲区)。如果你不想在使用时调用 M-x gud-gdb,你可以为 M-x 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)
请注意,这不会影响已经专用的窗口。