在 Vim 中显示不间断空格的替换字符

在 Vim 中显示不间断空格的替换字符

我想在 Vim 中显示非标准空格,以便通过使用例如替换 Unicode 字符(如 ␣ (U+2423))来区分不间断空格 (U+00A0) 和窄不间断空格 (U+202F)和 ⸤ (U+2E24) 分别。

经过调查后,我能做的最好的事情就是使用以下命令为两种不间断空格类型显示相同的替换字符:

:set list
:set listchars=tab:▸\ ,eol:¬,trail:\ ,nbsp:␣

因此,listchars nbsp 参数不区分标准和窄不间断空间(顺便说一句,它还需要 Trail 参数才能正常运行)。

有什么解决方法吗?

答案1

您可以使用语法匹配和conceal

set conceallevel=1
syn match NBSP '\%xa0' conceal cchar=␣
syn match NarrowNBSP '\%u202F' conceal cchar=⸤

效果:

在此输入图像描述

您也可以使用set conceallevel=2.

conceal替换内容不会显示在光标所在的行中。对于,那个集合concealcursor:

set concealcursor=n

相关内容