如何更改 Vim 的(直)下划线的颜色?

How to change the color of Vim's (straight) underline?

我试过所有改变颜色的方法:

call s:h("Underlined",    {"fg": s:norm, "gui": "underline", "cterm": "underline"})

以及 link 文本的所有颜色。

有人知道怎么改吗?

这是一张照片:

很长一段时间,你做不到;下划线颜色始终等于文本颜色。 AFAICT,在终端中不支持此功能,并且为了保持一致性,Vim 也没有在 GVIM 中提供此功能。

使用 Vim 8.2.0863,ctermul attribute allows setting a separate color for underline / undercurl now. Apparently, this still isn't supported in GVIM, though (which I find odd, because Vim usually values consistency in features over fancy stuff (as explained by :help design-not)).

在 GVIM 中,您可以切换到(仅限 GUI)undercurl 属性(主要用于拼写检查),它支持单独的“特殊颜色”,通过 guisp={color-name};参见 :help highlight-guisp

对于任何在 2021 年发现这一点的人,您至少可以在 neovim 中使用 guisp=red

例如我使用

:hi CocErrorHighlight gui=undercurl guisp=red 

有红色卷曲线。

我在 Xfce 终端中使用 NeoVim。

您只能使用 ctermul 为下划线着色(独立于 ctermfg)。

请参阅 this commit 启用它。