2010-09-27 12 views
5

Me gustaría especificar el color de {}, () y [] en un tema de color personalizado. es posible?¿Cómo configuro el color de los corchetes/llaves/paréntesis en Emacs?

Actualización: Aquí está la fuente. Tenga en cuenta el estado en desarrollo de este tema; no es seguro para usar tanto en el lugar de trabajo como en el hogar.

;;; Color theme based on Moria for VIM. 
(defun color-theme-moria() 
    "A color theme based on Moria for VIM." 
    (interactive) 
    (color-theme-install 
    '(color-theme-moria 
    ((foreground-color . "#000000") ;done 
     (cursor-color . "#ffffff") 
     (background-color . "#f0f0f0") ;done 
     (background-mode . light)) ;done 
    (default ((t (nil)))) ;done 
    (underline ((t (:underline t)))) ;done 
    (modeline ((t (:foreground "black" :background "#000000")))) 
    (modeline-buffer-id ((t (:foreground "red" :background "#0000ff")))) 
    (modeline-mousable ((t (:foreground "cyan" :background "#007080")))) 
    (modeline-mousable-minor-mode ((t (:foreground "cyan" :background "#007080")))) 
    (highlight ((t (:background "#d0d0d0")))) ;done 
    (region ((t (:background "#c0c0c0")))) ;done 
    (font-lock-builtin-face ((t (:foreground "black")))) 
    (font-lock-constant-face ((t (:foreground "#ff0000")))) ;hmmm 
    (font-lock-comment-face ((t (:foreground "#786000")))) ;done 
    (font-lock-function-name-face ((t (:foreground "#000000")))) ;done 
    ; highlight ma brackets 
    (font-lock-add-keywords nil '(("\\([\{\}\\[\]\(\)]+\\)" 1 font-lock-keyword-face prepend))) 
    (font-lock-preprocessor-face ((t (:foreground "#912F11" :bold t)))) 
    (font-lock-keyword-face ((t (:foreground "#1f3f81" :bold t)))) ; done e.g. defun 

    (font-lock-string-face ((t (:foreground "#077807")))) ;done 
    (font-lock-variable-name-face ((t (:foreground "#ff0000")))) ;hmmm 
    (font-lock-warning-face ((t (:foreground "#ff0000")))) 
    (highlight-changes-face ((t (:background "#ff0000")))) 
    (highlight-changes-delete-face ((t (:foreground "red" :background "pink")))) 
    (show-paren-match ((t (:foreground "#2e3436" :background "#73d216")))) 

    (widget-field-face ((t (:foreground "pink" :background "red")))) 
    (widget-inactive-face ((t (:foreground "gray")))) 
    (custom-button-face ((t (:foreground "yellow" :background "dark blue")))) 
    (custom-state-face ((t (:foreground "mediumaquamarine")))) 
    (custom-face-tag-face ((t (:foreground "goldenrod" :underline t)))) 
    (custom-documentation-face ((t (:foreground "#10D010")))) 
    (custom-set-face ((t (:foreground "#2020D0")))) 
    ) 
    ) 
) 

Respuesta

1

Probar:

(font-lock-add-keywords nil '(("\\([\{\}\\[\]\(\)]+\\)" 1 font-lock-keyword-face prepend))) 

para el partido de los padres solamente:

Evaluar la siguiente expresión o ponerlo en su .emacs:

(custom-set-faces 
'(show-paren-match ((t (:background "blue")))) 
'(show-paren-mismatch ((((class color)) (:background "red" :foreground "white"))))) 
+0

Eso solo parece hacerlo cuando el cursor está sobre un paren. ¿O me estoy perdiendo algo? – MDCore

+0

Oh, quisiste colorearlo desde el principio. Editado la respuesta. Prueba el sugerido. – OTZ

+0

Puedo hacer que coloree solo los corchetes solo en el búfer donde estoy editando el tema y solo algunas veces? Si agrego eso al tema y abro otro emacs, no hace nada. ¡¿Extraño?! – MDCore

3

Puede usar el arco iris -delimiters mode, puede instalarlo desde MELPA en el sistema de paquetes Emacs24 o r descarga de arco iris-delimiters.el de:

emacswiki-RainbowDelimiters

lugar arco iris-delimiters.el en sus emacs load-path código de inicio

escribir en el fichero .emacs:

(require 'rainbow-delimiters) 

(global-rainbow-delimiters-mode) 
+0

Esto da como resultado: 'La definición de la función del símbolo es nula: global-rainbow-delimiters-mode' – Zelphir

Cuestiones relacionadas