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


13

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

execute pathogen#infect()

Прочтите справку, связанную с плагинами автозагрузки.
Люк Эрмит

Ответы:


16

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

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

execute pathogen#infect()

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

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

:call foo#bar#func()

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.