2013-07-15 23 views
5

我在emacs下使用gdb。在調試會話期間,當emacs/gdb跳轉到源代碼時,我通常會打開另一個幀(C-x 5 2)並將其拉到我的第二臺顯示器上。 當需要打開一個新的源代碼文件時(例如,當程序進入在另一個源文件中定義的函數,在棧中行走等等時),問題就出現了.emacs往往會自動打開相應的源代碼新窗口,但不幸的是在gdb框架中。在emacs下使用gdb時的緩衝區控制

我想在它打開的新框架中拉出新的源代碼,並完全不改變gdb框架。我的問題是這樣的:

我如何設置emacs打開任何新文件,使文件顯示在新的框架?

我希望我有道理。

回答

0

不是一個簡單的答案,但display-buffer-alist中的適當條目可以告訴display-buffer始終使用您想要的幀作爲新緩衝區的目標。

在24.1,該文檔是:

顯示緩衝 - ALIST是在`window.el」定義的變量。其值 爲零

如果用作文件本地變量,則此變量可能有風險。

文檔:「display-buffer」的條件操作。這 是元素的列表(條件操作。),其中:

CONDITION或者是一個正則表達式匹配緩衝器名稱,或採用兩個自變量的函數 - 緩衝區名稱和 `顯示緩衝器中的操作參數' - 並返回一個布爾值。

ACTION是cons cell(FUNCTION。ALIST),其中FUNCTION是功能或功能列表。每個這樣的函數都應該接受兩個參數:一個顯示緩衝區和一個與ALTERS ALIST相同形式的alist。有關詳細信息,請參閱「display-buffer」。

`display-buffer'將掃描此alist,直到它找到匹配的 正則表達式或條件指定的函數返回 非零。在任何這些情況下,它都會將相關操作添加到它將嘗試的操作列表中。

您可以自定義此變量。

Emacs的版本24.1中的 版本中引入了此變量,或者其默認值已更改。