118

現在のディレクトリにファイルが存在するかどうかを確認するためのエレガントな方法をVimscriptで探しています。

私は以下のコードを思いついたが、それが最も洗練された解決策であるかどうかはわからない(ファイルが存在する場合はVimオプションを設定する)。ファイル名をもう一度比較する必要がない方法はありますか?

たぶんVimとは別の組み込み関数を使用しますか?

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

4 に答える 4

151

少し検索するvim manと、これが見つかりました。これは、元のよりもはるかによく見えます。

:function! SomeCheck()
:   if filereadable("SpecificFile")
:       echo "SpecificFile exists"
:   endif
:endfunction
于 2010-06-23T03:09:50.147 に答える
64

一部のコメントは、代わりにfilereadable使用することについて懸念を表明しています。globこれにより、ファイルが存在するが、アクセス許可によって読み取れないという問題が解決されます。そのようなケースを検出したい場合は、次のようにします。

:if !empty(glob("path/to/file"))
:   echo "File exists."
:endif
于 2014-05-06T13:58:15.347 に答える