¿Cómo puedo cambiar el color de fondo de un único búfer de emacs?

8

Quiero hacer que los buffers interactivos de SQL que están conectados a las bases de datos de producción sean muy, muy obvios, por lo que pensé en cambiar el fondo del buffer a un color rojo oscuro.

set-background-colorsin embargo, no funciona; establece el color de todos los cuadros al color especificado.

¿Cómo puedo cambiar el fondo de un solo búfer?

Chris R
fuente

Respuestas:

9

He creado un paquete de emacs lisp para esto: https://github.com/vic/color-theme-buffer-local , utiliza la reasignación de rostros de Emacs para instalar rostros de temas localmente.


(require 'color-theme-buffer-local)
(add-hook 'java-mode-hook (lambda nil (color-theme-buffer-local 'color-theme-robin-hood (current-buffer)) ))

vic
fuente
6

No puedes

El color de fondo es generalmente específico del marco.

Puede configurar el color de fondo de la defaultcara para que sea específico del marco utilizando set-face-background, de esta manera:

(set-face-background 'default "#CCCCCC" (window-frame (frame-selected-window))

Las personalizaciones de cuadros generalmente se controlan a través de parámetros de cuadros . Ahora, si observa detenidamente los background-colorparámetros del marco , verá que el color de fondo predeterminado se toma de la defaultcara, razón por la cual el elisp anterior tiene un efecto.

Más allá de eso, parece que el cierre puede llegar a un color de fondo del búfer utilizando el modo menor buffer-face-mode(agregado en 23.1), sin embargo, eso solo cambia el fondo del texto de un búfer y no todo el fondo.

Trey Jackson
fuente