たにしきんぐダム

プログラミングやったりゲームしてます

vimプラグインをneobundleで管理してdotfilesをgithubで管理した

最近いろいろあってvimを使い始めた。
自宅のPCとかバイト先のPCで.vimrcとかプラグインを共有したいなあと思っていたのですが、.vimrc とか.bashrcの様なファイルをdotfilesとしてまとめて、 GitHubで管理すると良いみたいです。
Vimプラグイン管理にはneobundleを使うと良いみたい。

こちらの記事が詳しいです。dotfilesをGitHubで管理,vimプラグインをNeoBundleで管理する方法メモ - Programming Log

Git - Vim入門記 - Qiita


無事設定が済みdotfilesをgithubにpushしまして、バイト先のPCからcloneして使おうと思ったときに上手くいきませんでした。
まずはdotfilesをcloneして利用するときの手順を述べます。

別の環境でdotfilesをcloneして利用する時の方法

まずはgithubからdotfilesをcloneします。

cd ~/
git clone https://github.com/youraccount/dotfiles.git

サブモジュールを含んだプロジェクトをcloneするとサブモジュールを含むディレクトリは取得できますがその中にはまだ何もファイルが入っていません。.vim/bundle/neobundle.vim/ 以下が空っぽです。
以下のコマンドでneobundle.vimを有効にします。

git submodule init
git submodule update

最後にシンボリックリンクを張ります。

cd ~/
ln -sf dotfiles/.zshrc .zshrc
ln -sf dotfiles/.vimrc .vimrc
ln -sf dotfiles/.vim .vim

など、他に管理したドットファイルがあったら適宜追加する感じです。

これらの作業が完了したら.vimrcなり何なりをvimで開いて

:NeoBundleInstall

プラグインをインストールします。これでgithubにあったdotfilesを利用できます。

どこで詰んだか

No submodule mapping found in .gitmodules for path '.vim/bundle/plugin_name'

git submodule initしようとするとこれが出た。
git rm --cached .vim/bundle/plugin_name
で各プラグインをgit管理から外してやればgit submodule init できますが、これでは次は以下のエラーに遭遇しました。

You may have used the wrong bundle name, or all of the bundles are already installed.

上記のエラーを解決したは良いのですが
:NeoBundleInstall
をしようとすると、このようなことを言われるますが、プラグインはインストールされてないっぽい。

原因

.gitignoreを書き忘れていました。以下のように記述してやる。

.vim/bundle/*
!.vim/bundle/neobundle.vim

neobundleによってインストールされたプラグインは.vim/bundle/ 以下に納められるのですが、それらのプラグインgithub管理してしまうと、クローンした先でNeoBundleInstallしようとしてもクローンしてきたプラグインがあるので「インストール済だよ!」と言われます。クローンしてきたプラグインは何か使えないみたいですね。

    • -