在vimscript中,调用和执行有什么区别?在哪些场景/用例中我应该使用一个对另一个?
(免责声明,我知道在vim中提供广泛的在线帮助 – 我正在寻求一个简明扼要的答案这个具体问题).
从编写我自己的插件和阅读别人的代码的经验:
function! s:foo(id) execute 'buffer' a:id endfunction let target_id = 1 call foo(target_id)
:执行:用于两件事情:
1)构造一个字符串并对其进行评估.这通常用于将参数传递给命令:
execute 'source' fnameescape('l:path')
2)评估函数的返回值(可以相同):
function! s:bar(id) return 'buffer ' . a:id endfunction let target_id = 1 execute s:bar(target_id)