如何将varargs传递给vimscript中的另一个函数?

如何将varargs传递给vimscript中的另一个函数?,vim,variadic-functions,Vim,Variadic Functions,我想为插件的函数编写一个包装器,但它使用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

我想为插件的函数编写一个包装器,但它使用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')

不要直接调用函数(
callplugininterface(a:000)
),而是使用
call()

(这看起来很奇怪,但是
call()
是一个函数,因此您仍然必须在它前面加上
:call
let x=
或接受
表达式的东西)

请参阅
:help call()

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