Preferiría que el *compilation*
búfer permanezca siempre en su propio marco. Sin embargo, actualmente si ejecuto M-x compile
desde otro marco / ventana, el búfer aparece también en una nueva ventana allí. ¿Cómo puedo hacer que emacs solo aumente el marco existente que muestra el *compilation*
búfer?
7
compile.el
pueden haber cambiado, y desde entonces he hecho muchas Cambios / mejoras en mis funciones personalizadas que se dirigen a ciertos marcos para la visualización del búfer: stackoverflow.com/questions/18346785/... Eche un vistazo y vea si el primer enlace es aproximadamente lo que está buscando, quién sabe, incluso puede funcionar sin haciendo cambios.Respuestas:
Normalmente, Emacs considera que el cuadro seleccionado es el único cuadro reutilizable. En otras palabras, normalmente Emacs solo busca en el marco actual ("seleccionado") las ventanas que ya contienen el búfer para mostrar ("ventanas reutilizables"). Lo que necesita es que Emacs considere el marco del búfer de compilación como un marco reutilizable:
El fragmento anterior hará que todos los marcos sean reutilizables cuando se
display-buffer
muestre el*compilation*
búfer. Mire la documentación dedisplay-buffer-reuse-window
para saber qué otros valoresreusable-frames
pueden recibir.Sin embargo, esto no se ocupa de la otra dirección: abrir un búfer de código desde la ventana de compilación. Por ejemplo, si abre un búfer presionando un enlace en el búfer de compilación, Emacs abrirá el búfer en el mismo marco que la ventana de compilación. Cambiar eso es otra cuestión. No sé cómo se compara el comportamiento con la
special-display-buffer-names
solución.fuente
Hacer que la compilación del búfer siempre tenga una ventana dedicada. Una forma de hacerlo es personalizar la opción
special-display-buffer-names
, incluir"*compilation*"
. Otra es personalizar la opciónspecial-display-regexps
, para incluir una expresión regular que coincida con ese nombre de búfer. (Incluyo la expresión regular"[ ]?[*][^*]+[*]"
, que coincide con todos los búferes cuyos nombres son*...*
).(Consulte también la opción
special-display-frame-alist
, que puede usar para especificar el comportamiento y las características del marco utilizado para tales búferes de pantalla especiales).Emacs le dirá que estas opciones de "buffer de visualización especial" son "obsoletas", pero gracias a Dios todavía son compatibles. Ofrecen una forma sencilla de hacer lo que quieras.
Si quieres sufrir lo que Emacs prefiere que hagas ahora, entonces personaliza la opción en su
display-buffer-alist
lugar. La idea es esencialmente la misma (es solo una opción de usuario más fea y complicada).fuente