最近いろいろあって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しようとしてもクローンしてきたプラグインがあるので「インストール済だよ!」と言われます。クローンしてきたプラグインは何か使えないみたいですね。