反省はしても後悔はしない

Vim とか備忘録とか。それと関数型言語勉強中

VimConf 2014 に行ってきたよ

11/8 に mixi さんにて開催された VimConf2014 に発表者として参加してきました。

スライドなどは以下にまとめらています。

Reports - VimConf 2014

以下雑感など。

Identity of the Vim (@Kaoriya)

これはとても共感できる内容でした。 Vim の強みとは、というところでいろいろな機能が挙げられていたけど、やはり僕も vim-jp の存在が一番大きいのではと思います。 あと、Vim 使うならいろいろやろうというのも完全に同意でした。 「達人プログラマー」という本では「毎年少なくとも一つの言語を学習する」ことを勧めています。 どんどん新しい言語にチャレンジするのにいちいち開発環境の使い方まで覚えないとしたら非効率ですが、Vim さえ覚えていればその問題はなくなります。 せっかく Vim を使っているのだし、どんどん新しいことにチャレンジしていきたいですね。

PM2 (@ujihisa)

PM2 という vital モジュールに関する説明でした。 外部のプロセスと非同期、並行に通信するためのものらしいです。 PM1 との違いは主にプラグインから PM を呼ぶときのインターフェースなのかなという理解 (違ってたらすみません)。 ujihisa さんは新しい言語がでたとき、それに付随するツールをエディタ問わず利用できるようにしたい、という大きな野望を抱いているようでした。 とりあえず今ある REPL (e.g. Haskell の ghci とか) と連携するようなプラグインとかが簡単に書けそうで便利そうと思いました。

f (@Linda_pp)

f マッピングについて。 Vim 標準の f の説明と、 shot_f とか improvedft とか clever-f とかいろいろな f 拡張プラグインの紹介でした。 f 自体は僕はかなりの頻度で使うのですが、まだ拡張プラグインは入れてません。 紹介されたプラグインを試してみて自分の使用感に合いそうなものがあれば使ってみたいです。 あと、オチがとても秀逸でした。

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

Eclipse の方がまだ便利と分かった上で、あえて Vim 上で Java を書く、という話でした。 僕が昔お仕事で Java を書いていた時は Eclipse + vrapper (Vim バインドを提供する Eclipse プラグイン) を使ってまぁある程度満足していたのですが、Vim が使えない不満も確かにありました。 これからに期待です。

auto closing parenthesis (@c0hama)

僕の発表でした。 他のエディタによくある閉じカッコとか閉じクォートとかを自動入力する方法についてです。

以下補足。 閉じカッコ自動入力というと完全に好みが分かれる挙動だと思っているので万人受けするようなものではないですが、 vim-smartinput やそれをもとにした lexima.vim はその域を超えたインサートモード (コマンドラインモード) 用のマッピング定義フレームワークなので、カッコ自動入力以外にもいろいろなことに応用できます。 あと構成上ドットで繰り返せるのは lexima.vim だけみたいに見えてしまったかもしれないですが、実は vim-autoclose というプラグインもあってそれはドットでの繰り返しに対応しています。まぁ機能と拡張性がアレだったし時間がなかったので紹介を省きました。

怖くないマクロ入門 (@deris)

Vim のマクロの基本的な使い方の話。 かなりわかりやすく、かつ実用的な例が紹介されていてとても良い内容だったと思います。 僕もマクロはよく使います。例えば、Agit.vim のテストコードを vspec から themis に乗り換えるときにはマクロを使って半自動的に変換しました。 確かにマクロは使うだけなら簡単なのですが、実用的でかつ変化に強いマクロを作るには多少の訓練が必要ですね。 完全に余談ですが、僕はマクロで記録中に「あ、間違えた」ということがよくあるのですが、そういうときは "xp" などで記録中のマクロをバッファに貼り付けて間違った部分をちょろっと修正して 0"xy$ でマクロの方に反映するというテクニックを使います。

Test for Vim script (@thinca)

Vim script のテスティングフレームワーク、themis の紹介でした。 themis はかなり初期の頃から使っていて、いくつかコントリビュートもしたので個人的にもかなり応援しているプラグインです。 テスティングフレームワークはかなり乱立してますが、themis はデファクトスタンダードになれるだけの可能性を秘めていると思っているのでみなさんも使いましょう。

Let's talk about neovim (@Shougo)

