2013-07-15 16 views
5

Ich verwende Gdb unter Emacs. Während einer Debug-Sitzung, wenn emacs/gdb zum Quellcode springt, öffne ich normalerweise einen anderen Frame (C-x 5 2) und ziehe diesen auf meinen zweiten Monitor. Das Problem tritt auf, wenn eine neue Quellcodedatei geöffnet werden muss (zB wenn das Programm eine Funktion aufruft, die in einer anderen Quelldatei definiert ist, den Stapel durchläuft usw.). Emacs öffnet automatisch den entsprechenden Quellcode in a neues Fenster, aber leider im gdb-Frame.Puffersteuerung bei Verwendung von Gdb unter Emacs

Ich möchte dafür neuen Quellcode in den neuen Rahmen hochziehen, den ich öffnete und den gdb Rahmen völlig unberührt ließ. Meine Frage ist dann diese:

Wie kann ich Emacs festlegen, um jede neue Datei zu öffnen, so dass die Datei im neuen Frame angezeigt wird?

Ich hoffe, dass ich Sinn mache.

Antwort

0

Keine einfache Antwort, aber ein passender Eintrag in display-buffer-alist könnte Anzeigepuffer dazu bringen, immer den gewünschten Frame als Ziel für neue Puffer zu verwenden.

In 24.1, die doc ist:

Display-buffer-aList eine Variable in `window.el‘ definiert ist. Sein Wert ist null

Diese Variable kann riskant sein, wenn sie als lokale Dateivariable verwendet wird.

Dokumentation: Alist bedingter Aktionen für `display-buffer '. Diese ist, eine Liste von Elementen (CONDITION ACTION.), Wobei:

Bedingung ist entweder ein Puffername regexp Matching, oder eine Funktion die zwei Argumente nimmt - einen Puffernamen und die ACTION Argument `Display-Puffer '- und gibt einen booleschen Wert zurück.

ACTION ist eine Cons-Zelle (FUNCTION. ALIST), wobei FUNCTION eine
Funktion oder eine Liste von Funktionen ist. Jede solche Funktion sollte zwei Argumente akzeptieren: einen Puffer zum Anzeigen und einen Alist derselben Form wie ALIST. Siehe 'display-buffer' für Details.

"Anzeigepuffer" scannt diesen Alist, bis entweder ein passender regulärer Ausdruck gefunden wird oder die von einer Bedingung angegebene Funktion nicht-null zurückgibt. In jedem dieser Fälle fügt es die zugehörige Aktion zur Liste der Aktionen hinzu, die es versuchen wird.

Sie können diese Variable anpassen.

Diese Variable wurde eingeführt oder ihr Standardwert wurde in Version 24.1 von Emacs geändert.