Vim-Pokemon 〜あなたが Vim で開いているファイルに潜んでいるポケモン〜

see Pokemon-Emacs 〜あなたが Emacs で開いているファイルに潜んでいるポケモン〜 - Thanks Driven Life

TL;DR

最近は Pokemon Go が流行っているようで、正式サービス開始を待ち望まれているようです。

『Pokemon GO』は、位置情報を活用することにより、現実世界そのものを舞台として、ポケモンを捕まえたり、交換したり、バトルしたりするといった体験をすることのできるゲームです。 このゲームはモニターの中だけで完結せず、プレイヤーは実際に家の外に出てポケモンを探したり、他のプレイヤーと出会ったりしながら楽しむことができます。

面白そうですね。海外でも既にユーザが爆発的に増えており、スマホ片手に街をうろうろする様子などを画像や動画でも目にします。

さて、日本は夏まっさかりであり、暑い日が続いています。そんな中

「私もポケモン探しにいきたいけどまだサービス開始してないし、 そもそも外に出たくない… 」

という Vimmer も多いと思います。

でもよく考えてみてください。ポケモンは何も外だけに居るわけじゃないんです。 昔はゲームボーイにいました。じゃあ Vim にも居るかもしれないですよね。

Vim-Pokemon とは

https://github.com/heavenshell/vim-pokemon

Vim のライブラリーの一つです。効果としては「今開いているファイル名の絶対パス(もしくはバッファー名)で一意に決まるポケモン名を表示する」だけです。

とりあえずいろいろがんばって .vimrc に設定してもらったあと

$ vim /path/to/俺のリポジトリ/github/vim/vim-pokemon/README.md

を実行すると、(おそらく)ファイル名の横あたりに、下図っぽい感じでポケモン名が表示されます。

この場合は ジュゴン が選ばれました。

つまり /path/to/俺のリポジトリ/github/vim/vim-pokemon/README.md にはジュゴンが潜んでいる。豆知識です。

ちなみに 無名バッファー にはフシギダネが居ます。多分。

実装についてちょっとだけ

特に難しいことはしてませんが

  • ファイル名、もしくはバッファ名を seed として乱数をゲット
    • なのでどの環境でもファイル名が同じ = 同じポケモンが出てくる。はず。
  • (もちろんポケモン一覧 s:monsters が変化したら変わりますが…)

これだけです。

少し前に Pokemon-Go におけるポケモン出現率*1 みたいな画像を見たので、出現率に併せて「出やすいポケモン」「出にくいポケモン」みたいな実装をしてたんですが、 あの画像自体デマだったみたいなコメントもあったので、まあいいかってことでとりあえず愚直にリストから取るようにしました。

あとはポケモン一覧はとりあえず初代の 151 匹*2をチョイスしました。他のシリーズ追加すれば勝手に出てくるとおもいます

まとめ

「/path/to/foo にピカチュウが潜んでいたぞ!!」 「ミュウが見つからねえ!!」

みたいな楽しみ方で、エディタ生活に華を添えてください。ポケモン大好き!!

蛇足

あとネタとしてパクらせてもらった、偉大な Emacs ハッカーの @gongoz さん大好き!