Vimのプラグイン管理をpathogenからneobundleに移行してハマった話

- by konitter

前のエントリーでGitの環境をもろもろ整えたので、Vimのプラグイン管理をpathogenからneobundleに移行しようとしたろころでハマった話です。

まずは、この辺([vim] plugin の管理に neobundle.vim を使ってみる | バシャログ。)を参考にしつつ、neobundle本体と.vimrcの設定をし、プラグインをインストールするコマンドを実行。

:NeoBundleInstall

すると.vimrcに書いたプラグインをgit cloneするプログラムが走り、インストールできたプラグイン名がずらずらとコマンドラインに表示されるはずなのですが、

[neobundle/install] Installed bundles:
no new bundles installed

新しくインストールしたプラグインは無いよって出ます。でも、プラグインフォルダを見ると問題なくプラグインがインストールされていました。

色々調べてみるとneobundleのGitHubのIssueにこんなコメントがありました。

あと、neobundle#rc() はif has('vim_starting') {} の中と外、どちらに入れるのが望ましいのでしょうか。 Readmeでは中に、ヘルプでは外に書かれていますよね。ヘルプのほうが新しいと思っていますが...

外のほうが望ましいです。なぜなら、neobundle#rc()はruntimepathをリセットするためです。 if has('vim_starting')の中に書いていると、runtimepathがリセットできません。 結果、削除したNeoBundleが読み込まれたまま、ということになってしまいます。

この通り if has(‘vim_starting’) {} の外に call neobundle#rc() を書くよう.vimrcを編集してみたところ、

[neobundle/install] Installed bundles:
vimfiler
vimshell
vimproc
…

と期待通りのメッセージが出ました。ヨカッタ!