VIM:Don';t在HTML链接中的前导空白处加下划线

VIM:Don';t在HTML链接中的前导空白处加下划线,vim,Vim,可能重复: 在CentOS 5.x上缩进VIM 7.0中的PHP代码时,HTML链接显示为下划线。这非常方便,但在某些地方,我在HTML中缩进了PHP代码,整个缩进都加了下划线: <li class="picture"> ________________<a href="<?=$linkUrl?>"> ____________________<img src="/<?=$img['source']?>" alt="P

可能重复:

在CentOS 5.x上缩进VIM 7.0中的PHP代码时,HTML链接显示为下划线。这非常方便,但在某些地方,我在HTML中缩进了PHP代码,整个缩进都加了下划线:

            <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
    在Windows上命名为
    vimfiles
    ),并替换原始语法定义

    syn region htmlLink start="<a\>\_[^>]*\<href\>" end="</a>"me=e-4 contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,javaScript,@htmlPreproc
    


    瞧!基本上,这引入了另一个包含的语法组
    htmlinkText
    ,该语法组不匹配前导和尾随空格,而是将突出显示应用于该语法组。

    谢谢,但这会禁用所有链接突出显示,我碰巧发现这很有用。我正在寻找禁用高光只有在行首空白。谢谢。由于某些原因,现在没有链接高亮显示,但是H2和P标记高亮显示!我仔细地检查了这些变化,似乎找不到。编辑内容围绕第150行和第253行。谢谢你,英戈!你的编辑很好,你的文件适合我。你有没有其他的定义,可能是在~/.vim/after/syntax/file中?没有,没有其他文件或定义,我甚至试过使用一个空白的~/.vimrc(因此没有其他系统范围的.vimrc会妨碍)。这是在一个Cygwin终端中,它被放入CentOS 5.x盒,VIM 7.0中。@dotancohen:我想我现在遇到了你们所说的“H2和P标签现在突出显示”。这可以通过在HTMLINK定义中添加“keepend”来解决;我已经更新了我的答案。英戈,谢谢你,这正是关键!这会减少我的视力,谢谢。我看了一下你的网站,我想你可能想知道汉娜在希伯来语中也是“美丽”的意思。
    syn region htmlLink start="<a\>\_[^>]*\<href\>" end="</a>"me=e-4 keepend contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLinkText,javaScript,@htmlPreproc
    syn match htmlLinkText contained contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLinkText,javaScript,@htmlPreproc "^\s*\zs.\{-}\ze\s*$"
    syn match htmlLinkText contained contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLinkText,javaScript,@htmlPreproc "\S.\{-}\ze\s*$"
    
    HtmlHiLink htmlLink                    Underlined
    
    HtmlHiLink htmlLinkText                Underlined