Как я могу раскрасить некоторые вещи в 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)))

Вот несколько ссылок. Я нашел их в Google. Кажется, что нет единого полностью и "официального" решения этой проблемы, но есть несколько вполне пригодных для использования заменителей.

Другие вопросы по тегам