Вопрос по – VIM: не подчеркивайте лидирующие пробелы в ссылках HTML [дубликаты]
Возможное дублирование:
Почему vim рисует подчеркивание на месте вкладок и как этого избежать?
При отступе кода PHP в VIM 7.0 в CentOS 5.x ссылки HTML отображаются подчеркнутыми. Это очень удобно, но в некоторых местах я вставил в этот HTML код PHP с отступом, и весь отступ подчеркнут:
<code> <li class="picture"> ________________<a href="<?=$linkUrl?>"> ____________________<img src="/<?=$img['source']?>" alt="Picture"/> ____________________<? if ($someCondition): ?><span class="info"><?=$img['info']?></span><? endif; ?> ________________</a> </li> </code>
Есть ли способ сказать синтаксической подсветке игнорировать пробелы в начале HTML-ссыло
Мне удалось добиться этого путем изменения$VIMRUNTIME/syntax/html.vim
. Сделайте копию на~/.vim/syntax/html.vim
(.vim
названvimfiles
в Windows) и замените исходное определение синтаксиса
syn region htmlLink start="<a\>\_[^>]*\<href\>" end="</a>"me=e-4 [email protected],htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,javaScript,@htmlPreproc
со следующим:
syn region htmlLink start="<a\>\_[^>]*\<href\>" end="</a>"me=e-4 keepend [email protected],htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLinkText,javaScript,@htmlPreproc
syn match htmlLinkText contained [email protected],htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLinkText,javaScript,@htmlPreproc "^\s*\zs.\{-}\ze\s*$"
syn match htmlLinkText contained [email protected],htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLinkText,javaScript,@htmlPreproc "\S.\{-}\ze\s*$"
Дальше вниз, меняй
HtmlHiLink htmlLink Underlined
К
HtmlHiLink htmlLinkText Underlined
Voila! По сути, это вводит другую синтаксическую группуhtmlLinkText
, который не соответствует начальным и конечным пробелам, и вместо этого применяет к нему выделение.