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

VimConf 2014 に参加(&発表)してきた

Vim

f:id:rhysd:20141109021904j:plain

VimConf 2014 に参加してきた.忘れないうちに各発表の感想書いとこうと思う.

発表スライドはこちらに随時まとめられていくらしい.

Identity of the Vim (@kaoriyaさん)

香り屋さんの基調講演的なポジションのエモい発表だった. Vim を発展させていく動きには Vim らしいところ(行指向の編集とか)を伸ばしていく方向と Vim らしくないところ(グラフィカルなプラグインとか)を開拓していく動きがあって,その通りだなぁと思いながら聴いていた.(どことなく遺伝的アルゴリズム的だなぁと思った).Vim は Bram の独裁制で,Bram が編集に必要な機能以外を取り込もうとしないので,前者は Vim 本体を発展させているけれど,後者はプラグインで頑張っているという感じかなぁと思った.僕的には Vim らしさというとモーダルな操作体系とかテキストオブジェクトとオペレータとかその辺りを挙げるけれど,(日本に関しては)持続的に発展できている活発な Vim コミュニティもそれに含まれるというのは言われてみるとその通りだなぁと感じた.

後半の Vim は色々なことに共通して使えるというところで,僕は Java なら EclipseRuby なら RubyMine みたいな個々の用途ごとに IDE を使い分けてそれぞれの使い方を覚えるのが面倒で,(Vim の操作体系が自分に合っていたということもあって)Vim を使っていたのでかなり納得できた.ある開発のために改善した機能や設定がまったく別の開発で生きてくるというのは Vim の大きな強みだなぁと思った.

PM2 (@ujmさん)

ujihisa さんの ProcessManager 2 (仮称)の発表.vital.vim のモジュールの1つで現在開発中らしい(そういえば正式名称決まったんだろか). 最終目標は,Vimプラグインを好きな言語で書くと PM2 が Vim とそれの間を取り持って良い感じにしてくれるというものらしく,neovim もそういう思想だなぁと思いながら聴いていた. あと civ5 の紹介もあったので,そのうち Vim からプレイできるようになるんだと思う.

f (自分)

Vimfマッピングとその拡張プラグイン群について発表した.

f マッピングは横方向の移動としてかなりよくできていると思っていて,慣れればカーソル移動がかなり楽になると思っているけれど,あまり使われていないので前々から発表したいと思っていた. あまり使われない理由としては,f とか ; とか , が押しやすいキーなので上書きしたくなるのと,w 連打とかでもそれなりにカーソルが動けてしまうからなんだと思う.

f マッピング拡張系のプラグインではそのあたりを頑張っているものもあるので,それを知ってもらう目的もあったけれど,相変わらず発表が思った感じにできず,便利さがあまり伝わらなかったなぁという悔しさがあった. ただ,これは場数踏む必要があると思っていて,勉強会の発表とかだと失敗しても何かあるわけでもないので,めげずに色々発表していきたい.

Hey, Java! Vim is coming. (@kamichiduさん)

VimJava を書くための tips やプラグインの紹介だった. JavaEclipse という王道があって,それには機能的に Vim では勝てないと分かっていながらも改善し続けるのはすごいなぁと思った. Eclipse の機能も clang のようにモジュール化されて外から使えるようになっていると良いのになぁ.

auto closing parenthesis (@c0hamaさん)

cohama さん作のプラグインlexima.vim の紹介. 文字入力時に,事前に設定されたルールに従って入力を補ったりしてくれる.vim-smartinput で不満に感じた箇所を色々改善しており,僕も同じ箇所で困っていたことがあったのでありがたく試してみようと思う. あと,メカニズムの紹介があったのが良かった.僕はプラグインの浅い紹介とかをやりがちだけれど,もっと1つのプラグインを深く紹介する発表もやりたいなぁと思った.

ちなみに,lexical imap の略らしい.正しい読み方は deris さんに聞くと教えてくれるらしい.

怖くないマクロ入門(@deris0126さん)

Vim のマクロは僕はあまりうまく使いこなせていなくて,今回の資料は参考になった(特にマクロでよく出てくるマッピング一覧とか). マクロ,色々考えて頑張って組んだのに微妙に間違っていてうまくいかない時のダメージが結構大きくて,どうも苦手意識がある.

ちなみに,deris さんは懇親会の手配とか会計とか頑張りつつ発表資料もつくっていてすごかった.

Test for Vim script(@thincaさん)

マンボウによる Vim のテスティングフレームワークプラグイン themis.vim の発表. 発表スライドを5分ほどで終えてしまったときはどうするんだろうと思ったけれど,さすがライブコーディングに慣れているだけあって,その後のデモで有効に使っていた.テスティングフレームワークの紹介ということもあって,デモでよくある名前ミスとかが全部テストの結果に現れてそれがちゃんと themis の機能紹介になっているので若干ズルい感じだった.会場からは「ベンリィ…」「ベンリ〜」「ベンリだ」という歓声が絶えなかった気がする(Vim 界隈ではよくある)

vital.vim は今テストを themis.vim へ移行しているので,とりあえず themis.vim のテスト書いてみたいという人はコントリビューションもできて良いと思う.

Let's talk about neovim(@ShougoMatsuさん)

Shougo さんの NeoVim についての発表.NeoVim,今までの fork に比べてかなり勢いがあり,支持もされているんだけれど,それでも人手が足りないらしい.OSS の fork は fork 元のコードから分岐しているので,fork 元のメンテナンス力や開発力に加えて fork として発展させていくためにより人手が要るというのは,(upstream で作られるパッチがあるのでその取り込みで一部済むにしても)その通りだなぁと思う.NeoVim は何かコントリビュートしたいと思いつつ,News Letter とかを読んで話題に追いつくのに精一杯の状況になってしまっている… neocomplete や neocomplcache の作者である Shougo さんは Lua 製の非同期に動作する補完機構をつくりたいらしく,楽しみ.一応 neovim にはすでに autocmd を拡張した Job API を持っているのでそれを使うとどうかなーと思ったけれど,それだと外部プロセス立ち上げてやりとりしないといけないので柔軟性に欠けるらしい.

かなりすごい発表(かなり)(@supermomongaさん)

モモンガさんのすごい発表.便利な図があり便利だった.shaberu.vim,僕も良い使い方を探してみたいと思う.ただ,音楽聞いているときは使いたくないのがつらいところだなぁと思った. ちなみに,発表中に何回「便利」と言ったかをカウントしようとして忘れていたのがつらい.

XVim with MacVim and smartgrep(@pebble8888さん)

XCodeVim ライクな操作を実現する XCode プラグイン XVim の紹介. これ系の話だと Emacs の Evil が一番出来が良いと思っているけれど,XVim も継続的に開発されていて頑張っているらしい. 最近話題の Swift とかは XCode 本来の機能も使える XVim も良さそうだなぁと思った.

/-improved(@haya14busaさん)

ハヤブサさんの検索機能についての発表.検索はモーションでも使えるというのは便利なんだけれどあまりちゃんと使えていなかった(たとえば,カーソル位置から特定の場所まで削除したいとき,d/{pattern} とか). // で前回の検索がそのまま使われるというのはよく使うけれど,そこで検索フラグ付け直すのは考えたことがなかった.便利.

後半はハヤブサさんの力作 incsearch.vim の紹介で,すごさがよく伝わってきた.incsearch.vimVimコマンドラインをシミュレートして,デフォルトの Vim の検索の操作感を変えずに色々な機能を追加している.このデフォルトの Vim の操作感を変えないようにするところにかなりの労力を費やしていて再現率がすごい.この手の拡張は Vim 本体のほうを改良すべきという意見もあるけれど,万人が検索を強化したいと思っているかというとそうでもないと思うので,プラグインで実現するのも良いなぁと思う.

Vim script 初心者に使ってもらいたい、転ばぬ先の杖「Vint」(@orga_chemさん)Jenkins + vimenv で 最新のVimを使おう!(@raa0121さん) は残念ながら買い出しに行っていて見ることができなかったので,後で資料などを見ようと思う.

懇親会

懇親会は立食でピザと寿司だった.せっかく立食なのだからもっと色々動きまわっても良かったかなぁと思いつつ,色々な人とそれなりに話せて良かった. 名札のアイコンがとても役立って助かった. なお,deris さんが Vim 本体をいじって . リピートを改良するらしい(. レジスタをユーザが変更可能にする)ので,注目せざるを得ない.

まとめ

最近は勉強会参加記事をあまり書けていなかったけれど,(ujihisa さん的に言うと)感極まってきたので頑張って書きました. まとめ役の thinca さん始め,積極的にボランティアとして動いてくれたスタッフの方々と場所を提供してくれた mixi の方々ありがとうございました. 来年も是非やっていきたい.