momonga.vim #2に行ってきた

最近は自分のPCのvimrcを全然更新してないし、そろそろvimの勉強会が開催されないかなぁ...
と思っていたらちょうどmomonga.vim #2というイベントを発見したので行ってきました。

なんとなく早めに着いたら改札前でたまたまthincaさんとrbtnnさんを発見し、
そのままお昼に行く勢(+derisさん、2GMonさん)に混じって武蔵野プレイスのカフェへ。

カフェではパスタを食べながらVim至上主義の裏話や面接でのVimトークについて話したりしました。

そして良い時間になった頃にsupermomongaさんと合流し、会場の会議室へ。
前半はVPNに繋げていたのでインターネットの世界からは隔離されてもくもくとvimrcいじり。
後半は前から気になっていたvital.vimのBufferManagerを使ってみました。

対象はちょうどAPI絡みで修正しなければいけなかったfacebook.vimです。
それまではvital.vimのdate_time.vimというモジュールのみを使っていたんですが、
そもそもvital.vimってどうやって使うんだっけ?ってのを思い出すところからスタートでした。

幸いvital.vimはドキュメントが充実しているので:Vitalizeコマンドで
なんとか最新のDateTimeとBufferManagerをvitalizeすることができました。

" DateTimeとBufferManagerをvitalize
:Vitalize facebook.vim +DateTime +Vim.BufferManager

ただ、いつの間にかdate_time.vimはDateTime.vimになっており、
timzezoneの挙動も少し変わっていたのまずはその部分の修正から。

" 変更前(引数は省略)
s:DateTime.from_date().timezone().to_string()

" 変更後(引数は省略)
s:DateTime.from_date().to().to_string()

ようやく悲惨なコードで処理していたバッファをBufferManagerで巻き取る準備ができました。
BufferManagerの使い方はドキュメントにも書いてあるとおりで

let s:BufferManager = s:V.import('Vim.BufferManager')
let s:home_buffer = s:BufferManager.new()

" [Facebook Home]を新規タブで開く
call s:home_buffer.open('[Facebook Home]', {'opener': 'tabnew'})

とすることで簡単に使うことができました。
そんなことを言いつつ、違うところで余計なバグを仕込んでしまったりしたので
時間内ではこれ以上のことをすることができませんでした...
(バグは帰ってから直しましたが)

そんなこんなで1次会が終了し、2次会へ。
Linda_ppさんと犬トークをしたり、
t9mdさんからLearn Vimscript the Hard Wayを教わったり、
とても楽しかったです。

そんなところで今日はかなりだいぶ眠くなってしまったので
あとは他の人が補完してくれることを期待して寝ることにします。