Wie man Pfad zur aktuellen vimscript ausgeführt wird
In meinem vim-plugin, ich habe zwei Dateien:
myplugin/plugin.vim
myplugin/plugin_helpers.py
Ich würde gerne importieren plugin_helpers vom plugin.vim (mit der vim-python-Unterstützung), so dass ich glaube, ich muss zuerst setzen Sie das Verzeichnis mein plugin auf python-sys.Pfad.
Wie kann ich (in vimscript) der Pfad der aktuell ausgeführten script? In python ist dies __file__
. In ruby ist es __FILE__
. Ich konnte Sie nicht finden, etwas ähnliches für vim durch googeln, kann es getan werden?
Hinweis: ich bin nicht auf der Suche nach der derzeit bearbeitet - Datei ("%:p" und friends).
- Quelle mit Pfad relativ zum aktuellen Skript:
execute 'source ' . expand('<sfile>:p:h') . '/another.vim'
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nutze ich das Letzte oft, weil meine
~/.vimrc
ist ein symbolischer link auf ein script in einem git-repository.Gefunden:
<sfile>:p
für einen absoluten Pfad.<sfile>:p:h
für das Verzeichnis in dem das Skript sich befindet.resolve()
als<sfile>
könnte ein symbolischer link.Es ist erwähnenswert, dass die oben genannte Lösung funktioniert nur außerhalb einer Funktion.
Diese nicht das gewünschte Ergebnis:
Aber das wird:
Hier ist eine komplette Lösung für OP ' s ursprüngliche Frage:
load
eher alsrequire
reload-Skript jedes mal, die macht es viel einfacher, wenn Sie änderungen an der lib.