Estoy buscando una forma elegante en Vimscript de verificar si existe un archivo en el directorio actual.
Se me ocurrió el código a continuación, pero no estoy seguro de si esa es la solución más elegante (estableceré una opción de Vim si el archivo existe). ¿Hay alguna forma de no tener que hacer otra comparación del nombre del archivo?
¿Quizás usar una función incorporada diferente de Vim?
:function! SomeCheck()
: if findfile("SpecificFile", ".") == "SpecificFile"
: echo "SpecificFile exists"
: endif
:endfunction
vim
file-exists
StefanB
fuente
fuente
filereadable
menciones que puede utilizarglob
si no le importa la legibilidad.Algunos de los comentarios expresan preocupaciones sobre el
filereadable
uso y en suglob
lugar. Esto soluciona el problema de tener un archivo que sí existe, pero los permisos impiden que se lea. Si desea detectar tales casos, lo siguiente funcionará:fuente
E116: Invalid arguments for function
. ¿Cómo se especifica el archivo relativo al directorio de inicio para buscar un complemento? (Vea también aquí )~
, pero no estoy seguro. ¿Qué argumentos proporcionó cuando recibió ese error?~
y dio ese error. Ahora lo intenté de nuevo y funciona ... :-)Dando un poco más de visibilidad al comentario de la metafía sobre la respuesta aceptada:
filereadable
es lo que se requiere, pero hay un paso útil adicional deexpand
, en caso de que esté usando~
en su camino:Por ejemplo
:echo filereadable('~/.vimrc')
da0
,:echo filereadable(expand('~/.vimrc'))
da1
fuente