1

最近、私は Vundle と呼ばれる Vim プラグインを支持しています。as という名前の dict に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 の値はこの関数を参照する 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

4

1 に答える 1

1

表示されるのは、無名の Dictionary 関数です。これが意味することは、ディクショナリ{'path': function('1')}( と呼びましょうfoo。これが の要素であることがわかっていますg:bundles) に対して、次のように定義されているということです。

let foo = {}
function foo.path() dict
    return "foo"
endfunction

関数定義の詳細については、

:function {1}
于 2014-03-07T08:07:52.863 に答える