views:

4406

answers:

3

I'm running Emacs, editing files in C++ mode and PHP mode. I love syntax highlighting as a concept, but the default colors are a travesty. I can barely read some of them: way too dark. What is the easiest way to change their values? I can't seem to find anything about this on the web. I don't even mind changing the binary as I'm compiling my own Emacs. I just want to find the place where it says blue is #0000FF and change it to #AAAAFF for example.

+9  A: 

I find it easiest to use color-theme for this sort of thing.

http://www.emacswiki.org/emacs/ColorTheme

But if you don't want to do that, put the cursor over the offending text, hit M-x customize-face. It should default to the face that the cursor is over.

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

seth
i was scared of ColorTheme, but i am no longer scared. it works well. thanks!
adum
Yeah, same here. I started having problems when creating frames in emacs 23 and my custom color file but color-theme cleared them all up.
seth
+4  A: 

2 ways - you can install the package color-theme, which has lots of nice schemes to select and is easier to do it by hand. The by-hand looks like this (in your .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.

You can also type

`M-x customize-face RET`

which will give you all the customizations to set, ultimately end up in your .emacs.

Steve B.
thanks, that's helpful!
adum
A: 

the "by hand" version worked great, thanks!

Tijmen