2012-11-26 272 views

回答

7

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

现在,this solution或多或少是我正在使用的 - 我手动停用窗口的奉献。尽管如此,这似乎并不理想。应该有办法让GUD让你手动管理窗口布局。 This question is related.

+0

由于某些原因,您的修补程序仅适用于一点 - 然后窗口再次以专用模式弹出,每次它都会得到新的输出。 –

12

新emacs发行版中有一个'gud-gdb',用于实现gdb/emacs交互的旧行为(没有专用窗口和没有I/O缓冲区)。如果您不想打电话给GUD的Mx-GDB当您使用它你可以定义一个别名对于MX GDB

+0

thanx ..默认gdb行为是不受欢迎的,因为M-x gdb-many-windows永远存在.. – vrdhn

3

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

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