私はemacsでDjango/Pythonをプログラミングしています。{%comment%} FOO {%endcomment%}のようなものをオレンジ色にしたいと思います。Emacsで特定のものを色付けするにはどうすればいいですか?
重要なDjangoテンプレートタグの色を設定するにはどうすればよいですか?
私はemacsでDjango/Pythonをプログラミングしています。{%comment%} FOO {%endcomment%}のようなものをオレンジ色にしたいと思います。Emacsで特定のものを色付けするにはどうすればいいですか?
重要なDjangoテンプレートタグの色を設定するにはどうすればよいですか?
django-modeまたはMuMaMoなどの専用モードを使用できます。
あなたは非常に基本的な何かをしたい場合は、あなたがhtml-mode
で編集している、あなたは次のことを試みることができると仮定すると:
(defun django-highlight-comments()
(interactive "p")
(highlight-regexp "{%.*?%}" 'hi-orange))
(add-hook 'html-mode-hook 'django-highlight-comments)
(ちょうどあなたの.emacs
やに上記の行を追加し、それをevalしたり、再起動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)))
+1:これはより体系的な解決方法です。 –
defvarは必要ですか? http://stackoverflow.com/questions/756666/match-regular-expression-as-keyword-in-define-generic-mode/756927#756927のように顔シンボルを直接使用できますか? – Yoo
これはまさに私が欲しかったものです。ありがとう! –
しかし、編集中に新しいタグを追加した場合は、新しいタグを強調表示するために関数(M-x django-highlight-comments)を再評価する必要があります。 html-modeにfont-lockキーワードを追加するほうが良いでしょう。 – polyglot
少なくともEmacs 23 pretest(23.0.93.1、これは私が解決策をテストした場所です)では、_no_の再評価が必要です。後で入力する{%...%}のような完全なコメントもすぐに強調表示されます。 しかし、私はあなたの意見に同意します:長期的な解決策として、キーワードを定義するか、構文を認識する「適切な」モード(django、MuMaMoなど)を使用することをお勧めします。 –