В последнее время я предпочитаю плагин Vim под названием Vundle. в словаре с именем g:bundle
есть элемент:
{'path': function('1')}
Если я вызову item.path(), Vundle может вызвать «s:bundle.path()» в vundle/config.vim:
func! s:bundle.path()
return s:expand_path(g:bundle_dir.'/'.self.name)
endf
Итак, не могли бы вы рассказать мне об использовании параметра "1" анонимной функции в Vimscript?
Обновлено:
Спасибо за мистера Карката.
Я использую команду :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