ゆず日記

戦う Vimmer 兼 Dvorakユーザ 兼 Kinesisユーザ 兼 おぺらー が戦わないブログ

ボクが1年間で学んだVimのまとめ

Vimを使って早1年位経ちました。
気がついたら家でも当たり前にVimを使うようになり、設定も少し変わってきたので再度メモ。
今回はVimの環境周りの話中心です。

やっぱりVimかわいいよVim


インストール、基本操作、vimrcの設定、プラグイン

前回のエントリ参照: ボクが2ヶ月間で学んだVimのまとめ - ゆず日記
ここについては追加して特筆する内容はあまりないです。


プラグイン管理

NeoBundle.vimで全部管理するようにしました。
Vim-users.jp - Hack #238: neobundle.vim で plugin をモダンに管理する
プラグインを一元管理してくれるプラグインです。


.vimディレクトリ内にneobundle.vimを展開後、.vimrcに以下を記述。

filetype off
if has('vim_starting')
  set rtp+=~/.vim/neobundle
  call neobundle#rc(expand('~/.vim/neobundle'))
endif
NeoBundle 'git://github.com/Shougo/neocomplcache.git'
NeoBundle 'git://github.com/Shougo/neobundle.vim.git'
NeoBundle 'git://github.com/Shougo/unite.vim.git'
NeoBundle 'The-NERD-Commenter'
filetype plugin on
filetype indent on

githubやvim-scriptsのリポジトリの他、httpやhttpsなど殆ど指定可能です。



以下のコマンドでインストール

:NeoBundleInstall

アップデート・上書きインストール

:NeoBundleInstall!

プラグインを削除したい場合には、.vimrcから該当プラグインのNeoBundle 〜を削除後、以下のコマンドを実行します。

:!NeoBundleClean

Vim設定ファイル分割

Vimの基本設定とプラグイン設定を分けて記述しています。
プラグイン設定を別に記述しておくことで、読み込みの有無を簡単に切り替えることが出来ます。

if filereadable(expand('~/.vimrc.plugin'))
  source ~/.vimrc.plugin
endif

ここでは「~/.vimrc.pluginファイルがある場合、~/.vimrc.pluginファイルをソースとして読み込む」を行っています。
Vim Scriptでもif文は利用可能なので、正確にやりたいのであればバージョンやOS,GUI/CUIで分岐するといいと思います。


Vim設定ファイル管理

最近はシンボリックリンクと併用し、githubで一括管理しています。
こうすることでgit cloneしてシンボリックリンクを貼るだけで簡単に各環境で同じ設定ファイルが運用できるようになります。


シンボリックリンクDropboxでも同様のことは可能ですが、Dropbox単体ではバージョン管理されないしDropbox上でgit管理すると.gitディレクトリ以下も同期対象になるという非常に微妙な管理方法になるのでgithub管理の方がいいです。



まず、各種vim設定ファイルをdotfilesというディレクトリへ移します。

mkdir ~/dotfiles
mv ~/.vim* ~/dotfiles/
mv ~/.gvimrc ~/dotfiles/

次にシンボリックリンクを貼ります。

ln -s ~/dotfiles/.vim ~/.vim
ln -s ~/dotfiles/.vimrc ~/.vimrc
ln -s ~/dotfiles/.vimrc.plugin ~/.vimrc.plugin
ln -s ~/dotfiles/.gvimrc ~/.gvimrc

llしてみた。
シンボリックリンクで元パスがリンク付けされているのが分かりますね。
f:id:Yuzuemon:20111122235621p:image




お次はgithubのリポジトリ作成(githubの設定ができていることが前提です)。
https://github.com/repositories/newから、dotfilesという名前でリポジトリを作成します。


dotfilesディレクトリをgitリポジトリとして初期化・コミット・プッシュします。

cd ./dotfiles
git init
git add .
git commit -m "first commit"
git push -u git@github.com:<ユーザ名>/dotfiles.git master

エラー無くプッシュできればこんな感じにdotfilesリポジトリが作成できます。
yuzuemon/dotfiles · GitHub
f:id:Yuzuemon:20111122235620p:image



別のPCからは、git cloneで取得してシンボリックリンクを貼ればOKです。

# 別のPC
git clone git@github.com:<ユーザ名>/dotfiles.git
ln -s ~/dotfiles/.vim ~/.vim
ln -s ~/dotfiles/.vimrc ~/.vimrc
ln -s ~/dotfiles/.vimrc.plugin ~/.vimrc.plugin
ln -s ~/dotfiles/.gvimrc ~/.gvimrc

設定ファイルを編集したら、リポジトリにpushしましょう。

git push

人によってはbashやscreenの設定ファイルもリポジトリにあげている人が居ると思います。
ボクも.zshrcや.tmux.confも一緒にリポジトリにしています。


まとめ

Vimに限らない話ですが、ガリガリにカスタマイズされた設定を如何に複数台のPCで楽に共有するかは大事。
他の人のdotfilesを見てみるのもいい勉強になると思います。
次はVim Script辺りを纏めてみようかな・・・。