Vim昔語/遭遇編

mattnさんのエントリを読んでいたら懐かしくなったので思い出話でも。

mattnさんのエントリを読んでいたら懐かしくなったので思い出話でも。

当時私は大学生で、自宅、研究室、バイト先の3箇所で開発をしていた。Visual C(Studioの前身)、ViVi、jvimなんかを使ってプログラムを書いていたと記憶している。jvimのサイトにはgvim(version 5)のバイナリがあったので試してみたが、ろくに設定もされていなかったもんだから「ああjvimで良いな」と思ったものだった。

ところがふとしたことから本家のVimのマニュアルを読み、添付されているサンプルの設定(vimrc_example, gvimrc_example)を利用したとき、私に衝撃が走る。それまで書いていたC、Perl、TeXのコードがカラフルに色づけされていた。圧倒的に読みやすい。今では珍しくないシンタックスハイライトも当時はキーワードハイライトが出始めた頃でまだ珍しかった。しかもvimでは多くの(見たこともないのが大半だった)ファイル形式について既にシンタックスハイライトが提供されていた。そこには雲泥の差があった。ただ問題が無かったわけではない。

TeXファイルに日本語が混ざるとハイライトが崩れていたのだ。原因はVimの正規表現エンジンが日本語(マルチバイト文字)に対応していなかったこと。卒論をTeXで書いていた私には致命的とも言える問題だったため、期限の迫りつつある卒論そっちのけで正規表現エンジンの改良にのめり込んだのだ。regexp.cを印刷&製本し、短くない通学時間の大半を解読と修正方法の検討に費やした。そうして正規表現エンジンのマルチバイト文字対応化は完成した。またソレ以外にも多くの修正を完成させ、普段の使い方では困らないようになっていた。

私はこの成果を誇らしく思い、共有&公開しようと考えBram氏(説明するまでもないと思うがVimの原作者である)にメールで連絡をとった。思えば明確な意図をもって英語でメールを書いたのはこのときが最初だった。ほどなくBramからの快諾を受けコンパイル済みバイナリを配布するようになった。当時の香り屋はまだ独自ドメインkaoriya.net取得前で研究室のサーバを使っての配布だった。配布にあたってのコンセプトは「ダウンロードしてすぐに無設定で便利に使える」。当時の私の技術・知識・思慮不足はあったものの、今もそこは揺らいでいない。

この時、一緒に考えていたことがある。日本独自のモノになってはいけない。成果は可能な限りOfficialに還元し、世界全体に貢献するべきである。厨二病のソレである。逆に言えば、変更を行う場合にはそれが(自分・日本人だけではなく)世界的に見てどういう意味を持ち、どうすればその有用性を理解してもらえるかを考えながら、具体的な作業に落としこむ必要がある。この作業には最終的にどういう文面でvim-devに送ればすんなり受け入れられるか考える工程も含まれる。特にこれは英語力に(今も)不安のある私にとっては重要で、議論になればまず勝てない。だったら議論の余地が無いほど、ぐぅの音もでないほど説得力のある変更内容とパッチを作れば良いのだ。この時の訓練は、仕事をするようになった今でも、相手が日本人であっても役に立っている。

そうやってvim-devで活動を重ねて拙いながらも英語でコミュニケーションすることに苦を感じなくなった頃、日本人からと思われる投稿を見つけた。そうmattnさんである。私はまたしても衝撃を受けた。彼の「とりあえずパッチできたから必要かどうかわからないけど送るわ」という姿勢にである。当時から彼のパッチのクオリティは非常に高く、しかし先進的な機能ほど本家に取り込ませる上ではお世辞にも良い戦略とはいえず、また英語に堪能というわけでもなかった。今にして思えば大阪系の積極性がなせる技だったのかもしれないが、当時の私はやや反感を覚えたほどである。でもOfficialに送るという結論と行動そして変更内容のセンスの良さには非常にシンパシーをも覚え、どちらからともなく連絡を取り、気が付けば毎日のようにチャットをする仲になっていた。

以下、続くかもしれない。

ちなみにmattnさんとは今日までオフラインでの面識がない(笑) Bramとすら会ったことがあるにも関わらず。