有没有办法用参数列表调用vim函数。我的参数列表来自另一个函数中的可选splat参数,我需要一种方法将这些参数传递给目标函数。
目标函数是,
function! run_hello(cmd, ...)
echo 'run_hello'
echo a:cmd
echo a:000
endfunction
将调用run_hello
的函数是
function! hello(...)
call run_hello('foo', the splats here)
endfunction
它将被调用,具有不同的参数。
call hello('lorem', 'ipsum', 'dolor')
我目前正在使用hello(arglist)
并向前传递a:000
列表。但我想知道是否可以调用一个带有列表作为参数的函数,然后成为它的常规参数列表。
像JavaScript一样的东西,
foo.apply(this, ['a', 'b', 'c']
感谢。
答案 0 :(得分:15)
在Vimscript中,等效的JavaScript apply()
为call()
:
function! hello(...)
call call('run_hello', ['foo'] + a:000)
endfunction
这不是拼写错误:您:call
名为call()
的函数。