How can I color certain things in Emacs?

淺唱寂寞╮ 提交于 2019-12-10 08:49:26

问题


I program Django/Python in emacs, and I would like things like {% comment %} FOO {% endcomment %} to turn orange.

How can I set up some colors for important Django template tags?


回答1:


You could use dedicated modes like django-mode or MuMaMo.

If you want something very basic, and assuming you're editing in html-mode, you could try the following:

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

(Just add the above lines to your .emacs or init.el, and eval it or restart emacs).




回答2:


Here's what I do. It's a little more general than the code above, and it uses the built-in font-lock mechanisms.

(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)))



回答3:


Here are some links. I found them on the Google. It seems there is no one fully-complete and "official" solution to this problem, but a number of possibly quite usable substitutes avaliable.



来源:https://stackoverflow.com/questions/875543/how-can-i-color-certain-things-in-emacs

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!