Estou procurando uma maneira elegante no Vimscript de verificar se existe um arquivo no diretório atual.
Eu vim com o código abaixo, mas não tenho certeza se essa é a solução mais elegante (vou definir uma opção Vim se o arquivo existir). Existe alguma maneira de não ter que fazer outra comparação do nome do arquivo?
Talvez use uma função integrada diferente do Vim?
:function! SomeCheck()
: if findfile("SpecificFile", ".") == "SpecificFile"
: echo "SpecificFile exists"
: endif
:endfunction
vim
file-exists
StefanB
fonte
fonte
filereadable
menções que você pode usarglob
se não se importar com a legibilidade.Alguns dos comentários expressam preocupações sobre
filereadable
como usarglob
. Isso resolve o problema de ter um arquivo que existe, mas as permissões impedem que ele seja lido. Se você quiser detectar esses casos, o seguinte funcionará:fonte
E116: Invalid arguments for function
. Como você especifica o arquivo relativo ao diretório inicial para verificar se há um plugin? (Veja também aqui )~
, mas não tenho certeza. Que argumentos você forneceu quando obteve esse erro?~
, e deu aquele erro. Agora tentei de novo e funciona ... :-)Dando um pouco mais de visibilidade ao comentário metafórico sobre a resposta aceita:
filereadable
é o que é necessário, mas há uma etapa útil extra deexpand
, caso você esteja usando~
em seu caminho:Por exemplo
:echo filereadable('~/.vimrc')
dá0
,:echo filereadable(expand('~/.vimrc'))
dá1
fonte