Co oznacza symbol „#” w nazwie funkcji?

13

Chciałbym wiedzieć, jakie jest znaczenie #symbolu w nazwach funkcji, np .:

execute pathogen#infect()
Alex
źródło
Przeczytaj pomoc dotyczącą wtyczek autoload.
Luc Hermitte,

Odpowiedzi:

16

To część mechanizmu automatycznego ładowania. Od Autoloadingw Learn Vimscript the Hard Way i :help autoload:

Autoload pozwala opóźnić ładowanie kodu, dopóki nie jest rzeczywiście potrzebny, więc jeśli następująca funkcja

execute pathogen#infect()

został już załadowany, Vim po prostu wywoła go normalnie. W przeciwnym razie Vim wyszuka plik nazwany autoload/pathogen.vimw twoim ~/.vimkatalogu. Jeśli ten plik istnieje, Vim załaduje / prześle plik. Następnie spróbuje normalnie wywołać funkcję.

Każda #nazwa funkcji działa jak separator ścieżki. Dlatego podczas wywoływania funkcji:

:call foo#bar#func()

Vim wyszuka plik autoload/foo/bar.vim

Jair López
źródło