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

lyu*_*uba 16 vim underline

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

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

可能是什么原因?

在此输入图像描述

Ran*_*ris 25

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

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

如果您只想禁用下划线,请参阅:help html.vim.在那里,它为您提供了有关您需要重新定义的高亮组的说明underline.


小智 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
    
    Run Code Online (Sandbox Code Playgroud)

  • 这个答案在没有删除其他功能的情况下完美运行,远远超过了接受的答案 (5认同)