20

我最近从 23 切换到使用 GNU Emacs 24,我注意到每当我输入 gud 时,*输入/输出*缓冲区都是打开的。每次调试时,我都会使用 Cx 0 手动关闭它。谁能指出我需要配置的正确变量才能默认停止显示此缓冲区?

4

3 回答 3

13

在新的 emacs 版本中有一个“gud-gdb”,它实现了 gdb/emacs 交互的旧行为(没有专用窗口和 I/O 缓冲区)。如果你不想在使用时调用 Mx gud-gdb,你可以为 Mx gdb 定义一个别名

于 2013-03-21T22:49:33.797 回答
7

我也有这个问题。快速查看源代码后,问题似乎是 GUD 专用于它的大部分窗口(即,它调用set-window-dedicated-p它们)。专用窗口是无法切换的窗口。我猜越来越多的年轻枪手在多窗口模式下使用 GUD 并希望 GUD 管理他们的窗口布局,而我们这些喜欢手动操作的人是少数。gdb-mi.el 中似乎没有任何明显的东西可以禁用此行为(例如,gdb-set-window-buffer似乎总是对它管理的所有窗口执行操作set-window-dedicated-pt

目前,这个解决方案或多或少是我正在使用的解决方案——我手动停用了窗口专用。不过,这似乎并不理想。应该有一些方法可以让 GUD 让您手动管理窗口布局。这个问题是相关的。

于 2013-01-29T08:06:48.580 回答
6

您可以像这样完全禁用窗口专用:(在 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)

请注意,这不会影响已经专用的窗口。

于 2015-04-16T23:33:13.180 回答