У меня есть скрипт, который читает файл HTML и заменяет вхождения ~%foo%~
значением, установленным Perl.Примерно так:
<span class="~%classname%~">~%hi_mom%~</span>
выдаст в браузере что-то вроде этого:
<span class="classyclass">Hello World</span>
Правильно, поэтому я хочу использовать подсветку синтаксиса Vim для различения вхождений ~%foo%~
в 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
получен через autocmd *.html ~/.vim/syntax/html.vim
в .vimrc
.