Ich suche nach einer eleganten Möglichkeit in Vimscript, um zu überprüfen, ob eine Datei im aktuellen Verzeichnis vorhanden ist.
Ich habe mir den folgenden Code ausgedacht, bin mir aber nicht sicher, ob dies die eleganteste Lösung ist (ich werde eine Vim-Option festlegen, wenn die Datei vorhanden ist). Gibt es eine Möglichkeit, den Dateinamen nicht erneut vergleichen zu müssen?
Verwenden Sie möglicherweise eine andere integrierte Funktion als Vim?
:function! SomeCheck()
: if findfile("SpecificFile", ".") == "SpecificFile"
: echo "SpecificFile exists"
: endif
:endfunction
vim
file-exists
stefanB
quelle
quelle
filereadable
Erwähnungen, die Sie verwenden können,glob
wenn Sie sich nicht um die Lesbarkeit kümmern.Einige der Kommentare äußern Bedenken hinsichtlich
filereadable
und Verwendungglob
stattdessen. Dies behebt das Problem, dass eine Datei vorhanden ist, aber Berechtigungen verhindern, dass sie gelesen wird. Wenn Sie solche Fälle erkennen möchten, funktioniert Folgendes:quelle
E116: Invalid arguments for function
. Wie geben Sie die Datei relativ zum Home-Verzeichnis an, um nach einem Plugin zu suchen? (Siehe auch hier )~
, aber ich bin nicht positiv. Welche Argumente haben Sie geliefert, als Sie diesen Fehler erhielten?~
versucht und es gab diesen Fehler. Jetzt habe ich es nochmal versucht und es funktioniert ... :-)Metaphys Kommentar zur akzeptierten Antwort etwas sichtbarer machen :
filereadable
ist erforderlich, aber es gibt einen besonders praktischen Schrittexpand
, falls Sie ihn~
auf Ihrem Weg verwenden sollten:Beispielsweise
:echo filereadable('~/.vimrc')
gibt0
,:echo filereadable(expand('~/.vimrc'))
gibt1
quelle