13

プラグインの関数にラッパーを書きたいのですが、varargs ( ...) を使用しています。関数が受け取るのと同じ引数をプラグインの関数に渡すにはどうすればよいですか?

例:

function! PluginInterface(...)
    for i in a:000
        echo i
    endfor
endfunction

function! MyInterface(...)
    echo a:1 . ' is great'
    call PluginInterface(a:000)
endfunction

echo '>> Their call'
call PluginInterface('hello', 'world')
echo '>> My call'
call MyInterface('hello', 'world')
4

1 に答える 1

22

関数を直接呼び出す ( call PluginInterface(a:000)) 代わりに、次を使用しますcall()

call call("PluginInterface", a:000)
call call(function("PluginInterface"), a:000)

(これは奇妙に見えますが、関数であるため、前にorまたは を受け入れる何かcall()を付ける必要があります。):calllet x =expr

を参照してください:help call()

于 2012-07-28T17:42:16.980 に答える