読者です 読者をやめる 読者になる 読者になる

vimconf でブラウザ上で Vim を使う方法を発表してきた

Vim vimconf javascript browser

f:id:rhysd:20151122222718j:plain

今年も vimconf にスタッフ兼発表者として参加してきました.名札の名前が「ドッグ」でじわじわきました…

開場

当日は準備スタッフの作業のために 8:30 に会場へ.山手線の遅延に巻き込まれて 8:45 ぐらいに到着. 電源ケーブルの配線などをやりました.

Vim on Browser

vimconf での発表は今年で3回目です.最近趣味ではウェブのフロントエンド周りや Electron を触っているので,今回は便利プラグインとかの実用的な話からそれて "Vim on Browser" というタイトルで発表してきました. ブラウザ上で「本物の」Vim を動かす話です.

内容は Vim.js の紹介と,自分がそれを使いやすくするためにつくった react-vimjs というコンポーネントの紹介およびデモでした. ライブコーディングとかするのは今回初めてなので2,3回ほど事前準備していて,無事問題なくこなせたので良かったです.今回のネタはブラウザから簡単に試せるので,良ければ是非見て動かしてみてください.

EmscriptenReact.js については時間の都合上あまり詳しく紹介できなかったので,興味がある方は本家のチュートリアルなどをご参照頂ければと思います.

Emscripten でビルドした Vim の JS コードは MB 単位なので,なかなかウェブサービスに載せるなどは難しいと思いますが,何か良いアイデアがあればちょっとした遊びサービスなどに乗っけてもらえると楽しいかもしれません.

その他の発表について

VimGitHub への移行

kaoriya さんの発表は PC トラブルにより発表資料が表示できなくなったため口頭のみでの発表でした(すごい).VimGitHub に移行したのはかなり日本人コントリビュータ達の貢献も大きかったというのを知れて良かったです.

deopelete

Shougo さんのつくっている neovim 向け補完プラグインについて.今まで neocomplete ではどうしてもブロッキングしてしまってストレスになっていた部分が解消され,UX が改善されたらしい.neovim のプラグイン機構については日本語だけでなく英語でも情報が少ないので,実装についての情報もいっぱい出してくれると嬉しいなと思いました.

サーバクライアント式の YouCompleteMe に不満があるというわけではないらしいので,どっちが良いかは結構ユーザによって変わりそう.(YouCompleteMe はソースを気軽に追加できるような仕組みになってない?)

Vim script の書き方

rbtnn さんによる Vim script の言語紹介.いくつか気持ち悪いエッジケースとかはあるものの,Vim script はそこまで書きにくくなくて嫌いじゃないです.ただ,デバッグ方法はもうちょっとなんとかしたい…

libcall の話

kamichidu さんの libcall の話.パフォーマンスの話と聞くと,if_lua 使うのと比べてどうなんだとか,文字列にシリアライズして動的リンクしたバイナリから渡してきたデータをデシリアライズするコストとか,パフォーマンス面が気になりました.

Vim + Clojure

ujihisa さんずっと MinecraftCiv 続けていてすごい… 「REPL とか要らなくて QuickRun だけで良い」というのは割とそうかもなと思いました(ただ,やはり REPL がほしい場面もあると思う).僕の場合は tmux の pane を新しく開いてそっちで repl 起動するので,Vim 向けの repl プラグインは必要としていない感じです.

海外 vimmerプラグイン紹介

deris さんが夜なべして調べたとのこと.Vim プラグインを試すのは結構たいへんなので,こういう survey 系の発表は助かる…個人的には vim-table-mode が刺さったので後で試します.

OmniSharp.vim の話

thinca さんの OmniSharp.vim の話.Vim からでもスムーズに VisualStudio ばりの補完ができていてすごい… 2000〜3000 行ほどの大きいファイルでどうかとか,Unity で使ったりとかが気になりました.メンテナになったということなので,定期的に進捗確認していきます. ロゴそろそろどうにかしたい感じだったのでその場でつくってみたりしました.

vim-gita の話

lambdalisue さんの vim-gita の話. 僕は vim-fugutive はちょっとなぁと思うところはあるものの,git add -p のために使い続けてます… 普段の git のユースケースをグラフィカルかつインタラクティブにする方向で実装されているみたいで,色々とこだわりが感じられました.1.0 になるのが楽しみ…

LT

guyon さんの Yokohama.vim の話を聞いて,そういえば Vim 関連で最初に参加したのは Yokohama.vim だったなぁと思い出しました.当時は Vim テクニックバイブルが発売した直後で,Shougo さんにサインをもらったり,席の前に座っていたのが basyura さんだったりした記憶があります. もくもく会が多い Vim の勉強会界隈では,Yokohama.vim みたいな参加型のイベントは珍しいので,毎回新鮮な気持ちで参加させていただいてます.

懇親会

今まで微妙に会う機会がありそうでなかった zchee さんと話したり,アメリカで maktaba の開発者と話してきた haya14busa さんと話したり,t9md さんと Atom の話をしたりしました.t9md さんは Atom の新しい vim-mode をつくっているらしく,色々こだわりとかを聞けました.特にオペレータを発動時にカーソルを動かすのではなく範囲を一瞬フラッシュさせてユーザにフィードバックするというのが良さそうだなと思いました. その他にも色々な方と話しましたが,まだまだウェブ上でしか知らない方がたくさんいるので時間が足りなかった感があります…

まとめ

vimconf への参加は今年が3回目で発表も3回目なので,11月は vimconf の発表準備で忙しいみたいなのがなんか板についてきている気がします‥(今回は東京Node学園祭の発表もありましたし) 今年も色々興味深い発表が聞けたり,ここでしか会わない人と会えたりしてとても楽しめました. スタッフの皆さん(特に今回の vimconf を仕切ってくれた @dictav さん)本当にありがとうございました.