黒縁眼鏡は海を飛ぶ

IT中心にそこはかとなく

.vimrcとかgithubで管理したかったけどつまづいてたことにやっと気づいた話

.vimはaddじゃだめなのよ

前の記事でドヤ顔しながら書いていたわけですが、別環境でcloneしたものだと全くvimが動いてくれなかったので解決メモ。

neobundleでプラグインを管理している場合

githubで管理しようとしていたのは以下のものたち
・.vim
 ・bundle
・.vimrc
・.gvimrc

で、この子達をgit addとかgit commitとかドヤ顔でやっていたのですが、プラグイン関連はこれじゃだめっぽいと。

プラグインの管理についての方針と方法

vimプラグインは神がかっているneobundleで行うため、他の環境にまるっとコピーする必要はありません。
必要なのは管理している親玉(neobundle)だけということで、ローカルリポジトリで以下。

#neobundle以外のプラグインは無視してね
$ vim .gitignore
...
/.vim/bundle/

$ git add .gitignore
$ git commit -m "ignore_list"
$ git push origin master

からの

$ git submodule add https://github.com/Shougo/neobundle.vim .vim/bundle/neobundle.vim
$ git commit -m 'add_neobundle'
$ git push origin master

このgit submodeuleというのが必要で、外部のリポジトリを自身のリポジトリのサブディレクトリ的に登録する、みたいな意味合いだそうです。
実行後にローカルでls -laとか叩くと、.gitmodulesができていることがわかります。

別環境にcloneする

別環境では、まずは任意のディレクトリにcloneします。
ローカルにリポジトリを持ってこられたことを確認し、ディレクトリに移動してから以下。

$ git submodule init
$ git submodule update

これでneobundleが持ってこられるので、:NeoBundleInstallなりしてあげましょう。 *1

残困った

vimshellを導入した時に、makeを手動で実行したため、現状の.vimrcでは別環境にコピるたびにmakeしないといけない状態です。
.vimrcに環境によって〜的な書き方があったはずなので、修正したいなあと思います。

*1:ここまでで大いなる勘違いをしている場合はご指摘いただけると嬉しいです。