我在 vim 中使用set list
和set listchars
选项。我想自定义set listchars
显示尾随空格等,但不显示制表符。是否可以指定我不想显示特定类型的空格?
我尝试过这个:
set listchars=tab:,trail:·,extends:>,precedes:<,nbsp:%
但是我在加载我的时收到语法错误.vimrc
。
答案1
不幸的是,这是不可能的。您只能:set list
打开或关闭,并且对于您未在 中定义的元素'listchars'
,将使用默认值。
我不建议总是在 下操作:set list
,因为它有一些副作用(例如影响软包装)。
如果你只是关心如何突出显示尾随空格,那么有一些插件可以通过其他方式实现这一点。实际上,我已经编写了ShowTrailingWhitespace 插件为此,该页面提供了替代方案的链接。
答案2
我刚刚发现,虽然这在技术上是不可能的,但人们可以作弊并输入特殊的 Unicode 空格字符(而不是常规空格字符)作为制表符显示的字符。虽然这仍然使用 vim 的hl-NonText
突出显示颜色,但它肯定不那么突兀。
换句话说,执行以下操作(或类似操作):
set listchars=tab: ,trail:·,extends:>,precedes:<,nbsp:%
后面两个字符tab:
是不是常规空格字符 - 它们是U+2002。您可以在 vim 中使用Ctrl-V u 2 0 0 2(插入模式)输入它们。
到目前为止,我还没有发现任何严重的副作用。