我想设置一个映射来遍历MacVim中的colorschemes列表。
理想情况下,我会有一系列颜色方案,如下所示:
let s:schemes = ['zellner','ron','morning','murphy','peachpuff','torte']
在函数中将colorscheme设置为此数组的索引:
colorscheme s:schemes[s:schemeindex]
然而,上述行不起作用。为什么?
相反,我使用了一种工作正常的解决方法:
function SwitchScheme()
if s:schemeindex == 0
colorscheme zellner
s:schemeindex = 1
elseif s:schemeindex == 1
colorscheme ron
s:schemeindex = 2
...
endif
endfunction
我的问题是,有更清洁的方法吗?我想将变量传递给colorscheme setter函数,但这似乎不起作用。
这些方案名称是否常量,如果是,如何将它们分配给变量?
非常感谢。
答案 0 :(得分:1)
:colorscheme
与:source
之类的其他一些一样受限制,因为它按字面意思取得其余部分,即它不能使用VimL表达式作为参数。这种限制通常通过使用:execute
来解决,例如
execute 'colorscheme '.s:mycolors[current]