vim 覆盖语法文件中缺省突出显示组的突出显示

bxjv4tth  于 2023-03-18  发布在  其他
关注(0)|答案(1)|浏览(187)

在我的自定义语法文件中,我有以下内容:

highlight default link sv_block_comment Comment
highlight default link sv_macro PreProc
...

我想在语法文件中覆盖PreProc的显示。我尝试了以下操作:

highlight PreProc cterm=bold ctermfg=134

然后,当我第一次启动一个.sv文件时,高亮覆盖不起作用。只有在我执行:e:vsplit <some other file>之后,高亮覆盖才起作用。为什么会发生这种情况?我认为Vim最后读取我的自定义语法文件,因此我的高亮命令应该覆盖任何先前的命令。

w1e3prcc

w1e3prcc1#

我想覆盖语法文件本身中PreProc的显示。
别这样。
语法突出显示由两种互补机制处理:

  • 语法脚本定义自定义组并将它们链接到默认组,
  • 配色方案定义默认加亮组的视觉属性,并且如果需要,定义定制的加亮组。

混合这两种机制不是一个好主意,因为你的视觉属性在配色方案切换后会失效。定义一个给定组的视觉属性必须在配色方案级别上完成。你基本上有两种选择:
1.编辑配色方案文件,
1.覆盖所有配色方案或特定配色方案的特定组。
第二种方法背后的推理在here中描述,但它应该看起来像这样:

augroup mycolors
autocmd!
autocmd ColorScheme * highlight PreProc cterm=bold ctermfg=134
augroup END

相关问题