如何使用 vimscript 以编程方式更改颜色方案?

how can I change the colorscheme programmatically with vimscript?

我想在 vimscript 中更改配色方案,例如:

let g:scheme = "default"
colorscheme scheme

我收到以下错误:

colorscheme "scheme" cannot be found

为什么当我执行 :colorscheme 命令时,变量 'scheme' 没有链接到字符串 'default'?

“vimscript”或“viml 脚本”或其他(很难命名)实际上只是一系列 Ex 命令,有时称为“冒号命令”。

这些命令中的大多数,例如 :colorscheme,只直接将字符串作为输入,甚至不尝试计算 variables/expressions:

colorscheme scheme

在您的示例中,scheme 被视为字符串,而不是变量,因此您当然会收到错误消息,因为您没有名为 scheme 的颜色方案。

在那些相对常见的情况下,变量必须在传递给 Ex 命令之前进行评估。这是通过 :help :execute:help expr-.. 运算符完成的:

execute 'colorscheme ' .. scheme