5

我在emacs下使用gdb。在调试会话期间,当 emacs/gdb 跳转到源代码时,我通常会打开另一个框架(Cx 5 2)并将其拉到我的第二个监视器上。当需要打开一个新的源代码文件时(例如当程序进入另一个源文件中定义的函数,遍历堆栈等......)时,问题就出现了,emacs倾向于自动在新的源代码中打开相应的源代码窗口,但不幸的是在gdb框架中。

我希望它在我打开的新框架中拉出新的源代码,并完全保持 gdb 框架不变。那么我的问题是:

如何设置 emacs 以打开任何新文件,以便该文件显示在新框架中?

我希望我说得通。

4

1 回答 1

0

这不是一个简单的答案,但 display-buffer-alist 中的适当条目可以告诉 display-buffer 始终使用您想要的帧作为新缓冲区的目标。

在 24.1 中,文档是:

display-buffer-alist 是在 `window.el' 中定义的变量。它的值为 nil

如果用作文件局部变量,此变量可能会有风险。

文档:“显示缓冲区”的条件操作列表。这是一个元素列表 (CONDITION . ACTION),其中:

CONDITION 要么是一个匹配缓冲区名称的正则表达式,要么是一个接受两个参数的函数——一个缓冲区名称和 `display-buffer' 的 ACTION 参数——并返回一个布尔值。

ACTION 是一个 cons 单元格 (FUNCTION . ALIST),其中 FUNCTION 是一个
函数或函数列表。每个这样的函数都应该接受两个参数:一个要显示的缓冲区和一个与 ALIST 格式相同的列表。有关详细信息,请参阅“显示缓冲区”。

`display-buffer' 扫描这个列表,直到找到匹配的正则表达式或条件指定的函数返回非零。在任何这些情况下,它都会将关联的操作添加到它将尝试的操作列表中。

您可以自定义此变量。

在 Emacs 的 24.1 版本中引入了这个变量,或者改变了它的默认值。

于 2013-10-30T04:04:56.217 回答