やじうまの杜

テキストエディター戦争は「Vim」がまた一歩リードか、Webブラウザーで動作可能に

Chrome/Firefox/EdgeといったWebAssemblyをサポートするモダンブラウザーに対応

 “やじうまの杜”では、ニュース・レビューにこだわらない幅広い話題をお伝えします。

WASM版「Vim」

 「Emacs」と人気を二分するテキストエディター界の雄「Vim」。多くのユーザーに愛され、さまざまな環境に移植されていますが、今回、とうとうWebブラウザーへの進出を果たしたようです。

 “WebAssembly(WASM)”は、Webブラウザーで実行できるポータブル(OSやデバイスに依存しない)なバイナリ形式。ネイティブコードに近い動作速度を期待できるほか、テキスト形式のJavaScriptに比べてファイルサイズが小さくて済むといった利点を持ちます。

 今回発表されたWASM版「Vim」は、C言語で実装されている「Vim」を「Emscripten」や「Binaryen」といったツールを利用してWebAssemblyへとコンパイルしているとのこと。WebAssemblyは直接DOMにアクセスできない(Webページを描画できない)ため、描画を行うためのレイヤーはJavaScriptで実装されているそうです。また、ユーザーが行ったキー入力をバックエンドへ送信する処理も、JavaScriptが担当しています。

WASM版「Vim」の仕組み(開発者のブログより引用)

 動作はMacでしか試していないとのことですが、編集部にて試用したところ、Windowsでも一応実行できるようでした。デモページは全部で2.5MBほどで、読み込みに少し時間がかかりますが、しばらく待つと見慣れた「Vim」の画面が現れます。推奨ブラウザーはデスクトップ版の「Google Chrome」、「Firefox」、「Safari」とされていますが、「Microsoft Edge」でも起動と入力までは行えました。

「Google Chrome」、「Firefox」、「Microsoft Edge」といったWebAssemblyをサポートするモダンブラウザーで動作する

 今回は“とりあえず動いた”段階とのことですが、WebAssemblyのポテンシャルを感じさせる出来だと思います。マウスによる操作やクリップボードへのアクセス、マルチバイト文字やIMEのサポートなども計画されているとのことで、今後の開発に期待がかかりますね。