2010-07-22 27 views
26

Je travaille avec deux moniteurs, et utilise souvent emacs avec deux cadres ouverts; un pour chaque moniteur. chaque cadre est divisé en deux fenêtres côte à côte, comme ceci:Lors de l'utilisation de deux cadres dans emacs, comment puis-je empêcher le tampon de compilation d'apparaître dans les deux?

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

Quand je frappe mon bouton « compiler » tandis que dans la fenêtre a, le tampon de compilation ouvre dans la mémoire tampon à côté. Jusqu'à présent, si bien:

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

Cependant, si je puis passer à la fenêtre c pour modifier certaines choses, puis appuyez sur la compilation à nouveau, la fenêtre d visite le tampon de compilation ainsi:

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

Alors maintenant, je avoir la moitié de mon écran de l'immobilier pris par deux copies du même tampon de compilation, se demandant pourquoi j'ai deux moniteurs :)

Je peux empêcher cela en conscienciant seulement frapper la clé de compilation lorsque mon curseur est dans le tampon suivant au tampon de compilation actuellement ouvert, mais je frappe «compiler» si tôt un Souvent, je n'ai généralement pas la présence d'esprit pour le faire. Je me sens comme il doit y avoir quelque chose que je peux modifier en .emacs donc je ne devrais pas avoir à le faire.

Des suggestions? Idéalement, lorsque je clique sur 'compiler', le tampon de compilation actuellement ouvert devrait passer de sa fenêtre précédente à celle qui est à côté de la fenêtre actuellement utilisée. Si c'est trop compliqué, je me contenterais facilement d'avoir emacs pas visiter le tampon de compilation dans la fenêtre voisine, si elle est déjà ouverte dans une autre fenêtre.

+1

Question brillante - jamais envisagé d'utiliser emacs avec cette configuration avant! – cristobalito

Répondre

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

De la documentation:

signifie non nul'Affichage-tampon » devrait réutiliser les cadres. Si le tampon en question est déjà affiché dans une trame, relevez cette trame.

+0

Excellent, merci! – SuperElectric

+3

'Cette variable est obsolète depuis 24.3; utiliser une entrée alist 'frames-réutilisables' dans 'display-buffer-alist'. – cYrus