読者です 読者をやめる 読者になる 読者になる

Vim でバッファラインを絞り込むプラグインをつくった

Vim

まだいくつか実装したいことは残っているんですが、忙しくて手につかなさそうなので一旦リリースしてしまおうかなーと。
実は結構前からこそこそつくっていたりしました。
hopping.vim は検索したワードにマッチした行のみを表示するプラグインになります。

[プラグイン]

hopping hopping

[使い方]

" 入力開始
:HoppingStart

" キーマッピングからの呼び出し
nmap <Space>/ <Plug>(hopping-start)

" hopping.vim のコマンドラインマッピング
let g:hopping#keymapping = {
\   "\<C-n>" : "<Over>(hopping-next)",
\   "\<C-p>" : "<Over>(hopping-prev)",
\   "\<C-u>" : "<Over>(scroll-u)",
\   "\<C-d>" : "<Over>(scroll-d)",
\}

こんな感じでバッファラインを直接絞り込むプラグインになります。
コマンドラインの入力は vital-over を利用しているので over.vim と同じレベルで機能が使えます(cmap の取り込みや <C-r> やその他キーマッピングなど
類似プラグインとしては unite-line や CtrlPLine などがあります。
ただ、置換プレビュー機能も実装されているので、どちらかといえば over.vim の後継機という方が近いと思います。
unite-line と何が違うの?と言われたらまぁ好みじゃないですかね…。
あとパフォーマンスはそこそこよいと思います(2万行のバッファでもそれなりの速度で動作する。

ちなみに当初は『オレオレ vital モジュールでどこまでコード量を減らせるのか』という目的でつくりはじめました。
その目的の通り、最初は200行ぐらいでさくっと実装はできたんですが、いろいろと細かい機能とかをやってるうちに結局合計で500行ぐらいになってしまったのがちょっと残念。
一部 over.vim とコードが重複している部分があるのでそこを共通化できれば少し減るんだけども…。

そんな感じで結構雑なつくりなので何か問題や要望があれば Issues までお願いします。