anzu.vim でマッチしたワードの横に件数を表示させるようにした

この記事は Vim Advent Calendar 2012 344日目の記事になります。
Vim Advent Calendar 2013 の募集も開始しました。
興味のある方はぜひご参加下さい。

[anzu.vim の問題点]

anzu.vim はバッファを検索した件数や位置を出力するためのプラグインです。
その情報はコマンドラインや airline へと出力が行われます。



しかし、実際に n で検索位置を移動する場合、目線はバッファのマッチした位置になります。
その為、anzu.vim が出力した情報を確認する場合に目線をいちいちコマンドラインや airline へと移さなければなりません。



実は個人的にはこれがすごく致命的で、あまり anzu.vim を利用しきれていませんでした。
今回はそんな致命的な欠陥を改善してみました。

[解決策]

だったらマッチした位置に情報を出力すればいいじゃなーい。
と、いう事で実装してみました。


https://f.cloud.github.com/assets/214488/1506514/25dc147c-4930-11e3-9780-a81c8ae7e087.gif

[使い方]

" anzu-mode を開始し、直後に n で移動する
nmap n <Plug>(anzu-mode-n)
" anzu-mode を開始し、直後に N で移動する
nmap N <Plug>(anzu-mode-N)

" anzu-mode で n や N を入力した場合、zzzv も追加して移動を行う
nnoremap <expr> n anzu#mode#mapexpr("n", "", "zzzv")
nnoremap <expr> N anzu#mode#mapexpr("N", "", "zzzv")


anzu-mode というモードを新しく実装してみました。
このモードを開始すると検索したワードの横に件数が表示され、n や N キーでで移動を行うことができます。
また、この時に nzzzv のようなキーで移動を行いたい場合は上記のような anzu#mode#mapexpr() を使用して下さい。
このモードは n や N キー以外のキーが押された場合に終了し、件数の表示も消えます。


と、いうような感じで時っすしてみました。
割りと人柱力が高いのですが気になる方は試してみて下さい。
問題点や改善点などあれば Issues までお願いします。