Как я могу раскрасить некоторые вещи в Emacs?
Я программирую Django/Python на emacs, и я бы хотел, чтобы такие вещи, как {% comment %} FOO {% endcomment %}, стали оранжевыми.
Как настроить цвета для важных тегов шаблонов Django?
3 ответа
Решение
Вы можете использовать специальные режимы, такие как django-mode или MuMaMo.
Если вы хотите что-то очень простое, и предполагая, что вы редактируете в html-mode
, вы можете попробовать следующее:
(defun django-highlight-comments ()
(interactive "p")
(highlight-regexp "{%.*?%}" 'hi-orange))
(add-hook 'html-mode-hook 'django-highlight-comments)
(Просто добавьте вышеупомянутые строки к вашему .emacs
или же init.el
и оцените его или перезапустите emacs).
Вот что я делаю. Он немного более общий, чем приведенный выше код, и в нем используются встроенные механизмы блокировки шрифтов.
(defvar django-tag-face (make-face 'django-tag-face))
(defvar django-variable-face (make-face 'django-variable-face))
(set-face-background 'django-tag-face "Aquamarine")
(set-face-foreground 'django-tag-face "Black")
(set-face-background 'django-variable-face "Plum")
(set-face-foreground 'django-variable-face "Black")
(font-lock-add-keywords
'html-mode
'(("\\({%[^%]*%}\\)" 1 django-tag-face prepend)
("\\({{[^}]*}}\\)" 1 django-variable-face prepend)))