vimscript调用与执行

在vimscript中,调用和执行有什么区别?在哪些场景/用例中我应该使用一个对另一个?

(免责声明,我知道在vim中提供广泛的在线帮助 – 我正在寻求一个简明扼要的答案这个具体问题).

从编写我自己的插件和阅读别人的代码的经验:

:call:用于调用函数:

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)

相关文章

解决方案:解决linux下vim乱码的情况:(修改vimrc的内容)全...
Linuxvi/vim所有的UnixLike系统都会内建vi文书编辑器,其他的...
      vim正则匹配:空行:/^$/  /^[\t]*$/注释...
$select-editorSelectaneditor.Tochangelater,run'sele...
上次手贱忘了保存,这次就简单做个备忘吧,把踩过的坑记一下...
Linux之文本编译器小结vim的优势所有的UNIX-LIKE习通都会内置...