2013/08/29

「実践Vim」レビュー

先日、kaoriyaさんから抽選で実践Vimを頂けるという企画に応募したところ
抽選して、一足先に実践Vimを手に入れました!
http://www.kaoriya.net/blog/2013/08/24/

その条件としてレビューを書くことになっていますので、読んでみた感想を簡単に書いていきます。
慣れていないので拙いところはご勘弁下さい。

さて、きっとこの記事を読んでいるあなたはもう既にVimがなんなのか程度は知っていることでしょう。

結論から言います。

買いましょう。

とても良い本だと思います。
TIP集となっていて、目次からばーっと見て探しやすく、Vimの操作はコマンドとカーソルの動きが表形式で表されており見やすいですし、その表のおかげで試し易いです。
背面に[初級技術者向け]と書いてありますが、ある程度「Vimゥ…Vimゥ…」と言い始めた人なら手元に置いて損はしない本です。

正直に言って、私は「まあ、初心者Vimmerでは無いだろ、Vim力も575あるし」と思っていました。

ですが、読み始めて、初心者用の解説部分にさり気ないところへ手がとどくコマンドも併記していて「アッ」となることが多々ありました。
例えばビジュアルモード時のoコマンドがそうです。これは選択範囲の終点と始点をトグルしてくれます。
恥ずかしながらこれを読むまで知りませんでした。

本書は、全体的に如何にエディットするか?といったことに重点をおいているようです。
だからでしょうか、最初に「ドットの公式」といってドットコマンドについて述べています。
「Vimってこんな機能でこんなことができるんですよー」というスタイルではなく、
「Vimmerっていうのはな、こういう時はこうするのがクールなんだぜ」という印象です。
まさに、実践的なVimの書というわけです。

個人的には第3部第8章「モーションによるファイル内の移動」がお気に入りです。
w,b,e,ge などの基本から自動マークまで書いてあります。
特に「Vimの強力な移動手段は致死レベルの正確性で目標に到達する」というテキストオブジェクト部分が面白いです(ニンジャの絵もありますからね)。
約7ページですがテキストオブジェクトについてきちんとわかりやすく、図が付いて、説明されています。

また、Vim本体について のみだと思って 読んでいたら、コラム的にPluginの紹介もいくつか挟んでありました。
ある機能について解説をした後に更に便利にしたいならこのPluginがオススメ、と言った感じでKanaさんやTim PopeさんのPluginが簡単な使い方とともに紹介されています。
しかも、一度使い始めたらやめられない中毒性の高いpluginばかりです。

以上のこと以外にも基本機能のかなり細かい解説がされていて、すんなりと読んで行けます。
初級中級者の方は一読するだけどもワンランク上のVimmerに近づけること間違いなしでしょう。

ぜひ、お近くの書店へ駆け込んで下さい。

2013/08/20

vim-airline に乗り換える5つの理由

この記事は Vim Advent Calendar 2012 の 263 日目の記事です。

今回はつい先日
かなり素晴らしいPluginがリリースされて、大分人気になっているようでしたので紹介します。


vim-airlineってなに?

https://github.com/bling/vim-airline より引用

https://github.com/bling/vim-airline/wiki/Screenshots よりいくつか引用
dark theme with powerline symbols
light theme
solarized light
上の画像を見ればお分かりでしょう。
Vimのステータスラインをかっこ良くしてくれるPluginです。

以前までは、ステータスラインのカスタマイズといえばset statuslineをいじる、powerline(新版), vim-powerline(旧版) くらいの選択肢でした。

airlineはここに新たな選択肢を加えてくれました。


1. Vim script のみで実装

    新しいバージョンのpowerlineではvim以外のzshなどに適用させるためかpythonが必須となり、重くなってしまいました。
対して、airlineは高速です。
※powerlineがpythonを使う利点はしっかりとあります。


2. 他のpluginに対応
    現在、airlineは bufferlinefugitiveunitectrlpminibufexpl,gundo,undotreenerdtreetagbarsyntastic,lawrencium の Pluginに対応しています。
これらがstatuslineに表示する情報を上書きしません。
また、ここで自分のpluginに対応させたいときも簡単に設定出来るようです。
詳細は:help airline-funcrefs を参照下さい。

2013/08/21 追記
例えばuniteやvimfilerでairlineを優先するときは.vimrcに以下を追記します
let g:unite_force_overwrite_statusline = 0
let g:vimfiler_force_overwrite_statusline = 0
上記以外にも着々と対応pluginが増えているようでとてもよいですね


3. 他のカラースキームに合わせたテーマ
    有名なカラースキームに合わせたテーマを幾つか持っています。
上記の画像にもsolarizedを載せました、solarizedなVimによく合うのではないでしょうか。 
他にもmolokai, jellybeansも含まれます。また、独自のテーマも含むと14種類あります。


4. 手軽なstatusline
    この部分をこういう表示に変えたいなーという時があるはずです。
airlineでは statuslineはいくつかのセクションに分かれており、g:airline_section_HOGE といういくつかの変数で、めんどくさいstatuslineの設定をてっとり早く行います。
また、セクションに分かれているので、ここだけ変えたい!というときも簡単です。
詳しくは:help airline-customization へ


5. 引き継げるフォント
    今までpowerlineを使っていたVimmerも多いはずです。
しかし、せっかくpowerlineのパッチを当てたフォントがあります。しかも、かっこいいです。
airline ならそのまま使い続けることができます。もちろん、変更も簡単です。
:help airline-customization



では、今すぐairlineをインストールしましょう。
NeoBundle 'bling/vim-airline'