0

我想设置一个映射来循环遍历 MacVim 中的颜色方案列表。

理想情况下,我会有一系列这样的配色方案:

let s:schemes = ['zellner','ron','morning','murphy','peachpuff','torte']

并在函数中将颜色方案设置为此数组的索引:

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

我的问题是,有没有更清洁的方法来做到这一点?我想将一个变量传递给颜色方案设置器函数,但这似乎不起作用。

这些方案名称是常量吗?如果是,如何将它们分配给变量?

非常感谢。

4

1 回答 1

1

:colorscheme只是受到限制,就像其他一些,例如:source,因为它从字面上获取该行的其余部分,即它不能使用 VimL 表达式作为参数。这个限制通常可以通过使用来解决:execute,例如

execute 'colorscheme '.s:mycolors[current]

这来自Vim Tips wiki 上发布的一个配色方案切换器

于 2013-02-01T02:36:20.493 回答