Настройка раскраски синтаксиса Emacs - PullRequest
1 голос
/ 08 марта 2012

Я не могу понять, как настроить в emacs только два цвета: один для комментариев, а другой для обычного кода во всех языковых режимах.Конечно, есть возможность установить цвета для каждого блока, кроме комментария ко второму цвету, но я не уверен, что такое ВСЕ доступные блоки.-font-lock-mode nil) но это также убивает окраску для комментариев.

Думаю, это должно быть довольно легко для проверенных временем воинов emacs.

Ответы [ 2 ]

4 голосов
/ 08 марта 2012

См. Страницу злой фруктовый салат вики , чтобы вымыть лица, блокирующие шрифты. Вы можете немного изменить код, чтобы исключить комментарии.

Если вам действительно нужно удалить все цвета, этот код сделает это для всех лиц, кроме предупреждения и комментария:

(defun decolorize-font-lock ()
  "remove all colors from font-lock faces except comment and warning"
  (let ((fg (face-attribute 'default :foreground))
        (bg (face-attribute 'default :background)))
    (mapc (lambda (face)
            (when face
              (set-face-attribute face nil
                                  :foreground fg
                                  :background bg)))
          (mapcar (lambda (f)
                    (if (and (string-match "^font-lock" (symbol-name f))
                             (not (string-match "-comment\\|-warning" (symbol-name f))))
                        f
                      nil))
                  (face-list)))))

(decolorize-font-lock)
0 голосов
/ 08 марта 2012

color-theme - это удобный "фреймворк" для определения синтаксиса и окраски окон не зависящим от языка образом.

Начать с ним так же просто, как взломать одну из тем по умолчанию. Один типичный отрывок из них выглядит так:

 (font-lock-builtin-face ((t (:foreground "#000080"))))
 (font-lock-keyword-face ((t (:bold t :foreground "#000080")))) 
 (font-lock-function-name-face ((t (:foreground "#000080"))))
 (font-lock-variable-name-face ((t (:bold t :foreground "#000080"))))
 (font-lock-string-face ((t (:foreground "#177A12"))))
 (font-lock-comment-face ((t (:italic t :foreground "#716F6F"))))
 (font-lock-constant-face ((t (:italic t :foreground "#660E7A"))))
 (font-lock-doc-string-face ((t (:foreground "DarkOrange"))))
...