8

重複の可能性:
vim がタブの場所に下線を引くのはなぜですか? これを回避する方法は?

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 リンクの行頭の空白を無視するようにシンタックス ハイライターに指示する方法はありますか?

4

2 に答える 2

10

を変更することでこれを達成することができました$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

次のように:

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

出来上がり!htmlLinkText基本的に、これは、先頭と末尾の空白に一致しない別の含まれる構文 group を導入し、代わりに強調表示をそれに適用します。

于 2012-04-15T20:35:30.063 に答える
8

あなたはこれを行うことができます:

:hi link htmlLink NONE
于 2012-04-14T04:00:42.970 に答える