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来阻止我的高亮设置被清除。但仍然无法上班。有谁知道什么可能是错的?
答案 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插件。