visualstar.vim 書いた

http://vim-users.jp/2009/11/hack104/ で Visual mode で * を使う方法を紹介したけど、いささかやっつけ感があるので、もう少しマシなものを書いてプラグイン化してみました。

visualstar.vim
http://github.com/thinca/vim-visualstar

で、書いたのはいいんだけど、実は似たようなのが既に www.vim.org に上がってる。

StarRange - Searches a string that you selected in visual mode with * or #. : vim online

ただ、悪いけどこれの実装があまりにアレだったので新しく作った。違いとしては

  • カスタマイズ用のキーマッピングの追加
  • レジスタの復元が不完全だったのを修正
  • ? での検索時は ? をエスケープするように
  • help がある

くらいかな。


最初に、もう少しマシなもの、と書いたのは、Vim の仕様上完璧なものを作るのはどうしても無理だった。
検索は / と ? で開始できるけど、それぞれ開始するのに使った文字は \ でエスケープする必要がある。でも、検索パターンは両者で共有されるので、/ で使ったパターンに /? が含まれていた場合は ? では使えない。
まーこれは Vim 自体が抱えてる問題なのでどうこうしようっても無理な話なんですが。

後の問題はいい名前が思いつかなかったのでキーマッピングの名前が変。(visualstar) と (visualstar-#) ってバランス悪すぎ…。何かいい名前はなかったものか。