暇人じゃない

vim プラグインの管理を pathogen + submodule から vundle に変えた

現在、vim プラグインは dotfiles リポジトリの中で pathogen + submodule で管理しています。

今時の vim プラグイン管理は vundle がナウいようなので、乗り遅れた感がありますがこの機会に乗り換えることにしました。

以下手順です。

*基本的に dotfiles リポジトリのルート ~/dotfiles/ で操作しています。

使用しているプラグインをメモする

プラグインを一旦削除するので、使用しているプラグインをメモしておきます。 .gitmodules を参照すれば良いと思います。

僕の環境だと、以下のようになりました。

vim-scripts/grep.vim
vim-scripts/The-NERD-tree
vim-scripts/QuickBuf
vim-scripts/taglist.vim
Shougo/neocomplcache
tpope/vim-surround
scrooloose/nerdcommenter
kien/ctrlp.vim

.vim プラグインの submodule を削除する

submodule の定義

.gitmodules.git/config から path.vim/bundle/ になっているブロックを削除します。

[submodule ".vim/bundle/QuickBuf"]
        path = .vim/bundle/QuickBuf
        url = git://github.com/vim-scripts/QuickBuf.git

プラグイン本体

bundle 以下のプラグインを一気に削除します。不安なようであればひとつひとつ確認しながら削除してください。

% rm -rf .vim/bundle/*

.vimrc から pathogen に関する設定を削除する

.vimrc から pathogen に関する設定を削除します。僕の場合は以下のような設定をしていました。

" vim-pathogen
filetype off
filetype indent off
syntax off
call pathogen#runtime_append_all_bundles()
call pathogen#helptags()
set helpfile=$VIMRUNTIME/doc/help.txt
filetype plugin indent on
syntax on

syntax on を削除するとカラーハイライトが無効になるので、別の場所で syntax on を記述してください。 (ここで指定しているのは僕の環境だけだと思いますが…)

pathogen 本体を削除

.vim/autoload/ 以下に pathogen.vim があるので削除します。

% rm .vim/autoload/pathogen.vim

これで pathogen と submodule で管理していたプラグインの削除は完了です。 一旦 commit しておくことをお勧めします。 削除したファイルは git rm –cached で一緒に commit しておくことをお忘れなく。

次から vundle のインストールです。

.gitignore に .vim/bundle を追加

プラグインをアップデートする毎に .vim/bundle 以下がリポジトリの記録対象となってしまうので vim プラグインの管理は vundle に任せてしまって、.vim/bundle をリポジトリの管理対象から外します。

% cat .gitignore
.vim/bundle/*

vundle をインストール

以下のような構成になります。

vundle 本体: ~/.vim/vundle/ vundle でインストールするプラグイン: ~/.vim/bundle/

vundle 自体は submodule として追加します。

% git submodule add http://github.com/gmarik/vundle.git .vim/vundle

vundle の設定

.vimrc におまじないと、インストールしたいプラグインを記述します。

最初に残しておいたメモを元に、Bundle のあとに、インストールしたいプラグインを指定していきます。 vim-scripts リポジトリ(https://github.com/vim-scripts)以下にあるプラグインであれば、プラグイン名をそのまま指定すれば OK です。

特定の Github リポジトリであれば「(ユーザー名)/(リポジトリ名)」という風に指定してあげます。

" vundle
set nocompatible
filetype off

set rtp+=~/.vim/vundle/
call vundle#rc()

" github/vim-scripts
Bundle "grep.vim"
Bundle "The-NERD-tree"
Bundle "QuickBuf"
Bundle "taglist.vim"

" github
Bundle "Shougo/neocomplcache"
Bundle "tpope/vim-surround"
Bundle "scrooloose/nerdcommenter"
Bundle "kien/ctrlp.vim"

filetype plugin indent on

プラグインのインストール

vim を起動して :BundleInstall を実行します。

.vimrc で定義されたプラグインがインストールされます。 僕の環境では、Github への接続時に「HTTP request failed」エラーが出て、いくつかのプラグインのインストールに失敗しましたが、再度実行することによって正常にインストールされました。

プラグインのアップデートは BundleInstall! で行います。

詳しい使い方については、以下の記事を参照してください。

blog.shu-cream.net: 2011年のVimプラグインの管理はVundleで http://shu-cream.blogspot.com/2011/04/2011vimvundle.html

他の PC で BundleInstall するには

dotfiles リポジトリを git pull した後に、念のため .vim/bundle/ 以下を削除しておいた方が良いかも知れません。自動でアップデートされるような気もしますが…

手順としては、dotfiles ディレクトリ以下で

% git submodule init
% git submodule update

したあとに、vim を起動し BundleInstall を実行します。 .git/config に、古い submodule が定義されているので、気になるようであれば削除してください。

vundle 、とても良いですね。 割と簡単に乗り換える事ができるので、年始は vundle を試してみては如何でしょうか?僕は今日から仕事です。

今年は vim の変態度を極めて行きたいと思います。 どうぞよろしくお願いします。