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

Sta*_*tan 11 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
Run Code Online (Sandbox Code Playgroud)

但是当启动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 / \+$/
Run Code Online (Sandbox Code Playgroud)

我正在按照本指南使用autocmd来防止我的高亮设置被清除.但仍然无法上班.有谁知道什么可能是错的?

pb2*_*b2q 19

代码的问题在于match命令引用了尚未定义的自定义突出显示组名称.必须使用例如highlight UnwanttedTab ... 使用它们之前定义这些组名match.该autocmds会只定义使用的高亮组名highlight 之后已加载任何色彩方案.

这是一种设置突出显示组的方法,首先使用组名定义语法突出显示,然后为这些组名提供匹配:

highlight UnwanttedTab ctermbg=red guibg=darkred
highlight TrailSpace guibg=red ctermbg=darkred
match UnwanttedTab /\t/
match TrailSpace / \+$/ 
Run Code Online (Sandbox Code Playgroud)

本文中的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
Run Code Online (Sandbox Code Playgroud)