Szukam eleganckiego sposobu w Vimscript, aby sprawdzić, czy plik istnieje w bieżącym katalogu.
Wymyśliłem kod poniżej, ale nie jestem pewien, czy jest to najbardziej eleganckie rozwiązanie (ustawię opcję Vima, jeśli plik istnieje). Czy jest jakiś sposób, aby nie musieć robić kolejnego porównania nazwy pliku?
Może użyć innej wbudowanej funkcji niż Vim?
:function! SomeCheck()
: if findfile("SpecificFile", ".") == "SpecificFile"
: echo "SpecificFile exists"
: endif
:endfunction
vim
file-exists
stefanB
źródło
źródło
filereadable
wzmianek, z których możesz skorzystać,glob
jeśli nie zależy Ci na czytelności.Niektóre komentarze wyrażają zaniepokojenie
filereadable
i używanieglob
zamiast tego. Rozwiązuje to problem posiadania pliku, który istnieje, ale uprawnienia uniemożliwiają jego odczyt. Jeśli chcesz wykryć takie przypadki, zadziała:źródło
E116: Invalid arguments for function
. Jak określić plik względem katalogu domowego, aby sprawdzić, czy jest wtyczka? (Zobacz także tutaj )~
, ale nie jestem pewien . Jakie argumenty podałeś, kiedy pojawił się ten błąd?~
i dał ten błąd. Teraz spróbowałem ponownie i działa ... :-)Dając trochę więcej widoczności komentarzowi metafii na temat zaakceptowanej odpowiedzi:
filereadable
jest to, co jest wymagane, ale jest dodatkowy przydatny krokexpand
, jeśli powinieneś używać~
na swojej ścieżce:Na przykład
:echo filereadable('~/.vimrc')
daje0
,:echo filereadable(expand('~/.vimrc'))
daje1
źródło