pathogenとgit-submoduleの問題
私もこの方法を使っていたのですが、git-submoduleをVimプラグインの管理に使うのはオーバースペックだと感じていました。私はプラグイン開発者ではないので、プラグインのバージョンを固定したいという欲求があるわけでもないですし、できるだけ新しい物を使いたいわけです。
そうすると、たとえば毎朝「git submodule update」とかやっちゃうともう大変です。
毎日「plugin version bump」みたいなコミットをしなきゃいけないわけですよ。
私は常に最新のプラグインを使いたいだけなのに、コミットログがどんどん汚れていきます。
また、外の環境でプラグインを管理しなきゃいけないというのが、どうにも気持ちわるかったのです。
そこでVundleですよ!
さぁ、そこでVundleですよ。( https://github.com/gmarik/vundle )Vundleは、Rails 3 でも採用されている依存性を解決するためのライブラリであるBundlerにインスパイアされたVimプラグインマネージャです。
Vundleを使えば、あなたのVimプラグイン生活が一新します。
- .vimrcの中でプラグインを一元管理できます
- Vim上でプラグインの検索ができます
- Vim上で再起動することなくプラグインのインストール、アップデートができます
Vundleのインストール
READMEだと「git clone」になっていますが、dotfilesをgitで管理しているならここだけはsubmoduleにしましょう。あとは、.vimrcの一番上に以下の2行を足せば終わりです。
set rtp+=~/.vim/vundle.git/
call vundle#rc()
使うプラグインは.vimrcに宣言
百聞は一見に如かずということで、私のvimrcをおいておきます。https://github.com/kenchan/dotfiles/blob/master/dot.vimrc
プラグインの宣言は、'Bundle'コマンドを使いますが、その引数には http://vim-scripts.org/vim/scripts.html で列挙されているプラグイン名を指定します。このプラグイン名は、後述の検索機能を使うことで、検索から記述までの手間を省くことができます。
一方で、そこに存在しないプラグインや、開発が活発なプラグイン、自分や他人がForkしたバージョンを使いたい場合のために、gitのリポジトリを指定する機能があります。(便利!)
プラグインの検索はBundleSearch
いちいちプラグインを検索するのにWebブラウザを開くのが億劫な方のために、BundleSearchというコマンドがあります。このコマンドを使うことで、分割された画面に検索結果が表示されます。しかも、その結果は「Bundle 'プラグイン名'」の形式になっているので、ヤンクしてそのまま.vimrcへ貼りつけれることができます。(便利!)なお、BundleSearchコマンドは初回実行時に vim-scripts.org からプラグインの一覧をローカルにキャッシュします。このキャッシュをクリアするにはBundleSearch!コマンドを使います。エクスクラメーションマークを付けると、キャッシュを取りなおして検索を行います。もしお目当てのプラグインがでてこなかったらキャッシュが古い可能性を疑ってください。
プラグインのインストールはBundleInstall
プラグインのインストールはBundleInstallコマンドで行います。これを実行すると、.vim/bundle以下にプラグインをダウンロードし、プラグインを読み込み直します。(Vimの再起動は不要!便利!)プラグインのアップデートはBundleInstall!
プラグインのアップデートはBundleInstall!コマンドです。これももちろん自動で読み込み直します。(便利!)プラグインのアンインストールは.vimrcから消してBundleClean
不要になったプラグインは、.vimrcから削除すればロードされなくなります。しかし、.vim/bundle以下には残ってしまうので、BundleCleanコマンドできれいにしてあげましょう。dotfilesをバージョン管理している人は.vim/bundle以下をignoreに
折角.vimrcでプラグインを一元管理し、常に最新版を使える環境ができたので、.vim/bundle以下はignoreにしておいたほうがいいでしょう。私は、pathogenから移行して一番すっきりしたのがこれだったりします。おわりに
githubのblogでvundleが紹介されたのであわてて書いた記事ですが、これでみなさんのVimライフが一層充実すれば幸いです。最後に、これを教えてくれた(そして実は先週まで使っていなかった)github watcherのursm先生に感謝します。
0 件のコメント:
コメントを投稿