Vim E194:Kein alternativer Dateiname als Ersatz für „#“
Frage
Ich verwende das Plugin ctrlp.vim, das im Wesentlichen ein Dateifinder ist.Ich habe die hier genannten Installationsschritte befolgt:
http://kien.github.io/ctrlp.vim/#installation (mit Git)
Mein Plugin funktioniert gut und wie erwartet, aber beim Starten von vim erhalte ich folgende Fehlermeldung:
Error detected while processing FuncUndefined Auto commands for "*":
E194: No alternate file name to substitute for '#': runtime autoload/ctrlp#utils#cachedir.vim
Press ENTER or type command to continue
Beim Entfernen set runtimepath^=~/.vim/bundle/ctrlp.vim
Von meinem vimrc aus verschwindet der Fehler, aber offensichtlich funktioniert sogar mein Plugin nicht mehr, was nicht erwünscht ist.
Bitte helfen Sie.
Lösung
Das Format dieses Befehls ist falsch:Anstatt
runtime autoload/ctrlp#utils#cachedir.vim
es sollte sein
runtime autoload/ctrlp/utils/cachedir.vim
Der #
Trennzeichen wird verwendet, wenn Berufung Autoload-Funktionen, aber :runtime
erfordert einen Pfad mit Pfadtrennzeichen.Darin sind die speziellen Identifikatoren wie z #
Und %
sind in Kraft, und das verursacht den Fehler.
Um das zu beheben, finden Sie heraus, von wo aus dieser falsche Befehl ausgegeben wird.
:verbose autocmd FuncUndefined
ist ein guter Anfang.
Andere Tipps
Ich hatte den gleichen Fehler mit der Windows-Version von GVim 8.1, als ich versuchte, eine zu schreiben [Kein Name] Puffer zu einem Dateinamen, der enthält #include
.Platzieren eines \
vor jedem #
im Dateinamen umgeht das Problem.
Ich dachte, es würde im Widerspruch zur Windows-Konvention stehen, Backslashes zur Trennung von Ordnern in Dateipfaden zu verwenden, aber das war nicht der Fall.