Что означает символ «#» в имени функции?

13

Я хотел бы знать, что означает #символ в именах функций, например:

execute pathogen#infect()
Alex
источник
Прочтите справку, связанную с плагинами автозагрузки.
Люк Эрмит

Ответы:

16

Это часть механизма автозагрузки. С Autoloadingв ЖЖ Vimscript жесткий путь и :help autoload:

Автозагрузка позволяет отложить загрузку кода до тех пор, пока он действительно не понадобится, поэтому, если следующая функция

execute pathogen#infect()

уже был загружен, Vim просто позвонит как обычно. В противном случае Vim будет искать файл с именем autoload/pathogen.vimв вашем ~/.vimкаталоге. Если этот файл существует, Vim загрузит / отправит файл. Затем он попытается вызвать функцию в обычном режиме.

Каждый #в имени функции работает как разделитель пути. Таким образом, при вызове функции:

:call foo#bar#func()

Vim будет искать файл autoload/foo/bar.vim

Jair López
источник