Vimscript에서 파일이 현재 디렉토리에 있는지 확인하는 우아한 방법을 찾고 있습니다.
아래 코드를 생각해 냈지만 그것이 가장 우아한 솔루션인지 확실하지 않습니다 (파일이 있으면 Vim 옵션을 설정하겠습니다). 파일 이름을 다른 비교하지 않아도되는 방법이 있습니까?
Vim과 다른 내장 기능을 사용할 수 있습니까?
:function! SomeCheck()
: if findfile("SpecificFile", ".") == "SpecificFile"
: echo "SpecificFile exists"
: endif
:endfunction
답변
약간의 검색 vim man
을 통해 원본보다 훨씬 좋아 보이는 이것을 발견했습니다.
:function! SomeCheck()
: if filereadable("SpecificFile")
: echo "SpecificFile exists"
: endif
:endfunction
답변
일부 의견은 대신 filereadable
사용에 대한 우려를 표현 glob
합니다. 이것은 존재하는 파일이있는 문제를 해결하지만 권한이 파일을 읽을 수 없도록합니다. 이러한 경우를 감지하려면 다음이 작동합니다.
:if !empty(glob("path/to/file"))
: echo "File exists."
:endif
답변
받아 들여진 답변에 대한 형이상 사의 의견 에 대한 가시성을 더 제공합니다 .
파일 읽기 가능 (expand ( “~ / .vim / bundle / vundle / README.md”)) let 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