如何在gud中关闭*输入/输出*缓冲区

deb*_*tro 19 emacs gdb gud

我最近切换到23使用GNU Emacs 24,我注意到每当我输入gud时,*input/output*buffer都是打开的.我每次调试时都用Cx 0手动关闭它.任何人都可以指向我需要配置的正确变量,以便默认情况下停止显示此缓冲区吗?

Rod*_*goP 13

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


808*_*140 7

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

目前,这个解决方案或多或少是我正在使用的解决方案 - 我手动停用窗口专用.但这似乎不是最理想的.应该有一些方法让GUD让你手动管理窗口布局.这个问题是相关的.


小智 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)
Run Code Online (Sandbox Code Playgroud)

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