我的 vimrc 中有以下几行
colorscheme solarized
这显然设置了日晒配色方案。我实际的 .vimrc 肯定比这长,我还为 solarized 指定了更多选项。但是,我面临的问题可以使用这个最小的 vimrc 文件来演示。
当我打开 vim(7.3 版)时,它以黑色背景和日晒配色方案开始。当我:source ~/.vimrc
再次获取 vimrc 时,它会切换到浅色背景。之后,我可以多次获取 vimrc 并且背景仍然很亮。
除了这可能是 solarized 中的错误之外,我不明白同一个 vimrc 在 vim 中获取时如何产生不同的行为。
我希望寻找有关如何进行调试的指示。
更新:
在@jim-stewart 发表评论后,我进行了更彻底的调试。在 my.vimrc
和solarized.vim
.
我发现,当我.vimrc
运行时,solarized.vim
来源并设置了正确的调色板(在我的情况下elseif g:solarized_termcolors !=
256 && &t_Co >= 16
)。
然后.vimrc
到达终点(如果有,则执行其他命令),然后solarized.vim
再次获取源,但这次调色板错误地设置为 ( if(has("gui_running") &&
(g:solarized_degrade == 0))
)。我检查了此if
语句中的变量,它们具有正确的值,不应设置此调色板。
我不知道为什么solarized.vim
要两次采购,而第二次采购太错误了。一旦我进入 vim 并调用
:echo g:colors_name
它,它就会产生E121
错误并告诉我变量没有被设置。
现在,vim
如果我从内部调用,:colorscheme solarized
那么我会根据background
. 此外,:echo
g:colors_name
返回solarized
.