~%foo%~
HTML ファイルを読み取り、出現箇所を Perl によって設定された値に置き換えるスクリプトがあります。このようなもの:
<span class="~%classname%~">~%hi_mom%~</span>
ブラウザで次のようなものが生成されます。
<span class="classyclass">Hello World</span>
~%foo%~
そうですね、Vim 構文の強調表示を使用して、HTML 内の出現箇所を区別したいと思います。デフォルトでは、HTML 構文の強調表示は HTML 要素の属性値を作成しMagenta
、その~%foo%~
部分をDarkMagenta
. tokenQuoted
行(またはトークン行)をコメントアウトすると目的の結果が得られますが、一致とハイライトの両方でコメントを解除すると、トークンのハイライトがハイライトを上書きするため、正しい軌道に乗っていtokenQuoted
ます。
syntax match token containedin=ALLBUT,htmlString,htmlValue '\~%[^%]\+%\~'
syntax match tokenQuoted containedin=htmlString,htmlValue '\~%[^%]\+%\~'
" tokenQuoted assumes htmlString/htmlValue (:highlight String) is Magenta
highlight token term=none ctermfg=White guifg=White
highlight tokenQuoted term=none ctermfg=DarkMagenta guifg=DarkMagenta
私が作業しているファイルは、デフォルトhtml.vim
が in 経由
autocmd *.html ~/.vim/syntax/html.vim
で供給された後に供給され.vimrc
ます。