隐藏Vim中的角色而不影响它的突出显示方式

时间:2014-03-09 18:13:07

标签: vim vim-syntax-highlighting

我想显示'␣'而不是非破坏空格,因为默认情况下它们是不可见的,并将以下行添加到我的vimrc

syntax match nonbreaking "\%xa0" conceal cchar=␣
set conceallevel=1
highlight nonbreaking ctermbg=NONE guibg=NONE

虽然这有效,但它也会为所有出现的不间断空格添加背景颜色 - 即使使用{cterm,gui}bg=NONE行:

enter image description here

有没有办法在“␣”后面“隐藏”U + 00ad而不影响它的突出显示方式?

2 个答案:

答案 0 :(得分:5)

嗯,这不是关于隐藏字符背景的问题的直接答案,尽管这是解决问题的方法:

要将不可分隔的空格显示为,您应该更好地使用listchars设置:

:set listchars=nbsp:␣

这是我完整的listchars设置,以防您感兴趣:

:set listchars=eol:¶,trail:~,extends:⫸,precedes:⫷,tab:▸ ,nbsp:␣

这不会影响颜色。

有关它的更多信息:he listchars

HTH

答案 1 :(得分:2)

我还建议不要使用隐藏功能,因为它会干扰现有的语法高亮显示; @zmo建议使用'listchars'是优选的(但:set list有副作用,例如包装也是如此。)

为了完整起见,您可以通过Conceal突出显示组来影响隐藏字符的视觉外观。

:hi clear Conceal

清除现有的突出显示。