developer tip

Vimscript에 특정 파일이 있는지 감지하는 방법은 무엇입니까?

optionbox 2020. 9. 1. 07:26
반응형

Vimscript에 특정 파일이 있는지 감지하는 방법은 무엇입니까?


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

참고 URL : https://stackoverflow.com/questions/3098521/how-to-detect-if-a-specific-file-exists-in-vimscript

반응형