Vim からフォークした Neovim の話でした。 個人的には一番楽しみにしていた発表でした。実際の内容も Neovim の最近の動向や問題点がわかりやすく説明されており大変素晴らしかったです (歌含む)。 とは言え僕自身はあまり Neovim には期待をしていなくて、単純に別のエディタとして見たときに Neovim がどういう機能を持っているのかを知りたかったというのが本音です。

かなりすごい発表(かなり) (@momonga)

Vim から音を出すとどうなるかという内容でした。 スライドも発表の内容もとてもおもしろかったです。(かなり) 半分くらいネタなのかなと最初は思っていたんですが、実際に音で何かを通知するというのはなにかに使えそうだと思いました。

XVim with MacVim and smartgrep (@pebble8888)

XcodeVim っぽい操作を提供するもの、らしいです。 Mac 全く使ったことがないので XCode というのものもあまり深くは知らないのですが、Eclipse における Vrapper とか VisualStudio の VsVim とか IntelliJ IDEA の IdeaVim とかに相当するものと理解しました。 こういう系のソフトウェアはオリジナルの Vim の操作性にどれだけ近づけられるのかが重要だと思っているのですが、XVim はこのあたりかなり頑張ってる印象を受けました。 あとは MacVim と XVim の間を行き来するのは便利そうでした。

/-improved (@haya14buya)

/ による検索と incsearch.vim の紹介でした。 / はよく使うんですが、d/ みたいにモーションとして使ったり、//e みたいにオフセットを活用したり、といったことは僕は余りやらないのでよい復習になりました。 incsearch.vim は僕の中で最近かなりアツいプラグインです。既存の / の使用感はそのままに便利な機能が追加されているので非常に便利感あります。 ただし、僕の場合は / の検索中のマッピングを lexima.vim で定義しまくっているのでただ乗り替えるだけでもちょっと苦労しましたが...。 僕みたいな特殊な場合を除けば、入れるだけで競合もデメリットもほぼない感じになっているのでとりあえず1回は試してみるといいと思います。

vim script初心者に使ってもらいたい、転ばぬ先の杖「Vint」 (@Kuniwak)

pythonVim script の Lint を行う vint の紹介でした。 syngan さんの vim-vimlint は僕も試したことがあったのですが、あまりの遅さにあきらめてしまっていました。 vint は python で書かれているため高速に動作するようです。 かなりライフチェンジングっぽいので積極的に使っていきたいですね。 あと、vint のアイコンがめっちゃかっこよかったです。

Jenkins + vimenv で 最新のVimを使おう! (@raa0121)

北海道から来たらぁさんの発表でした。 vimenv が rbenv の rb を vim に置換してできているというは知りませんでした。 というかそんな簡単な感じでできるのすごい。 Jenkins で9分に1回最新を取ってきてビルド+テストまでしているそうです。 最新の〜というタイトルでしたが、どっちかというとある特定のバージョンで起きる Vim のバグの原因究明なんかに役に立ちそうだと思いました。 あの環境欲しいんですが、サーバが...。

休憩中 + 懇親会中など

そういえば、休憩中に ujihisa さんと VimScala を書くときの話をしました。 ujihisa さんは ScalaVim で書くそうですが特殊なプラグインとかは使ってないそう。 Haskell における ghc-mod とか OCaml における ocamlspot みたいなのが Scala にもあれば Vim から使えて便利そうなのですが。。。

懇親会では同じく名古屋から来た koara-local さんとは Nagoya.vim 第3回の話などをしました。会場問題とかプロジェクタ問題とかはあるんですが、とりあえず1月あたりには開催しようかなと思います。 dice_zu さんがタイミング合えば参加したいとおっしゃっていたので期待大です。

それと、basyura さん (だったはず) から「Agit.vim にファイルモード (あるファイルだけの git log を見るモード) が欲しい」という要望をいただきました。 はい実装します。

終了後

有志でカラオケに行きました。カラオケ大好きなのでとても楽しかったです。 カラオケ中に vimrc 読書会の時間になったので歌う合間に参加しました。 カラオケ後、宿がなかったのでももんがさん家に泊めてもらいました。ももんがさん神。ありがとうございました。

まとめ

というわけでとても楽しい一日(?)でした。来年も絶対参加したいです。