Je recherche un moyen élégant dans Vimscript pour vérifier si un fichier existe dans le répertoire courant.
J'ai trouvé le code ci-dessous mais je ne suis pas sûr que ce soit la solution la plus élégante (je définirai une option Vim si le fichier existe). Existe-t-il un moyen de ne pas avoir à faire une autre comparaison du nom de fichier?
Peut-être utiliser une fonction intégrée différente de Vim?
:function! SomeCheck()
: if findfile("SpecificFile", ".") == "SpecificFile"
: echo "SpecificFile exists"
: endif
:endfunction
vim
file-exists
stefanB
la source
la source
filereadable
mentions que vous pouvez utiliserglob
si vous ne vous souciez pas de la lisibilité.Certains des commentaires expriment des inquiétudes au sujet de l'
filereadable
utilisation à laglob
place. Cela résout le problème d'avoir un fichier qui existe, mais les autorisations l'empêchent d'être lu. Si vous souhaitez détecter de tels cas, ce qui suit fonctionnera:la source
E116: Invalid arguments for function
. Comment spécifiez-vous le fichier par rapport au répertoire personnel pour rechercher un plugin? (Voir aussi ici )~
, mais je ne suis pas sûr. Quels arguments avez-vous fournis lorsque vous avez eu cette erreur?~
, et cela a donné cette erreur. Maintenant, j'ai essayé à nouveau et ça marche ... :-)Donner un peu plus de visibilité au commentaire de la métaphy sur la réponse acceptée:
filereadable
est ce qui est requis, mais il y a une étape très pratique deexpand
, si vous utilisez~
dans votre chemin:Par exemple
:echo filereadable('~/.vimrc')
donne0
,:echo filereadable(expand('~/.vimrc'))
donne1
la source