2010-07-22 5 views
26

Ich arbeite mit zwei Monitoren und verwende häufig Emacs mit zwei geöffneten Frames; eine für jeden Monitor. jeder Rahmen ist in zwei Side-by-Side-Fenster, etwa so:Wie kann ich verhindern, dass bei der Verwendung von zwei Frames in Emacs der Kompilierungspuffer in beiden angezeigt wird?

a | b <-- frame 1 in monitor 1 
------- 
c | d <-- frame 2 in monitor 2 

Als ich Hit ‚kompiliert‘ Taste im Fenster ein, die Kompilation Puffer in dem Puffer es neben öffnen. So weit so gut:

a | compilation 
----------------- 
c |  d 

Allerdings, wenn ich dann auf Fenster c bewegen etwas Material zu bearbeiten, dann kompilieren wieder treffen, besucht Fenster d die Kompilation Puffer auch:

a | compilation 
------------------ 
c | compilation 

So, jetzt bin Habe die Hälfte meiner Bildschirmfläche von zwei Kopien des gleichen Compilation-Buffer belegt, frage mich, warum ich zwei Monitore habe :)

Ich kann dies verhindern, indem ich gewissenhaft nur den Kompilierschlüssel drücke, wenn sich mein Cursor im Puffer befindet zu dem gerade geöffneten Kompilierpuffer, aber ich habe so früh 'kompilieren' Oft habe ich keine Geistesgegenwart dafür. Ich habe das Gefühl, dass es etwas geben muss, an dem ich etwas verändern kann. Ich sollte es nicht tun müssen.

Irgendwelche Vorschläge? Im Idealfall sollte der aktuell geöffnete Kompilierungspuffer beim Klicken auf "Kompilieren" von seinem vorherigen Fenster zu dem Fenster neben dem aktuell verwendeten wechseln. Wenn das zu kompliziert ist, würde ich mich leicht damit begnügen, Emacs nicht den Kompilierungspuffer im benachbarten Fenster zu besuchen, wenn es bereits in einem anderen Fenster geöffnet ist.

+1

Brilliante Frage - nie in Betracht gezogen, Emacs mit diesem Setup zuvor zu verwenden! – cristobalito

Antwort

28
(setq-default display-buffer-reuse-frames t) 

Aus der Dokumentation:

Nicht-Null bedeutet `Display-Puffer‘ sollte Frames wiederverwenden. Wenn der betreffende Puffer bereits in einem Frame angezeigt wird, erhöhen Sie diesen Frame.

+0

Ausgezeichnet, danke! – SuperElectric

+3

'Diese Variable ist seit 24.3 veraltet; Verwenden Sie einen 'wiederverwendbaren Rahmen' Alist-Eintrag in 'display-buffer-alist' – cYrus