0

MacVimのカラースキームのリストをループするようにマッピングを設定したいと思います。

理想的には、次のような配色の配列があります。

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

私の質問は、これを行うためのよりクリーンな方法はありますか?配色セッター関数に変数を渡したいのですが、うまくいかないようです。

これらのスキーム名は定数ですか?もしそうなら、どのように変数に割り当てますか?

どうもありがとう。

4

1 に答える 1

1

:colorschemeは、などの他のいくつかのように:source、文字通り残りの行を取得するという点で制限されています。つまり、引数としてVimL式を使用することはできません。この制限は通常:execute、たとえばを使用して回避されます。

execute 'colorscheme '.s:mycolors[current]

これは、VimTipswikiに投稿された配色スイッチャーから来ています。

于 2013-02-01T02:36:20.493 に答える