我最近赞成一个名为Vundle的Vim插件。名为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”的匿名函数的用法吗?
更新
感谢Karkat先生。
我使用:function {1}
命令,其结果是:
function 1() dict
return s:expand_path(g:bundle_dir.'/'.self.name)
endfunction
功能块与s:bundle.path()
相同,它证明括号中的数字表示Funcref
:
然后函数将变为nusmber,dict.len的值为a 引用此功能的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
答案 0 :(得分:1)
你看到的是anonymous Dictionary function。这意味着对于词典{'path': function('1')}
(让我们称之为foo
,我们知道它是g:bundles
的一个元素),已经定义了这个:
let foo = {}
function foo.path() dict
return "foo"
endfunction
您可以通过
了解有关功能定义的更多信息:function {1}