この記事を読むのに必要な時間：およそ 10 分

VimConfは， テキストエディタVimのユーザーと開発者のための国際カンファレンスです。2018年11月24日に東京 秋葉原でその6回目となるVimConf 2018が開催されました。

今回の目玉は， Vimの作者Bram Moolenaarさんの登壇です。運営の方によると， Bramさんの招致はずっと夢だったようで， 何ヵ月もの交渉を経て講演が決まった際は嬉しかったそうです。

本レポートは， LTを除くセッションの内容を中心にお送りします。

オープニング

キーノート 『What is the next feature? - Who makes next feature of Vim』 ― mattn

mattnさんは， 日本のVimコミュニティ vim-jp のキャプテンとして活動を続けられている方です。書籍 『Vimテクニックバイブル』 や 『Vim scriptテクニックバイブル』 の執筆に携わり， 雑誌 『Software Design』 では2015年から 「Vimの細道」 というコーナーを連載されています。

vim-jpを始めたきっかけ

講演は， コミュニティ活動を始めたきっかけから始まります。

まだVimのコミュニティがなかった頃， 個人が各々でViやVimの派生版を作り始めていました。その様子を見ていたmattnさんと （ 「香り屋」 でWindowsやmacOS向けのVimを配布されている） KoRoNさんは 「なぜVim本体にパッチを送らないのか， 改善したいなら本体にパッチをなげるべきではないか」 と思っていました。

日本人でパッチを送っている方はいましたが， パッチ作成者同士でコミュニケーションを取っていなかったため， どんな問題が起きたのか， 何を直すべきか， いま誰が修正パッチを作っているのかといった情報がみんなわかっていませんでした。各個人で良い活動をしていても， 情報の共有がないために別々の人が同じことをしてしまっているということがしばしば起きていたそうです。

このような問題を解決すべく， 2011年にKoRoNさんと共に日本のVimユーザグループvim-jpを立ち上げました。vim-jpの主な目的は， バグ報告やパッチ， コミュニティのイベントなどの情報を1ヵ所に集約することだそうです。

mattnさんのセッションの模様

vim-jpの活動

vim-jpは， 今ではOSSユーザーグループのモデルケースとされるまでになりました。その理由として， 英語に不慣れな日本のユーザーに代わって， バグ報告やパッチのコードレビュー， 日本語ドキュメントの充実化といった活動を行ってきたことを挙げられていました。

日本のユーザーはバグ報告を英語でうまく書けないことから報告を諦めてしまうそうです。そこで， vim-jpは日本語でバグ報告を受け付け， 英語に翻訳して， 再現性を確認した上で， 報告者に代わって本家Vimに報告する活動をしています。また， 受け取ったバグ報告の原因を調査し， パッチを送る活動も行っているとのことです。

Vimには， 操作や設定のマニュアルとして help ファイルが添付されていますが， 多くの日本人にとって英語を読むのは大変です。vim-jpでは， help ファイルの日本語訳を公開しています。コードが書けなくても， Vimに貢献したいということで， 翻訳を中心に活動されている方もいるそうで， 翻訳でも貢献を受け付けていると話していました。

また， vim-jpでは新機能の追加を行っています。これまでに， ラムダ式の追加， 非同期的に外部のプログラムを実行できるジョブ/チャンネル機能の改善， 色付き絵文字のサポート， インクリメンタルサーチ， Windows上でのターミナル機能のサポートなどの実装を行ってきたそうです。

このような活動を行ってきていることからもわかるように， vim-jpはユーザーグループではなく， 実際は開発者グループであるとmattnさんは述べました。

次に来る機能は何か

タイトルの 「次に来る機能は何か」 という問いに対しては， 「⁠何が来るかはわからない。しかし， 私たちはコードを書いてパッチを送ることができる。」 と答えられており， 端末内で画像を表示できるDRCS Sixelのサポート， VimでソケットをLISTENできる ch_ listen() の追加， バイナリデータを扱いやすくするBLOB型の提案がありました。これらの機能は実際に実装され， ch_ listen() と BLOB型を用いたVim上で動作するWebサーバとTODO管理ができるWebアプリケーションの実演がありました。

「Vimはテキストエディタであって， このような機能はテキストの編集には必要ありません。しかし， Vimにterminal機能が入るのを誰も予想しなかったように， どんな機能が入るのかは誰も予想できません。もしかすると， これらの機能も導入されるかもしれません。」 と， 締めくくりました。

最後に， コードが書ける人はvim-devメーリングリストにパッチを送ってほしい， 英語がうまく書けない人はvim-jpに送ってほしい， と開発者への開発への参加を呼びかけました。

vim-jpのサイトには， Vimの日本語による情報がまとまっており， 翻訳や情報の充実化といった活動には， 私も助けられることが多かったです。講演を聞いていると， こういった活動はvimが本当に好きな人が集まっているからできているのだろうなと感じました。

提案された機能は， 以前は想像できないようなものでしたが， terminalの導入は転換点となったように思います。私も講演を聞きながら， BLOB型を使えばシンプルにバイナリエディタ用のプラグインが実現できるのではないか， Sixelを使えばGUIのバイナリエディタのようにバイナリデータをビットマップ化して表示できるのではないか， と想像を膨らましていました。