在我的自定义语法文件中,我有以下内容:
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最后读取我的自定义语法文件,因此我的高亮命令应该覆盖任何先前的命令。
1条答案
按热度按时间w1e3prcc1#
我想覆盖语法文件本身中
PreProc
的显示。别这样。
语法突出显示由两种互补机制处理:
混合这两种机制不是一个好主意,因为你的视觉属性在配色方案切换后会失效。定义一个给定组的视觉属性必须在配色方案级别上完成。你基本上有两种选择:
1.编辑配色方案文件,
1.覆盖所有配色方案或特定配色方案的特定组。
第二种方法背后的推理在here中描述,但它应该看起来像这样: