2013-09-02 9 views
5

.vimrcに病原体が存在するかどうか確認したい場合はpathogen#infectとしてください。明らかにvimrcに病原体がインストールされているかどうかを確認してください

これは動作します:

call pathogen#infect() 

だから私は、病原体が正しくインストールされている確信しています。

if exists("*pathogen#infect") 
    call pathogen#infect() 
endif 

どちらもこれがない:

if exists("g:loaded_pathogen") 
    call pathogen#infect() 
endif 

私は何をしないのです

しかし、これは、病原体をロードしないのですか?

答えて

9

自動ロード機構のため、チェックが機能しません。

runtime! autoload/pathogen.vim 
if exists("*pathogen#infect") 
    call pathogen#infect() 
endif 

しかし、最終的に、あなたはおそらく病原体がインストールされていない場合、あなたの.vimrcからエラーを回避したい:あなたは明示的に調達することにより、自動ロードを強制することができます。そのため、単に :silent!有する任意生じる誤差をサイレンシング:

silent! call pathogen#infect() 

唯一の欠点は、任意の病原体プラグインエラーが抑制されることです。

1

この問題のために私の解決策です:)場合の病原体で

if filereadable(expand("~/.vim/autoload/pathogen.vim")) 
    runtime! autoload/pathogen.vim 
    if exists("g:loaded_pathogen") 
     execute pathogen#infect() 
    endif 
endif 
+0

は、MS Windowsのデフォルトで、たとえば、〜/て.vimにインストールされていない!場合は、空(同じfindfile( '自動ロード/病原体。 vim '、&rtp))...) – Enno

関連する問題