如何在Emacs中为某些元素着色?
我在emacs里用Django/Python编程,想让像{% comment %} FOO {% endcomment %}这样的代码变成橙色。
我该怎么设置一些颜色,让重要的Django模板标签显示出来呢?
3 个回答
3
我这样做。这段代码比上面的代码更通用一些,并且使用了内置的字体高亮机制。
(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)))
6
你可以使用一些专门的模式,比如 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 就可以了。)