Self Reference

Are you receiving this?

Vimmer養成ギプス

Vim Advent Calenderの84日目です。

みなさんvimでのカーソル移動にはhjklキーを使用されていることと思います。
コマンドを組み合わせたエキセントリックな操作をして、今日もまた周囲から気味悪がられ羨望の目で見られているのでしょう。

しかし百戦錬磨のvimmerのみなさんも、かつて遠い昔、うっかりカーソルキーを使って移動してしまい、老vimmerにたしなめられたご経験があるのではないでしょうか。

私自身はまだまだ修練が足りません。そこでvimmer養成ギプスの意味を込めて、カーソルキーを使うとvimに叱られるプラグインを作成してみました。

https://github.com/modsound/gips-vim

ノーマルモードでカーソルキーを押すと、移動する代わりに、vimからのメッセージをランダムにステータスラインへ表示します。

実装としては、改行区切りのテキストファイルをreadfileでlistとして読み込み、そこからランダムにひとつ選んでecho出力しているだけです。乱数の生成はosyo-mangaさんのものをパクリ参考にさせていただきました。また、先日2月17日に開催されたYokohama.vim #4では、thincaさんにアドバイスを頂戴いたしました。この場にて御礼申し上げます。

なお、テキストファイルをご自身でご用意いただければ、お好みのセリフでvimに罵ってもらうことができます。
その場合は、次のようにファイルの場所を.vimrc等でご指定ください。

1
let g:gips_reading_txt = '$HOME/.vim/bundle/gips-vim/autoload/dict/tsundere.txt'

今後は添付するテキストの種類を充実させるのと、Shaberu.vimと連携できるようになればいいなと思います!!

最後に

今回初めてvimプラグインを作成しました(ネームスペース的な意味で)。プラグインのディレクトリ構成はどうすればいいの? とか、autoloadってなに? とか、変数のスコープとか、.vimrcから~/.vim以下にプラグインを移動したらうまく動かなくなった(>_<)とか、いろいろ調べて分かることがあり、表層をさらっと撫でただけですが、vimとより仲良くなるにはプラグインを作るのが一番だなあと思いました。

明日は@tyruさんです。ではみなさん素敵なvim lifeを!!

追記

当初、テキストファイルをプラグインからの相対パスで読み込む方法がうまく分からず、これmacでBundle使ってる人しか使えないんじゃ?? 状態だったのですが、本記事を掲載したところ、超速でmattnさん、ujihisaさんからpull requestが!!! mergeできるまで就業時間中もワクワクプルプルしていたわけですが、ソーシャルコーディングが流行する理由を実感したのでした。