2010-05-11 8 views
7

Recientemente me actualicé desde Carbon Emacs (v22.3) hasta Emacs 23.2 (desde http://www.emacsformacosx.com). En Carbon Emacs al compilar un proyecto, The frame se divide en dos con el archivo fuente actual/SConscript en la ventana superior y la salida de compilación en la ventana inferior. GOLPEARÍA Cx ` para desplazarse a la primera advertencia o error en la salida de compilación y que reemplazaría lo que hubiera en la ventana superior con la fuente de archivo de error o advertencia se encuentra en.Emacs 23.2 abre una nueva ventana para cada error/advertencia de compilación navegado a

En Emacs 23.2, sin embargo , se abre una tercera ventana que causa dos ventanas abiertas en la mitad superior del marco (división vertical) y la salida de compilación en la ventana de la mitad inferior del marco. ¿Cómo le digo a Emacs que no abra una nueva ventana y, en su lugar, abra el código en la ventana de salida no compiladora existente en el marco?


Un poco más de aclaración sobre el comportamiento que acabo de notar. Si presiono C-x ` mientras el búfer que contiene el archivo fuente o el archivo SConscript está activo, no se abre ninguna ventana nueva. Es solo si estoy navegando manualmente a través del búfer * compilation * y pulsando enter en un error o advertencia, o haciendo clic con el mouse sobre una advertencia cuando aparece una tercera ventana de búfer.

Respuesta

4

La función que se utiliza en la funcionalidad next-error es pop-to-buffer que a su vez usa split-window-sensibly. Puede controlar el comportamiento de split-window-sensibly ajustando las variables split-width-threshold y split-height-threshold.

En su caso es split-width-threshold que es demasiado pequeño. En mi emacs 23.1 está configurado en 160. Simplemente configúrelo en un número mayor y el problema debería resolverse:

(setq split-width-threshold 200) 
2

No puedo reproducir este problema a mí mismo, pero es posible que intente lo siguiente:

(setq split-width-threshold nil) 

Esto le dice display-buffer no para dividir horizontalmente ventanas, incluso si son bastante amplias. También hay una variable split-height-threshold que se maneja de manera similar. Verificar los valores actuales de estas variables podría sugerir si podrían ser relevantes para el comportamiento que estás viendo.

Una última cosa para comprobar: si ha definido su propio display-buffer-function, podría tomar estas decisiones por usted.

Cuestiones relacionadas