最近,我支持一个名为Vundle的 Vim 插件。一个名为 as 的字典g:bundle
有一个项目:
{'path': function('1')}
如果我调用 item.path(),Vundle 可以在 vundle/config.vim 中调用“s:bundle.path()”:
func! s:bundle.path()
return s:expand_path(g:bundle_dir.'/'.self.name)
endf
那么,你能告诉我关于Vimscript中匿名函数的参数“1”的用法吗?
更新:
谢谢卡尔卡特先生。
我使用:function {1}
命令,其结果是:
function 1() dict
return s:expand_path(g:bundle_dir.'/'.self.name)
endfunction
功能块同s:bundle.path()
,证明大括号中的数字表示Funcref
:
然后该函数将获得一个数字,而 dict.len 的值是一个引用该函数的 Funcref。该函数只能通过 Funcref 使用。当没有引用它的 Funcref 时,它将自动被删除。
参考:
https://github.com/gmarik/Vundle.vim/blob/master/autoload/vundle/config.vim#L106 http://vimdoc.sourceforge.net/htmldoc/eval.html#Dictionary-function