Подтвердить что ты не робот

Vimscript: как определить, существует ли конкретный файл

Я ищу элегантный способ в vimscript, чтобы проверить, существует ли файл в текущем каталоге в функции.

Я придумал это, но не уверен, что это самое элегантное решение (я установлю опцию vim, если он существует) - есть ли способ не делать другого сравнения имени файла - возможно, использовать разные vim встроенная функция (?):

:function! SomeCheck()
:   if findfile("SpecificFile", ".") == "SpecificFile"
:       echo "SpecificFile exists"
:   endif
:endfunction
4b9b3361

Ответ 1

С небольшим количеством поиска в vim man я нашел это, что выглядит намного лучше, чем оригинал:

:function! SomeCheck()
:   if filereadable("SpecificFile")
:       echo "SpecificFile exists"
:   endif
:endfunction

Ответ 2

В некоторых комментариях выражается озабоченность по поводу filereadable и вместо этого используется glob. Это касается проблемы наличия файла, который существует, но разрешения препятствуют его чтению. Если вы хотите обнаружить такие случаи, будет работать следующее:

:if !empty(glob("path/to/file"))
:   echo "File exists."
:endif