.vimrc 명령이 기존 파일에 종속되도록 하려면 어떻게 해야 합니까?

.vimrc 명령이 기존 파일에 종속되도록 하려면 어떻게 해야 합니까?

나는 .vimrc다음과 같은 방법으로 병원균을 사용합니다.

execute pathogen#infect()

하지만 새 컴퓨터를 설치했는데 병원체가 설치되어 있지 않으면

mkdir -p ~/.vim/autoload ~/.vim/bundle && \
curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim

그런 다음 파일을 편집할 때마다 병원체가 작동하지 않는다는 메시지가 나타납니다(그러면 파일을 편집할 수 있습니다).

내 .vimrc 호출이 실제로 존재하는 것에 execute pathogen#infect의존하기를 원합니다 .~/.vim/autoload

쉘 스크립트에서는 다음과 같은 작업을 수행합니다.

if test -f ~/.vim/autoload
  execute pathogen#infect()
fi

그러나 물론 이는 정의되지 않은 메서드 테스트를 제공합니다. 주석이나 조건문 대신에 .vimrc다른 구문을 사용하는 등 올바른 형식이 무엇인지 모르겠습니다."#

어떤 파일 형식을 사용합니까 .vimrc?

답변1

filereadable()아니면 일련의 디렉토리를 검색하는 isdirectory()후자보다 더 나은 옵션이 될 것입니다 . findfile()그런데 findfile()내 시스템에서는 아무것도 반환하지 않습니다(빈 문자열).~/.vim

그러나 isdirectory()치료할 수는 없지만 ~/구출 fnamemodify()할 수는 있습니다.

if isdirectory(fnamemodify('~/.vim/autoload', ':p'))
    execute pathogen#infect()
endif

isdirectory($HOME.'/.vim/autoload')이것도 가능합니다.

답변2

이것은 작동합니다:

if findfile("~/.vim/autoload")
  execute pathogen#infect()
endif

관련 정보