gvim自定义突出显示.vimrc中的组不起作用

时间:2012-06-18 16:26:33

标签: unix vim

vim版本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 / \+$/

我正在关注此guide并使用autocmd来阻止我的高亮设置被清除。但仍然无法上班。有谁知道什么可能是错的?

2 个答案:

答案 0 :(得分:19)

您的代码存在的问题是match命令引用了尚未定义的自定义突出显示组名称。这些组名必须使用例如highlight UnwanttedTab ... 之前match一起使用它们。 autocmds只会在加载任何colorscheme之后使用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

答案 1 :(得分:4)

你对2004年发布的Vim版本6.3做了什么?!

ColorScheme事件仅在两年后的Vim 7.0或大约六年前推出。

切换到较新的Vim版本;那么你也可以使用一个现成的插件来突出显示尾随空格,例如:我的ShowTrailingWhitespace插件。