Vimとgolangの相性の良さを、お見せしますよ。

Vimとgolangはとても相性が良いと言われています。 その証拠(嘘)をお見せしますよ。

この記事は Vim Advent Calendar 2015 の 11日目の穴埋め記事(2015/12/22執筆)です。

まずは以下のデモ画像(別ウィンドウ)を見てください。

capture

2015年のアドベントカレンダーを熱心に追っていた賢明な技術者諸君には、もう説明は不要でしょう。

ソースコードは koron/vim-gopher に置いてありますので、チェックアウトして gvim -S game.vim することで試せます。ただし動作確認・保証は Windows版の +kaoriya な gvim でしかしておりません。また解像度も画面幅1920ドット無いとおかしなことになるので、異なる環境の場合は各自で調整してPRなどしてください。

参考資料:

GIMP 2を使って、3枚のgopher君の右向き画像(各200x200ピクセル)から、左右反転したプラス3枚の左向き画像を生成し、それらを縦につなげて200x1200の画像を作成、次にそれを50x300に縮小して8色に減色、さらに空白となった左右6ピクセルずつを削って38x300の画像を生成してXPMとして出力、そこからはVimで開いて画像部分の画素の文字を全角文字のからに置換、パレット情報はVim scriptへ加工してコピペしました。

プログラム本体は vim-ario からの流用。アニメーションのフレームだけ調整がありましたが、そこはそれ適当に。

画像処理に時間を取られましたが、ざっと1時間のやっつけ仕事でした。お粗末。