如何检测Vimscript中是否存在特定文件?

时间:2010-06-23 02:24:53

标签: vim file-exists

我在Vimscript中寻找一种优雅的方式来检查函数中当前目录中是否存在文件。

我想出了这个,但不确定这是否是最优雅的解决方案(我将设置vim选项,如果它存在) - 是否有任何方法不必对文件名进行另一次比较 - 可能使用不同的{{ 1}}内置函数(?):

vim

4 个答案:

答案 0 :(得分:122)

vim man进行了一些搜索,我发现了这个,看起来比原来的要好得多:

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

答案 1 :(得分:46)

有些评论表达了对filereadable和使用glob的担忧。这解决了存在确实存在的文件的问题,但权限阻止了它被读取。如果要检测此类情况,可以使用以下方法:

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

答案 2 :(得分:5)

在已接受的答案上为metaphy's comment提供更多可见性:

  

如果文件可读(expand(“〜/ .vim / bundle / vundle / README.md”)),则让g:hasVundle = 1 endif

filereadable是必需的,但是如果您在路径中使用expand,则还有一个~的方便步骤:

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

例如

  • :echo filereadable('~/.vimrc')给出0
  • :echo filereadable(expand('~/.vimrc'))给出1

答案 3 :(得分:1)

对不起,为时已晚,但是这样做

(outPutArray.charAt(i))=inputArray[i]

对我来说很好