Vim 配色方案被插件覆盖

Vim 配色方案被插件覆盖

我正在尝试为 Vdebug 设置一些更漂亮的突出显示。

我看了来源,它说我需要瞄准一个DbgBreakptLine(我不知道它们叫什么,但它就是你放在后面的东西hi)。

但如果我输入:

hi DbgBreakptLine ctermbg=NONE ctermfg=NONE

在我的 vim 配色方案中,它什么都不做。但是,将其粘贴到会话中会产生预期的效果。我只能得出这样的结论:Vdebug 以某种方式优先处理我选择的样式。但是它是怎么做到的?它是在我的配色方案之后运行的吗?我不这么认为,因为我的 .vimrc 做的第一件事是加载病原体,然后选择我的配色方案。

鉴于此,我在网上寻找解决插件覆盖配置问题的任何方法,但没有找到任何有用的方法。

我的.vimrc 的相关部分:

execute pathogen#infect()
call pathogen#helptags()

colorscheme maxbucknell

更新

我看了这个问题,我想看一下:scrip,它显示了何时加载了哪些文件。果然,插件是在颜色之后加载的。理想情况下,我希望以某种方式自定义它,而无需更改插件,或者做一些黑客行为,例如将命令放在里面.vim/after

答案1

您是否注意到插件实际上定义了该高亮组的样式?

hi default DbgBreakptLine term=reverse ctermfg=White ctermbg=Green guifg=#ffffff guibg=#00ff00

由于它的来源你的~/.vimrc 您的配色方案将覆盖任何具有相同名称的规则。

不幸的是,这不是很干净,所以你基本上有三个可行的选择:

  • 在插件中直接更改颜色,

  • 将这些行从插件移到你的配色方案中,然后根据你的喜好进行编辑,

  • 将这些行添加到您的~/.vimrc

    augroup MyColors
        autocmd!
        autocmd ColorScheme * highlight DbgBreakptLine ctermbg=NONE ctermfg=NONE
    augroup END
    

使用~/.vim/after/目录根本不是黑客行为:它肯定没有充分记录,但它通常比你的 中的等效混乱要干净得多~/.vimrc。无论如何,我不确定它是否适合您的特定需求。你可以试试这个插件(从未尝试过)但我不确定你想要什么值得在你的设置中添加另一个插件。

编辑

事实证明你可以这样做,~/.vim/after/但这个解决方案对我来说实际上看起来很“黑客”,因为它混合了“插件”和“配色方案”。无论如何,只需输入此行~/.vim/after/plugin/foo.vim(文件名点之前的部分无关紧要):

hi DbgBreakptLine ctermbg=NONE ctermfg=NONE

相关内容