файл - vim табуляция




VIM: Не подчеркивайте лидирующие пробелы в ссылках HTML (2)

Возможный дубликат:
Почему vim рисует подчеркивания на месте вкладок и как этого избежать?

При вводе кода PHP в VIM 7.0 на CentOS 5.x ссылки HTML показаны подчеркнутыми. Это очень удобно, но в некоторых местах я вставлял PHP-код в этот HTML-код, и весь отступ подчеркивается:

            <li class="picture">
________________<a href="<?=$linkUrl?>">
____________________<img src="/<?=$img['source']?>" alt="Picture"/>
____________________<? if ($someCondition): ?><span class="info"><?=$img['info']?></span><? endif; ?>
________________</a>
            </li>

Есть ли способ сказать синтаксическому маркеру игнорировать линейные пробелы в HTML-ссылках?


Вы можете сделать это:

:hi link htmlLink NONE

Мне удалось добиться этого путем изменения $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

Вуаля! В принципе, это вводит еще одну содержащуюся синтаксическую группу htmlLinkText , которая не соответствует ведущему и завершающему пробелу, и вместо этого применяет подсветку к ней.







vim