Hatena::ブログ(Diary)

=== SANDmark 19106 === beginning stress test このページをアンテナに追加 RSSフィード

2012年04月04日

10分でできる: Emacs使いにすすめるリッチなVIM環境構築(Case Study of @naoty_k)

本気出してコーディングするときはEmacs、ちょっとした設定ファイルを変更するのはVi
そんなスタイルで開発している方はいませんか?
そう、私です。^o^

例えばRailsしてるとき、コントローラやビューはEmacsで書くけど、
migrationはViで編集する
なんてことはしょっちゅうです。
他にも /etc にある各種ファイルを sudo vi で端末で作業できるのは魅力的。

だからいつも sudo apt-get install vim とするだけで
.vimrc? なにそれ? という状態で何も設定せず
Ubuntuデフォルトのまま作業していたのですが、やはり困ることがあります。

いや、困るというよりは「やりにくい」が正しい表現なんですが、
今回Twitter上で @naoty_k さんからさまざまなアドバイスをいただきました。
その設定をしたあとのViの快適さといったらありません。
透過的にサポートしてくれる機能満載なので、細かい設定や使い方は一切無し。*1

  • 追記:
    • コメント欄にて @naoty_k さんご本人が、一歩進んだ使い方を紹介してくれています。是非ご参照あれ。

さてそれでは、10分でVIMをバリバリチューニングしてみましょう。

vundle

VIMには vundle という、Rails3で言うところの bundler があります。
詳細については上記参考URLを見ていただくとして、まとめとして今回やったことをメモ。

シェル:

$ mkdir -p ~/.vim/bundle/  # 各種プラグイン用
$ git clone http://github.com/gmarik/vundle.git ~/.vim/bundle/vundle  # vundle をインストール

colorscheme railscasts

@naoty_k さんはVIMのカラーテーマに railscasts を採用なさっているそうです。
これでVIMがよりカラフルになると、多分そういうわけです。

上記URL(の下のほうのリンク)から railscasts.vim をダウンロードして、
~/.vim/colors/ ディレクトリに放り込みます。

$ mkdir -p ~/.vim/colors/
$ mv railscasts.vim ~/.vim/colors/

しかしこのままでは後述の.vimrcでは使えないので、
Ubuntuを使っている場合は以下のようにします。*2

$ sudo apt-get install ncurses-term

.vimrc

@naoty_k さんは github に普段使っている dot ファイルを公開されているので、
まずはそこから .vimrcパクって持ってきます。
中身は……Emacs使いの僕には何が何やらですが、凄そうです。

前述の railscasts を使うために、Ubuntu用の設定ちょっとだけ書き加えます。*3
.vimrc(7行目付近):

" ↓コメントアウト
" colorscheme railscasts

" for gnome-terminal on Ubuntu
if $COLORTERM == 'gnome-terminal'
  set term=gnome-256color
  colorscheme railscasts
else
  colorscheme default
endif

.vimrc のコメントは行頭に " (ダブルクォート)を置きます。

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

ここまでの状態で vim を起動しても、まだ完璧ではありません。
vundle によるプラグインのインストールが終わっていないからです。
VIMを起動して、 :BundleInstall と入力してEnter。

すると .vimrc に記述されているプラグインが続々とインストールされていき、
"Done" と表示されたら正常にインストールされた証拠です。

完了!

これで全ての準備が整いました。
適当にファイルを編集してみるとすぐにわかるのはコードの自動補完ですね。
ちょうどEmacsで言うところの auto-complete のような感覚で使うことができます。

また、行番号が表示されていたり、行末に余計なスペースがあると表示してくれたり
自動でインデントしてくれたり、他にも他にも、まだ僕が触っていない便利な機能があることでしょう。
これまでとはまったく違う、何ともリッチなVIMが出来上がってしまいました。*4

これで思う存分VIMで快適なコーディングをすることが出来そうです。
@naoty_k さんどうもありがとうございました!

おまけ

プラグインのアップデート

VIMを起動した状態で :BundleInstall! を実行すると、
既存のプラグインを自動でアップデートしてくれるらしいです。
これは vundle の機能なので、詳しくはそちらを。

もしかしたら関係あるかも知れない「ハイライトが機能しない」問題

環境変数 $VIM と $VIMRUNTIME が関連しているかも?
VIMには膨大な数の syntax ファイルが用意されていますが、
これを探すのに $VIM もしくは $VIMRUNTIME のパスを探しに行くみたいです。

Ubuntuの場合は /usr/share/vim/vimcurrent というシンボリックリンクがそれなので、
.bashrc や .zshrc に

export VIM=/usr/share/vim/vimcurrent
export VIMRUNTIME=$VIM

と書いておくと、ある種のおまじないになるかも知れません。
このあたりは.vimrcというよりVIMそのものの仕様になってくるので
今回のエントリではあまり触れないようにしておきます。

*1:実を言うとまだプラグインについて完全に調査していないので、より便利な使い方はもちろんあります。ただ今回はあくまでも『まとめ』なので、それについては省略させてください。

*2:railscasts.vimのコメントから。

*3:これにより、gnome-terminalの提供する256色がVIM上で使用可能になる ハズ です。

*4:@naoty_kさんはガチVIM使いなので当然といえば当然ですけども。