为什么采购 g:colors_name 在 vim 中不起作用?

Why doesn't sourcing g:colors_name work in vim?

我正在尝试制作一个 autocmd,每当我切换缓冲区时它都会重新加载当前的配色方案。目前我有 autocmd BufEnter * source '~/.vim/colors/' . g:colors_name . '.vim' 但它不工作。我得到 E185 找不到配色方案 g:colors_name。回显 g:colors_name 调出配色方案的名称,因为它与文件名相同,所以应该只是附加路径和扩展名的问题,但这里有些不对劲。我做错了什么?

-- 编辑--

你的问题是变量没有展开。请改用此命令:

autocmd BufEnter * execute "source ~/.vim/colors/" . g:colors_name . ".vim"

-- 编辑--

无论如何,你为什么不简单地做 colorscheme " . g:colors_name

在处理我的配色方案时,我只是 :w | color apprentice 然后用 <Up> 箭头重复。