2009-05-17 10 views

答えて

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や​​に上記の行を追加し、それをevalしたり、再起動emacs)。

+0

これはまさに私が欲しかったものです。ありがとう! –

+1

しかし、編集中に新しいタグを追加した場合は、新しいタグを強調表示するために関数(M-x django-highlight-comments)を再評価する必要があります。 html-modeにfont-lockキーワードを追加するほうが良いでしょう。 – polyglot

+0

少なくともEmacs 23 pretest(23.0.93.1、これは私が解決策をテストした場所です)では、_no_の再評価が必要です。後で入力する{%...%}のような完全なコメントもすぐに強調表示されます。 しかし、私はあなたの意見に同意します:長期的な解決策として、キーワードを定義するか、構文を認識する「適切な」モード(django、MuMaMoなど)を使用することをお勧めします。 –

1

Herearesomelinks。私はそれらをGoogleで見つけました。この問題には完全に完全で公式な解決策はないと思われますが、おそらくかなり代替可能なものがあります。

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))) 
+0

+1:これはより体系的な解決方法です。 –

+0

defvarは必要ですか? http://stackoverflow.com/questions/756666/match-regular-expression-as-keyword-in-define-generic-mode/756927#756927のように顔シンボルを直接使用できますか? – Yoo

関連する問題