14

版本 6.3

尝试创建一个新的突出显示组来突出显示制表符和尾随空格。我在 .vimrc 中只有这些设置。

autocmd ColorScheme * highlight UnwanttedTab ctermbg=red guibg=darkred
match UnwanttedTab /\t/
autocmd ColorScheme * highlight TrailSpace guibg=red ctermbg=darkred
match TrailSpace / \+$/ 
colorscheme torte

但是在启动vim时,我得到了这样的错误:

line    1:
E216: No such group or event: ColorScheme * highlight UnwanttedTab ctermbg=red guibg=darkred
line    2:
E28: No such highlight group name: UnwanttedTab /\t/
line    3:
E216: No such group or event: ColorScheme * highlight TrailSpace guibg=red ctermbg=darkred
line    4:
E28: No such highlight group name: TrailSpace / \+$/

我正在遵循本指南并使用 autocmd 来防止我的突出显示设置被清除。但是还是不能上班。有谁知道可能出了什么问题?

4

2 回答 2

22

您的代码的问题是match命令引用了尚未定义的自定义突出显示组名称。这些组名必须先使用 eg 定义,highlight UnwanttedTab ... 然后再与 .一起使用match。将仅在您加载任何颜色方案autocmds使用高亮组名称来定义。highlight

这是一种设置高亮组的方法,首先用组名定义语法高亮,然后为这些组名提供匹配:

highlight UnwanttedTab ctermbg=red guibg=darkred
highlight TrailSpace guibg=red ctermbg=darkred
match UnwanttedTab /\t/
match TrailSpace / \+$/ 

文章中的autocmd建议旨在防止您可能加载的任何颜色方案清除您的自定义突出显示组:highlight clear

尝试将上面的命令与autocmd, 在你的.vimrc

highlight UnwanttedTab ctermbg=red guibg=darkred
highlight TrailSpace guibg=red ctermbg=darkred
match UnwanttedTab /\t/
match TrailSpace / \+$/ 

autocmd ColorScheme * highlight UnwanttedTab ctermbg=red guibg=darkred
autocmd ColorScheme * highlight TrailSpace guibg=red ctermbg=darkred

colorscheme torte
于 2012-06-18T19:04:11.597 回答
4

你到底在用 2004 年发布的 Vim 6.3 版做什么?!

ColorScheme事件仅在两年后的 Vim 7.0 中引入,也就是大约六年前。

切换到更新的 Vim 版本;那么您也可以使用现成的插件之一来突出尾随空格,例如我的ShowTrailingWhitespace插件。

于 2012-06-19T11:13:33.223 回答