我在emacs下使用gdb。在调试会话期间,当emacs / gdb跳转到源代码时,我通常打开另一个帧(C-x 5 2)并将其拉到我的第二个监视器上。 当需要打开一个新的源代码文件时(例如当程序进入另一个源文件中定义的函数,遍历堆栈等等)时,问题出现了.emacs倾向于自动打开新的相应源代码窗口,但不幸的是在gdb框架中。
我想在我打开的新框架中拉出新的源代码并完全保持gdb框架不变。我的问题是:
如何设置emacs以打开任何新文件,使文件显示在新框架中?
我希望我有意义。
答案 0 :(得分:0)
不是一个简单的答案,但display-buffer-alist中的相应条目可以告诉display-buffer始终使用您想要的帧作为新缓冲区的目标。
在24.1中,文档是:
display-buffer-alist是`window.el'中定义的变量。它的价值 是零
如果用作文件局部变量,则此变量可能存在风险。
文档:“display-buffer”的条件操作的列表。这个 是一个元素列表(CONDITION.ACTION),其中:
CONDITION是正则表达式匹配缓冲区名称或函数 它有两个参数 - 缓冲区名称和ACTION参数 `display-buffer' - 并返回一个布尔值。
ACTION是一个利弊细胞(FUNCTION.ALIST),其中FUNCTION是一个 功能或功能列表。每个这样的功能应该接受 两个参数:要显示的缓冲区和与其相同形式的列表 一个列表。有关详细信息,请参阅`display-buffer'。
`display-buffer'扫描此列表,直到找到匹配项 正则表达式或条件指定的函数返回 非空。在任何这些情况下,它都会将相关操作添加到 它将尝试的行动清单。
您可以自定义此变量。
引入了此变量,或者更改了其默认值 Emacs的第24.1版。