0

我的 .vimrc 中的以下代码段以灰色阴影突出显示了行尾多余的空白:

autocmd Syntax * syntax match MySpace /\s\+$/
autocmd ColorScheme * highlight MySpace ctermbg=238

但是当这个空格已经被一个语法组匹配时,这不起作用。例如,不标记各种类型注释中的尾随空格。

该手册讨论了contains=ALL语法组的选项,但似乎没有类似containedin=ALL的 . 我可以以任何方式模仿它吗?我能想到的唯一方法是在containedin=选项中列出所有相关的语法组MySpace,这显然很乏味而且一点也不优雅。

4

2 回答 2

1

不知道如何使用Syntax,但您可以使用listchars选项突出显示尾随空格。

从我的.vimrc

" List chars
set listchars=""           " Reset the listchars
set listchars+=tab:\|\     " show tabs as "|"
set listchars+=nbsp:·      " show non-breaking spaces as "·"
set listchars+=trail:·     " show trailing spaces as "·"
set listchars+=precedes:«
set listchars+=extends:»
于 2012-05-29T12:13:41.633 回答
0

您应该使用:match命令(或matchadd()),如有关此特定主题的Vim Tips Wiki 文章中所述。

如果你喜欢一个现成的解决方案,你也可以试试我的 ShowTrailingWhitespace 插件,或者插件页面上列出的替代方案之一。

于 2012-05-29T15:17:11.443 回答