为什么 vim 在制表符处画下划线以及如何避免这种情况?

发布于 2024-10-11 00:49:46 字数 162 浏览 4 评论 0原文

没有任何特定的规律,我的 vim 在选项卡位置显示下划线(见下文)。

有时,文本也会发生这种情况:我输入后,它带有下划线。

可能是什么原因?

在此处输入图像描述

Without any specific regularity my vim displays underlines on the place of tabs (see below).

Sometimes it also happens to the text: I type and it's underlined.

What could be a reason?

enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

傲娇萝莉攻 2024-10-18 00:49:46

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

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

如果您只想禁用下划线,请参阅 :help html.vim。它会向您提供有关需要重新定义哪些不带下划线的突出显示组的说明。

This is likely due to the fact that you are editing an html file and the text near the underline is inside of an <a> tag.

To disable this you can add let html_no_rendering=1 to your ~/.vimrc. This setting will, however, also disable bold and italic styling for html files.

If you wish to only disable the underlining, see :help html.vim. There it gives you instructions on what highlight groups you need to redefine without underline.

绅士风度i 2024-10-18 00:49:46

This method (cobbled from other responses) will enable underline only under the text portion of the link without modifying the full html.vim syntax file.

  1. Create the file ~/.vim/after/syntax/html.vim
  2. Paste the following into that file:

    " 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
    
金橙橙 2024-10-18 00:49:46

这可能是两件事之一:

  • 您设置了 'list':(尝试 :set list? 如果这显示 list,请尝试:set nolist)
  • 您有一些语法突出显示配置,可以将选项卡突出显示为下划线。添加以下映射,然后将光标放在选项卡上并按 。如果它显示突出显示组,请输入 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>

It's probably one of two things, either:

  • You have 'list' set: (try :set list? and if this says list, try :set nolist)
  • You have some syntax highlighting configuration that highlights tabs as underlined. Add the following mapping, then put the cursor on the tab and press <F3>. If it shows a highlighting group, type hi GROUPNAME to confirm the highlighting (with GROUPNAME replaced by the last named group in angle brackets). Then adjust your colour scheme to get rid of the underline.

Mapping to identify highlight group:

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>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文