如何在Emacs中为某些东西着色?

时间:2009-05-17 21:26:59

标签: python django emacs syntax-highlighting

我在emacs中编写Django / Python,我想像{%comment%} FOO {%endcomment%}这样的东西变成橙色。

如何为重要的Django模板标签设置一些颜色?

3 个答案:

答案 0 :(得分:6)

您可以使用django-modeMuMaMo等专用模式。

如果你想要一些非常基本的东西,假设你在html-mode进行编辑,你可以尝试以下方法:

(defun django-highlight-comments ()
  (interactive "p")
  (highlight-regexp "{%.*?%}" 'hi-orange))
(add-hook 'html-mode-hook 'django-highlight-comments)

(只需将以上行添加到.emacsinit.el,然后评估或重新启动emacs。

答案 1 :(得分: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)))

答案 2 :(得分:1)

Here are some links。我在Google上发现了它们。似乎没有一个完全完整的“官方”解决方案可以解决这个问题,但可以使用一些可用的替代品。