2010-06-22 13 views
6

Utilizo emacs para editar varios tipos de archivos y me gustaría una cola visual sencilla para distinguir archivos .c de archivos .vhd o .py, por ejemplo. ¿Cómo puedo agregar un color de fondo personalizado al modo principal para ese idioma?Color de fondo personalizado de Emacs por modo

Respuesta

6

Puede hacerlo a través de ganchos. Entre otras cosas, puede conectar cuando se inicia un nuevo modo principal. Pon algo como esto en tu archivo .emacs, y emacs configurará el color de fondo en morado cada vez que vayas al modo Python.

(add-hook 'python-mode-hook 
      (lambda() 
       (set-background-color "purple"))) 

Restablecer el color de fondo para el valor por defecto en el caso de que se cambia de nuevo a un modo que no tiene un gancho de puesta a fondo explícita para que se deja como ejercicio para el lector.

También puede ajustar manualmente el color de fondo con M-x juego-background-color

+0

Gracias, eso es lo que estaba buscando. –

+0

Tenga en cuenta que no puede cambiar el color de fondo * por búfer * o * por ventana *, solo por fotograma (consulte la respuesta de Trey Jackson a continuación). – Thomas

4

No se puede establecer el color de fondo sobre una base tampón por tampón. Consulte la pregunta de UB How can I change the background colour of a single emacs buffer?.

La primera respuesta muestra cómo puede cambiar el fondo de un solo fotograma Emacs, lo que podría funcionar para usted si tiene un fotograma por archivo (o por modo).

3

Para la posteridad, como este hilo tiene 4 años, ahora es posible en Emacs 24.4+ cambiar las caras en un buffer local. Simplemente defina una cara y use (face-remap-add-relative) para cambiar la cara que desee con ella.

definir un defface:

(defface my-special-face '((t :background "aqua"))) 

A continuación, agregue un gancho al modo de su elección:

(add-hook 'python-mode-hook 
      (lambda() 
      (face-remap-add-relative 'default 'my-special-face))) 
Cuestiones relacionadas