.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')これも可能です。

おすすめ記事