无法通过.vimrc生成灰色下线字符

无法通过.vimrc生成灰色下线字符,vim,colors,Vim,Colors,我想将灰色eol字符设置为 set list listchars=tab:>>,trail:$ 字符旁边没有空格的“:” 如果我在“:”旁边不使用空格,则上述代码没有下线字符 如果一次使用一个空格,则得到一个绿色尾随字符 - - tab:[space]>> -- 虽然我没有明确地设置它 以致 (终端中的旧代码) 如何在Vim中将下线字符置为灰色,并使其再次工作?在trail、选项卡和nbsp列表中,字符使用SpecialKey突出显示组,因此您可以使用: highl

我想将灰色eol字符设置为

set list listchars=tab:>>,trail:$
字符旁边没有空格的“:”

如果我在“:”旁边不使用空格,则上述代码没有下线字符

如果一次使用一个空格,则得到一个绿色尾随字符

- - tab:[space]>> --
虽然我没有明确地设置它

以致

(终端中的旧代码)


如何在Vim中将下线字符置为灰色,并使其再次工作?

trail
选项卡和
nbsp
列表中,字符使用
SpecialKey
突出显示组,因此您可以使用:

highlight SpecialKey ctermfg=8

使
$
符号变为灰色。如果启用了256色,则可以使用不同的灰色,如243等。

有两个突出显示组:SpecialKey和NonText。您提到的尾随字符属于非文本字符

尝试类似以下内容(y/粘贴):

集合列表
设置listchars=eol:$,tab:>-,trail:~,extends:>,位于:<
hi非文本字符MFG=7 guifg=灰色
这是否适用于您,或者我是否理解错误(很可能)。

如果您希望下线为灰色,请指定
列表字符的下线子选项,而不是trail:

trail在行尾显示不必要的空白字符,而不是行尾本身

如果要设置下线的颜色,必须设置
非文本组的高亮显示:

highlight NonText ctermfg=8 guifg=gray
如果同时指定了
ctermfg
guifg
,则高亮显示将在GUI和终端中工作

我必须指出一些缺点:

  • 在缓冲区结束后突出显示平铺字符是 与突出显示下线标志相同。我认为这是不可能的 把它们分开;它们的高亮度都取决于突出显示 非文本的
。因此,如果您设置灰色EOL,您将成为灰色波浪线
  • 在我的终端上,
    ctermfg=8
    生成红色而非灰色文本

  • 代码不会更改尾随字符的颜色。我不知道为什么--调试——我在原来的帖子中添加了一个小代码。我试着让你的代码使用它,但没有成功。我再试了一次,效果很好。你确定你使用的空间和你在帖子中使用的空间一样多吗?以前的空格是非法的,等等。至少这里出错了。这个方法几乎对我有效(Vim 7.3终端模式)。但只有当我在vim提示符下发出这个命令时,它才起作用,把它放在
    vimrc
    中没有effect@Dfr确保您的vimrc中没有
    hi clear
    或类似内容。谢谢,现在它正在工作。我还使用了自定义的coloscheme,所以我只是编辑了colorcheme.vim并在那里设置了
    SpecialKey
    选项“我现在得到了以下错误:E474:无效参数:listchars=tab:»”似乎您确实编写了“set listchars=tab:»”而不是“set listchars=tab:>>”。第二种情况是正确的,在冒号后面有“更大”的符号。在第一种情况下,您有“»”符号,它是一个字符。另外,正如sykora所说,您不应该在“>>”和“trail:”之后写空格。下面是您应该写的内容:set list listchars=tab:>>,trail:$@hcs42:我现在在>>和$之后没有空格了。我现在没有得到E474错误消息,但是我现在没有得到尾随字符。男孩,默认的蓝色太难看了。到图像的链接被破坏了。请重新上传到Imgur。我发现“非文本”突出显示将用于“eol”、“扩展”和“前置”。“特殊”用于“nbsp”、“tab”和“trail”。“像这样试试吧。”。首先,设置“set list”和“set listchars=”。顺便说一句,您总是可以通过“设置列表字符”来查看您的列表字符。现在我们把它重新安置好了。现在,将listchars选项设置为某个值,只需确保每个字符都不同(参见上面的示例),然后设置“hi SpecialKey”和“hi NonText”选项。这应该行得通。如果它开始表现出奇怪的行为,发布结果。但它应该可以工作。@Masi-好的,那么您只需设置“hi NonText guifg=gray”就可以了。(或ctermfg,…取决于您使用的vim版本,但您可能知道该部分)。干杯@玛西-我已经做了一点实验,但我无法复制你的行为。如果您尝试使用空的vimrc启动vim(注意不要在后台加载其他vimrc),在修改“set list”、“listchars”和“hi NonText”选项后,它是否显示相同的行为?不幸的是,我使用WinXP和*nix,没有OS/X在上面进行精确的尝试。带有空vimrc的Vim可以通过“-u”参数启动(在我的平台上)。
    set list listchars=tab:>>,eol:$
    
    highlight NonText ctermfg=8 guifg=gray