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

タオルケット体操

サツバツいんたーねっと

Pacman風ゲーム「PacVim」でVimの操作を覚えよう

プログラミング Vim

photo by markuz


github.com

PacVimとは

公式いわく

Vimはコードを編集するための素晴らしいツールです。しかし私を含めた多くの人々はその急すぎる学習曲線に苦戦を強いられます。

Vimのコマンドを無料で、楽しく簡単に深く学べるツールはついぞ発見することが叶いませんでした。そうして生まれたのがPacVimです(free way to learnって高速道路とかけてたりするのかな?)。

PacVimはPacManを参考に作られました。PacVimはチョー楽しいゲームだから、夢中になってるといつの間にかVimコマンドの練習になってるってワケ。

だそうです。

インストールは、Macの人は

$ brew install packvim

で、それ以外の人はgit cloneして自分でビルドしような? って感じみたいです。

起動は

$ pacvim [LEVEL_NUMER] [MODE]

でどうぞ。

なおlibncurseとの兼ね合いなのかはわかりませんが、tmuxなどの仮想端末ツールと相性が悪いので別Windowでプレイするといいでしょう。

遊び方

公式のgifです。

https://raw.githubusercontent.com/jmoon018/PacVim/master/gifs/all.gif

それぞれ

  • 緑のカーソル = パックビム

  • 白のテキスト = 得点

  • 黄色い線 = 壁

  • 赤いG = ゴースト(敵)

  • チルダ(~) = 障害物(当たると死ぬ)

となっています。

現在有効なキーバインドは

key what it does
q quit the game
h move left
j move down
k move up
l move right
w move forward to next word beginning
W move forward to next WORD beginning
e move forward to next word ending
E move forward to next WORD ending
b move backward to next word beginning
B move backward to next WORD beginning
$ move to the end of the line
0 move to the beginning of the line
gg/1G move to the beginning of the first line
*number*G move to the beginning of the line given by number
G move to the beginning of the last line
^ move to the first word at the current line
& 1337 cheatz (beat current level)

みたいですね。
VimScriptで書かれているわけではなく、あくまでVimとは独立したアプリケーションであることに注意しましょう。
詳しいところはREADME.mdを読んでください。

普通に操作していると壁に遮られて移動出来ない場所が出てくるわけですが、gg, G, $, 0, ^とかそこらへんは壁やチルダを越えてワープ出来るので、そこらへんをうまく活用するのがクリアの鍵になりますね。

微妙なところ

初心者が基本敵な移動操作を覚えるにはいいんですけど、中級者以上の方だと対応したキーバインドの少なさが気になるところかもしれませんね。

文字検索であるf, tや、カーソル下の単語で検索をかける#, *あたりは欲しいところです。
Vimに慣れてくると普通のカーソル移動よりも検索操作の頻度が高くなってきますので。

とはいえとっかかりには面白いアプリなんじゃねーかなとは思います。
しかし2ヶ月ほど更新が止まっていて微妙に開発が止まりつつある雰囲気を感じなくもないので、わたくしC++は苦手なんですけどもなんかしらパッチを送った方が良いのかもしれませぬ。

まとめ

「今年入ってくる新人にこれをやらせてVimの操作を覚えてもらうかな!」と思ってこのエントリを書き始めたわけですが、れいせいに考えるとそういう行為はエディタハラスメントとしてコンプライアンス案件になりかねないのでやめておいた方が良いですね。

基本的なカーソル移動を身体で覚えるのには悪くないんじゃないでしょうか。パックマン楽しいし。

なお無料で優れたチュートリアルとしましてはvimtutorというコマンドがVimに付属しているのでそいつを使うといいでしょう。

hachibeechan.hateblo.jp

おしまい!