2011/11/14

Vimの管理を Bitbucket + Vundle にしときに地味にあれ?って思ったこと。


久々にブログ更新ですね。4ヶ月くらいぶりでしょうか。
今回は完全に忘備録ですが、今更ながらVimのプラグインもろもろの管理を
pathogen.vim + git submodule + Github
な管理から
Vundle + Bitbucket
に切り替えた際に地味にはまったことでもサラっとまとめておきます。
Github から Bitbucket に移行したのは単純にコスト的な問題ですが。。。
※ 基本的な導入方法は公式のGithubや、
   こちらのエントリーvim-users.jp | Hack #215: Vundle で plugin をモダンに管理するなど
   参考になるエントリーがたくさんあるので割愛します。

ちなみに、
大体Gitでこの手の管理をする場合はdotfilesを全部まとめて管理されている方が多いのでしょうが、
私の場合はひとまずvimの関連ファイルだけでリポジトリ作ってます。

Vundle本体とVundleで導入するプラグインの場所を一緒にすると管理もクソもなくなる。
これは冷静に考えればすぐわかるんでしょうが、
「プラグインは一箇所にまとめたいなあ」
という気持ちが先行したのか、vundle本体もvundleで導入するプラグインの置き場所も ~/.vim/bundle 配下にしてしまいました。
こうするとどうなるのかといえば、
:BundleClean で不要になったプラグインを消すと、一緒にVundle本体まで消えます。
最初はボケッとしてやってしまって「あれ?Vundle消えやがったwww」と焦りました。。

基本的に本体とVundleで管理するプラグインの場所を分ければどこでもいいと思いますが、
無難な場所は
Vundle本体        → ~/.vim/vundle
その他プラグイン  → ~/.vim/bundle/

とするのがいいのではないでしょうか。

Vundleで追加するプラグインまでGitで管理するとsubmoduleの挙動がおかしくなる。
これは新規に別の環境に git clone して気づいたのですが、
git clone -> git submodule update --init
とやっても、Vundleで管理しているディレクトリ配下で
「パスの下のsubmoduleの情報ないんだけど?」とエラーが出てVundle本体が取得できなくなります。

基本的に
~/.vim/bundle/ 配下の管理はVundleに任せて、
黙って.gitignoreに ~/.vim/bundle のパスを追加しておきましょう。

Cygwin環境でかつapt-cygでインストールしたcurlを使ってるとSSLエラーで動かない
レアな環境の例ですが実際になったことなので。。

これはCygwin版のcurlでSSL証明書に関するバグが過去にあったらしく、
apt-cygで導入してしまうと改修される前のcurlがインストールされてしまうみたいです。

私の環境では一度 apt-cyg remove でcurl一度削除したあとに、
setup.exeで入れなおしたところ、特にエラーは出なくなりました。


まあ今回はこんなところですかね。

Vundleに移行してみた感想としては、
一度ファイルのまとめが完了してそれをそのまま使い続けるだけだったら、
正直 Vundle も pathogen.vim + git submodule もそこまで差はないかなとは思います。
ただ、追加で「あ、これ使ってみよ」とか「これはやっぱ使わないから消すか」とかが頻繁に発生すると
やっぱりVundleの管理のほうが楽ですね。

気が向いたら vimrc とかも公開してみようかな?