これまで僕が持っていたVim本は、「Viとは」から始まりページ数の半分くらいで操作方法、最後の方にようやく「GVimとは」が現れる、あまり奥にまで入り込んでいない書籍でした。
もちろんこれらの本も僕を喜ばせる事は出来たのですが、なにぶんページの殆どが知っている情報だったので僕にとって「ワクワクする本」では無かったんです。
ずっと最新情報取り入れたVim本出ないかなと思ってました。
そんな中、小見さんから話を持ちかけて頂き、まさか自分がその著書を作るなんて思っても見なかったけど即答でOKを出させて頂きました。
僕が最初に見たViは大学の某研究室にあったSONYのNEWSというUNIX上で友達が動かしていた物。その時は変な操作方法だなぁとしか思ってませんでした。
それから就職した会社のワークステーションでViの基本操作を学び、出向先でViの師匠に出会った。他社の人ではあったけど、新人の僕にいろいろとViのあれこれを教えてくれた。あの時、emacsを教えられていたら、僕はVimを知ることは無かったのかもしれない。
それから数ヶ月後に社内で作業する様になり、Vimを知った。HP-UXやSPARCstation上で何度も何度も失敗しながらコンパイルし、読めない英語に苦戦しながら自分だけのVimをコンパイルした。最初に見たVimはとてもバギーで、何かすると直ぐに落ち、日本語も入力出来なかった。そのVimから日本語を入力する為にforkされたjvim+onewに出会い、Vimを使って仕事が出来るまでの環境は得た。
その頃はDOS上でitojunさんがhackしたVi(stevieベースだったかな)が動いていて、僕は何か資料整理する時はいつもそれを使っていた。今から思えば、GUIがあるのにコンソールで作業する癖はその頃身についてしまったのかもしれない。
その後、Vimはバージョン6まで進化した。それでもまだオリジナルから派生させたjvimバージョン5という位置付けでしか無かったVimに僕はイライラし始めていた。
なんでオリジナルはどんどん進化していってるのに、jvimは追従しないんだ。
なんで毎回パッチ当てなきゃ駄目なんだ。
僕はvim-devというメーリングリストに参加し、Vimの最新動向を追うようになった。
丁度その頃からVimにマルチバイトという概念が入り出した。「この流れに乗るしかない」そう思ったのかも知れない。
そしてそのMLで日本人の名前を見つけた時の事も鮮明に覚えている。今では当たり前の様に扱える、Vimのマルチバイト文字対応の正規表現エンジンに手を入れ初めていたのが、僕のこのブログをホストしてくれている香り屋のKoRoNさんだった。
その頃のVimはようやくWindowsのIMEで日本語が入力出来る様になっていて、エディタのフォントとIMEのフォントが別途設定する様な仕様だった。これは面倒臭いだろうと、patchを書き下手な英語でメールを書いた。
これが僕の最初のvim-devへの投稿になり、初めてマージされたpatchになった。
それからはKoRoNさんと僕とで殴りかける様な数のpatchを送り続け、マルチバイト文字をちゃんと扱えるエディタに進化して行った。
気付いたら、僕は今までに100を越えるpatchを送っていた。もちろんボツになったpatchもある。
最近話題のVimShellなんかが内部で使っているvimprocの一部原型でもあるsocket機能をVimにマージしてもらう為にpatchも書いた。ボツになったけど。
さらにコンソールのVimからCannna/SKK/POBoxを扱える様にする為のpatch、im_customというのも書いた。とにかくVimの為にいっぱいコードを書いた。
最近では昔程マルチバイトに関するバグも出なくなり、vim-devのメンバもマルチバイト文字に気を付けてくれる様になった。
そしてあの頃では考えられない程、vimscriptは進化し、ユーザにとっては単なる「スクリプト」から「アプリケーション」へと進化して行った。
あの頃の誰が「Vimスクリプトだけででカレンダーを動かす」なんて考えただろうか、あの頃の誰が「Vimスクリプトでシェルを動かす」なんて考えただろうか。
Vimスクリプトはアプリケーションを書ける言語になったんです。
そしてVimを扱う書籍もそろそろ今のVimを見つめ直すべき時が来たのだと思います。
Vimテクニックバイブル ~作業効率をカイゼンする150の技
「もう少し文字入力を楽にしたい」「バッファ操作をもっと強化したい」といった誰しもが抱く要望を、ちょっとしたテクニックやプラグインの導入で改善していく「作業効率に特化した逆引きリファレンス」
日本でも名立たる有数のVimハッカーが、あらゆる角度から150のTipsを練り上げています。
taku_o(名無しのVim使い)
yukimi
thinca(quickrun, ref.vim)
fuenor(QFixHowm, QFixGrep, JPFormat.vim, Vim-UTF8)
Shougo(neocomplcache, vimshell, vimproc, unite.vim, ...)
mattn
よくこのメンバが集まったな。そんな気もします。この本は教則本でもないし操作リファレンス本でもありません。ある意味、出版社の方達にとってはリスキーな本に成り得ます。
しかしながら「Vimを使っている方をワクワクさせたい」そんな気持ちで皆さん書いたはずです。
9月中旬に発売予定です。ぜひお手に取ってワクワクしてみて下さい。
そして、Vimスクリプトでアプリケーションを書ける人が一人でも多くなれば、今度は執筆した僕達がワクワクする事になるのだと信じています。
最後に、vim-users.jpやlingrでvimを盛り上げてくれているtyruさんやujihisaさん、他数名に感謝したいと思います。