2010-07-22 10 views
26

Trabajo con dos monitores, y a menudo uso emacs con dos marcos abiertos; uno para cada monitor cada trama se divide en dos ventanas lado a lado, de este modo:Al usar dos marcos en emacs, ¿cómo evito que aparezca el búfer de compilación en ambos?

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

Cuando llegué a mi botón 'compilar', mientras que en una ventana, el búfer de compilación se abre en el búfer junto a él. Hasta aquí todo bien:

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

Sin embargo, si a continuación, pasar a la ventana de c para editar algunas cosas, después haga clic en compilar de nuevo, la ventana d visita el búfer de compilación así:

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

Así que ahora tener la mitad de mi pantalla de bienes raíces ocupada por dos copias del mismo buffer de compilación, preguntándome por qué tengo dos monitores :)

Puedo evitar esto presionando concienzudamente la tecla de compilación cuando mi cursor está en el buffer siguiente al búfer de compilación actualmente abierto, pero presiono 'compilar' tan temprano a menudo, que por lo general no tengo la presencia de ánimo para hacerlo. Siento que debe haber algo que pueda modificar. Hemacs, así que no debería tener que hacerlo.

¿Alguna sugerencia? Idealmente, cuando pulso 'compilar', el búfer de compilación actualmente abierto debería pasar de su ventana anterior a la que está al lado de la ventana actualmente utilizada. Si eso es demasiado complicado, me conformaría fácilmente con tener emacs no visitar el búfer de compilación en la ventana vecina, si ya está abierto en otra ventana.

+1

Pregunta brillante: nunca antes se había considerado el uso de emacs con esa configuración. – cristobalito

Respuesta

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

De la documentación:

no nil significa `display-buffer' debe volver a utilizar marcos. Si el búfer en cuestión ya se muestra en un marco, suba ese marco.

+0

¡Excelente, gracias! – SuperElectric

+3

'Esta variable está obsoleta desde 24.3; usa una entrada de alista de "marcos reutilizables" en "display-buffer-alist". – cYrus

Cuestiones relacionadas