【问题标题】:gvim to custom highlight group in .vimrc not workinggvim 到 .vimrc 中的自定义高亮组不起作用
【发布时间】:2023-03-12 10:54:02
【问题描述】:

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 来防止我的突出显示设置被清除。但是还是不能上班。有谁知道可能出了什么问题?

【问题讨论】:

标签: unix vim


【解决方案1】:

您的代码的问题是match 命令引用了尚未定义的自定义突出显示组名称。这些组名必须使用例如定义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 清除自定义突出显示组。

尝试在.vimrc 中将上述命令与autocmd 结合起来:

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

【讨论】:

  • 尝试了您的解决方案,但仍然收到相同的错误消息。有什么问题?
  • 非常感谢!
【解决方案2】:

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

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

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

【讨论】:

  • +1 指出不支持 ColorScheme 的过时版本。谢谢!
猜你喜欢
  • 2011-07-23
  • 2013-04-07
  • 2019-07-12
  • 2014-07-08
  • 1970-01-01
  • 2011-10-31
  • 1970-01-01
  • 2012-12-19
  • 2017-03-05
相关资源
最近更新 更多