2009-07-02 18 views
50

Estoy ejecutando Emacs, editando archivos en modo C++ y modo PHP. Me encanta resaltar la sintaxis como concepto, pero los colores predeterminados son una parodia. Apenas puedo leer algunos de ellos: demasiado oscuro. ¿Cuál es la forma más fácil de cambiar sus valores? Parece que no puedo encontrar nada sobre esto en la web. Ni siquiera me importa cambiar el binario ya que estoy compilando mis propios Emacs. Solo quiero encontrar el lugar donde dice azul es # 0000FF y cambiarlo a #AAAAFF por ejemplo.Cambiar la sintaxis de Emacs resaltando los colores

Respuesta

61

Me resulta más fácil utilizar el tema de color para este tipo de cosas.

https://www.emacswiki.org/emacs/ColorThemes

Pero si usted no quiere hacer eso, poner el cursor sobre el texto ofensivo, golpeó M-x customize-face. Debería establecerse por defecto en la cara en que se encuentra el cursor.

http://www.gnu.org/software/emacs/manual/html_node/emacs/Specific-Customization.html

+0

Un buen [tema de color] (https://github.com/bmarcot/color- tema-pomgranate-explosión). – Benoit

+0

El problema es que uno de los colores que simplemente no puedo leer (es un azul oscuro que es prácticamente invisible sobre el fondo negro) es el texto que se muestra cuando escribo 'M-x customize-face'. (Además, el vínculo ColorTheme parece tener un problema) – Michael

+0

Bueno, traté de arreglar el enlace a uno que funcionó, pero cuando se sigue de esta página * todavía * no funciona !!! – Michael

25

2 - formas que puede instalar el color temático paquete, que tiene un montón de esquemas agradables para seleccionar y es más fácil de hacerlo a mano. El by-mano se parece a esto (en su .emacs)

(custom-set-faces 
    custom-set-faces was added by Custom. 
    If you edit it by hand, you could mess it up, so be careful. 
    Your init file should contain only one such instance. 
    If there is more than one, they won't work right. 
    '(default ((t (:inherit nil :stipple nil :background "lightyellow2" :foreground "gray20" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight bold :width normal :family "liberation mono")))) 
    '(background "blue") 
    '(font-lock-builtin-face ((((class color) (background dark)) (:foreground "Turquoise")))) 
    '(font-lock-comment-face ((t (:foreground "MediumAquamarine")))) 
    '(font-lock-constant-face ((((class color) (background dark)) (:bold t :foreground "DarkOrchid")))) 
    '(font-lock-doc-string-face ((t (:foreground "green2")))) 
    '(font-lock-function-name-face ((t (:foreground "SkyBlue")))) 
    '(font-lock-keyword-face ((t (:bold t :foreground "CornflowerBlue")))) 
    '(font-lock-preprocessor-face ((t (:italic nil :foreground "CornFlowerBlue")))) 
    '(font-lock-reference-face ((t (:foreground "DodgerBlue")))) 
    '(font-lock-string-face ((t (:foreground "LimeGreen")))) 

...

etc etc

Usted puede también escribir

`M-x customize-face RET` 

que le dará todas las personalizaciones para establecer, en última instancia, terminan en sus .emacs.

14

Coloque el cursor sobre una cara ("color") que desee cambiar. Hit C-u C-x =. Eso le dirá qué cara (s) están presentes en esa posición y le permitirá hacer clic para personalizarla. Guarde sus personalizaciones.

+0

No tengo ni idea de lo que se supone que debo ingresar en la pantalla de personalización.Por un lado, algunas de las cosas importantes están en un color de fuente que no puedo leer (¡eso es lo que estoy tratando de corregir, en primer lugar!) Y en segundo lugar, no veo ninguna referencia obvia al color o cómo para cambiarlos – Michael

+0

@Michael: si no puede leer el texto en Personalizar, utilícelo desde una sesión de Emacs que sea virgen: inicie Emacs usando 'emacs -Q'. Si puede leer el texto, podrá ver casillas de verificación para los atributos utilizados actualmente para definir la cara que está personalizando. Haga clic en el enlace 'Mostrar todos los atributos' para mostrar todos los atributos. Marque o desmarque cualquiera de los atributos, según sea necesario. Cuando marque una casilla, verá su valor actual. Si el atributo 'Background' o' Foreground' está marcado, puede usar el botón 'Choose' junto al valor actual para elegir un color diferente para ese atributo. – Drew

2

Si no te importa resaltar el color en absoluto, o ninguna de las respuestas anteriores funciona para ti (o toma demasiado tiempo y esfuerzo averiguarlo), aquí hay una solución muy simple que eliminará los colores en total.

escribiendo lo siguiente se librará de colores:

M-x global-font-lock-mode

También puede hacer esto como un paso intermedio para que pueda ver realmente todo lo que su pantalla para tratar cualquiera de las respuestas anteriores. En mi caso, esto fue muy útil porque el color de ciertas piezas clave de texto que me permitirían cambiar los colores eran casi invisibles, por ejemplo, el mensaje de M-x.

Si desea que el cambio sea permanente, se puede añadir a su fichero .emacs:

(setq-default global-font-lock-mode nil)

Cuestiones relacionadas