为什么vim绘制在标签的位置下划线以及如何避免这种情况?

时间:2011-01-07 12:02:39

标签: vim underline

没有任何特定的规律性,我的vim会在标签的位置显示下划线(见下文)。

有时它也会出现在文本中:我输入并加下划线。

可能是什么原因?

enter image description here

3 个答案:

答案 0 :(得分:25)

这可能是因为您正在编辑html文件,并且下划线附近的文本位于<a>标记内。

要停用此功能,您可以将let html_no_rendering=1添加到~/.vimrc。但是,此设置还将禁用html文件的粗体和斜体样式。

如果您只想禁用下划线,请参阅:help html.vim。在那里,它为您提供了在没有underline的情况下重新定义的重点组的说明。

答案 1 :(得分:8)

此方法(从其他响应中拼凑而成)将仅在链接的文本部分下方启用下划线,而不修改完整的html.vim语法文件。

  1. 创建文件〜/ .vim / after / syntax / html.vim
  2. 将以下内容粘贴到该文件中:

    " disable the current htmlLink syntax
    highlight link htmlLink text
    
    " enable a new htmlLink syntax
    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*$"
    
    " enable the new syntax
    hi def link htmlLinkText                Underlined
    

答案 2 :(得分:2)

这可能是两件事之一:

  • 您已设置'list' :(尝试:set list?如果这显示为list,请尝试:set nolist
  • 您有一些语法突出显示配置,突出显示标签为下划线。添加以下映射,然后将光标放在选项卡上并按<F3>。如果它显示突出显示组,请键入hi GROUPNAME以确认突出显示(将GROUPNAME替换为尖括号中的最后一个命名组)。然后调整你的配色方案以摆脱下划线。

映射以识别突出显示组:

map <F3> :echo "hi<" . synIDattr(synID(line("."),col("."),1),"name") . '> trans<' . synIDattr(synID(line("."),col("."),0),"name") . "> lo<" . synIDattr(synIDtrans(synID(line("."),col("."),1)),"name") . ">" . " FG:" . synIDattr(synIDtrans(synID(line("."),col("."),1)),"fg#") . " BG:" . synIDattr(synIDtrans(synID(line("."),col("."),1)),"bg#")<CR>