Vim scriptテクニックバイブルを買って生活が豊かになった話

Vim script テクニックバイブル ~Vim使いの魔法の杖 を買った。

vim scriptのネットのチュートリアルはいくつか読んだんだけど、なかなか完全な説明が一箇所にまとまっていることはなく、よくわからない部分がいろいろ残されている状態だった。
僕は基本的にプログラミングは本で勉強するのが好きなのもあり、買うことにした。

雑な書評

変数とか関数の先頭についてるs:とかg:の意味をずっと知らなかったんだけど、わかりやすくまとめられていた。
それだけでだいたいvim scriptが読めるようになったので結構助かった。

基本的な部分は説明されているけど、実際にプラグインを作る上で必要なことが網羅されているわけでもなさそうで、これを読んだだけではわからないこともちょっとあった。

読んだあとにやったこと

普段vim scriptがわからないせいで非常に困っていたことがいくつかあり、この本のおかげでvim scriptが読めるようになったことによりそれらの問題が解決され、生活が豊かになった。

trailing whitespaceのハイライトでuniteが赤くなる

このissueの話。
長い間このissueのclose後にコメントがつかなくて自力で解決しようとしたんだけどできなくて困っていた。
なんでk0kubunのエディタ赤いのとか言われてた。

で、本買ったあとにコメントがついていることに気づいて、まぁあれでも直るんだけど、
僕の使っていたpluginにpull reqを投げ、マージされた。
これにより、

g:extra_whitespace_ignored_filetypes = ["unite"]

とかやれば直るようになった。

ファイルが多いときにgit_cachedが動かない

git_cachedというunite sourceがあって、uniteはほとんどこれだけで使ってる。
でも、ファイルが3万くらいあるリポジトリだとこれが動かなくて困っていたので、この本に書いてあったデバッグ手法を使って原因を調べてみた。

すると、git_cachedの問題ではなくて、uniteが、件数が多いと再描画しないようになっているのが原因ということがわかった。
とりあえずその限界を修正可能にするpull reqを投げた。
この変数をいじればひとまず問題は解決される。

それと、本のif_luaのところを読んで、git_cachedを高速化した
結構開発効率が上がったと思う。

まとめ

Vim scriptが少しわかるようになったことで生活が豊かになった。