Was bedeutet das Symbol '#' im Funktionsnamen?

13

Ich würde gerne wissen, was das #Symbol in Funktionsnamen bedeutet, zB:

execute pathogen#infect()
Alex
quelle
Lesen Sie die Hilfe zu Autoload-Plugins.
Luc Hermitte

Antworten:

16

Das ist Teil des Autoload-Mechanismus. Von Autoloadingat Learn Vimscript the Hard Way und :help autoload:

Mit Autoload können Sie das Laden von Code verzögern, bis er tatsächlich benötigt wird. Wenn also die folgende Funktion

execute pathogen#infect()

wurde bereits geladen, Vim ruft es einfach normal auf. Andernfalls sucht Vim nach einer Datei, die autoload/pathogen.vimin Ihrem ~/.vimVerzeichnis aufgerufen wird . Wenn diese Datei vorhanden ist, lädt / beschafft Vim die Datei. Es wird dann versucht, die Funktion normal aufzurufen.

Jeder #im Funktionsnamen funktioniert wie ein Pfadtrennzeichen. Also beim Aufrufen einer Funktion:

:call foo#bar#func()

Vim sucht nach der Datei autoload/foo/bar.vim

Jair López
quelle