gpt4 book ai didi

Vim 语法高亮 "hi def link"改变某些映射的颜色

转载 作者:行者123 更新时间:2023-12-05 08:43:18 28 4
gpt4 key购买 nike

我有一个 vim 语法颜色文件,其中包含以下行:

hi Function guifg=#536991 guibg=NONE guisp=NONE gui=bold ctermfg=60 ctermbg=NONE cterm=bold           
hi def link Define Function
hi def link TypeDef Function

好的,这些都工作得很好。但是如果我想这样做:

hi Type guifg=#008787 guibg=NONE guisp=NONE gui=bold ctermfg=30 ctermbg=NONE cterm=bold
hi def link Identifier Type

或者:

hi Keyword guifg=#BD9800 guibg=NONE guisp=NONE gui=bold ctermfg=136 ctermbg=NONE cterm=bold
hi def link Statement Keyword

突然 vim 认为我想链接这些颜色是疯了,它改变它们略微。例如,Type 颜色通常是蓝绿色,但 Identifier 在链接到 Type 时是浅蓝色。 Keyword 颜色是深黄色,但是 Statement 链接到 Keyword 后变成浅黄色。我没有在文件中定义“标识符”或“声明”颜色的任何其他内容。如果我专门为每个标记定义颜色(重复很多),则不会发生这种情况。 vim 是否试图告诉我我想链接这些颜色是愚蠢的,我是否误解了突出显示链接的功能,我做错了什么,或者这是一个错误(我怀疑)?

如果 vim 故意改变这些,有没有办法让它停止?

最佳答案

代替 hi,您可以使用 hi! 来允许链接覆盖任何默认值。

hi Type guifg=#008787 guibg=NONE guisp=NONE gui=bold ctermfg=30 ctermbg=NONE cterm=bold
hi! link Identifier Type

经过广泛的测试和研究,似乎基本的默认语法突出显示组总是会定义突出显示。例如,注释、函数等。总是定义了突出显示;执行 hi clear 只是将它们设置回默认值。如果组已经突出显示,则您不能链接该组,除非您使用 ! 标志来突出显示。这就是为什么它适用于 TypeDef 但不适用于标识符:标识符定义了默认颜色; TypeDef 没有。

关于Vim 语法高亮 "hi def link"改变某些映射的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31145592/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com