Zmiana Kolorów podświetlania składni Emacsa

Uruchamiam Emacsa, edytuję pliki w trybie C++ i PHP. Uwielbiam podświetlanie składni jako koncepcję, ale domyślne kolory to parodia. Ledwo mogę przeczytać niektóre z nich: o wiele za ciemne. Jaki jest najprostszy sposób na zmianę ich wartości? Nie mogę znaleźć nic na ten temat w sieci. Nawet nie mam nic przeciwko zmianie pliku binarnego, ponieważ kompiluję własny Emacs. Po prostu chcę znaleźć miejsce, gdzie jest napisane, że niebieski jest #0000ff I zmienić go na #AAAAFF na przykład.

Author: adum, 2009-07-03

4 answers

Uważam, że najłatwiej jest użyć motywu kolorów do tego rodzaju rzeczy.

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

Ale jeśli nie chcesz tego robić, Umieść kursor nad tekstem, naciśnij M-x customize-face. Powinno być domyślne dla twarzy, że kursor jest nad.

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

 62
Author: seth,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-04 18:13:51

2 sposoby-możesz zainstalować pakiet color-theme, który ma wiele ładnych schematów do wyboru i jest łatwiej zrobić to ręcznie. Ręczny wygląda tak (w Twoim .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"))))

...

Itd. itd.

Możesz również wpisać

`M-x customize-face RET`

Który da Ci wszystkie dostosowania do Ustawienia, ostatecznie skończy się w Twoim .emacs.

 25
Author: Steve B.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-07-02 20:29:18

Umieść kursor na twarzy ("kolor"), który chcesz zmienić. Hit C-u C-x =. To powie Ci, które twarze są obecne w tej pozycji i pozwoli Ci kliknąć, aby je dostosować. Zapisz swoje dostosowania.

 15
Author: Drew,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-05 00:34:32

Jeśli w ogóle nie zależy ci na podświetlaniu kolorów, lub żadna z powyższych odpowiedzi nie działa dla Ciebie (lub zajmuje zbyt dużo czasu i wysiłku, aby się dowiedzieć), oto bardzo proste rozwiązanie, które całkowicie pozbędzie się kolorów.

Wpisanie następującej opcji pozbędzie się kolorów:

M-x global-font-lock-mode

Możesz również zrobić to jako krok tymczasowy, aby umożliwić Ci zobaczenie wszystkiego na ekranie, aby wypróbować którąkolwiek z powyższych odpowiedzi. W moim przypadku było to bardzo przydatne, ponieważ kolor pewnego klucza fragmenty tekstu, które pozwoliłyby mi zmienić kolory, były prawie niewidoczne - na przykład znak zachęty M-x.

Jeśli chcesz, aby zmiana była stała, możesz dodać ją do swojego .plik emacs:

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

 2
Author: Michael,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-04 18:21:00