Quich Filter : 軽快動作で使いやすい検索結果一覧表示プラグイン
filtering.vimは、軽快に動作する、使いやすい検索プラグインです。 カレントバッファを指定キーワードでフィルタリングし、その結果の一覧を見やすく表示する機能があります。 (Windows, Mac)
概要
Quich Filter : Quickly filter all matches of a string, browse the list, and jump back quickly.
http://www.vim.org/scripts/script.php?script_id=2759
filtering.vimは、軽快に動作する、使いやすい検索プラグインです。
カレントバッファを指定キーワードでフィルタリングし、その結果の一覧を見やすく表示する機能があります。

インストール方法
vim.orgで配布されているプラグインファイル をダウンロードして入手後、
pluginディレクトリにダウンロードしたファイル「filtering.vim」をコピーしてください。
ファイル | URL |
---|---|
filtering.vim | http://www.vim.org/scripts/script.php?script_id=2759 |
filtering.vimプラグインの使い方
filtering.vimプラグインの操作には、2つの段階があります。
検索を行うまでの操作、通常のVimエディタウィンドウ内での操作と、
検索後、フィルタリング結果表示ウィンドウ上での操作です。

通常のウィンドウでの操作(検索実行に関わるものが中心)
検索用に用意されているコマンドは ,f と、 ,F の2つです。
一度検索を実行した後、ノーマルモードで ,f を入力すると、
最後に検索したキーワード でカレントバッファをフィルタリングし、マッチした行を別ウィンドウに結果を表示します。

新規に検索を行う場合は、ノーマルモードで ,F を押下すれば、入力プロンプトが表示されるので、
その入力プロンプトで検索ワードを入力してください。

コマンド | 説明 |
---|---|
,f | 最後に検索したキーワードでカレントバッファをフィルタリングし、結果を別ウィンドウに表示します。 |
,F | 入力プロンプトを表示し、入力されたキーワードでのフィルタリングを実行します。 |
,g | フィルタリング結果ウィンドウが開かれていれば、そのウィンドウにカーソルを移動します。 |
フィルタリング結果ウィンドウでの操作(検索結果参照に関わるものが中心)
フィルタリング結果ウィンドウでは、先のキーワード検索の結果の表示と、|BR| 検索結果位置へのカーソル移動ができます。
いくつかの操作コマンドが用意されていますが、基本的には、
・ Enter キーで検索結果位置に移動、
・ Shift-Enter キーで検索結果位置に移動 + 検索結果ウィンドウを閉じる、
という動作になると、覚えておけば良いでしょう。
コマンド | 説明 |
---|---|
<Enter> | 選択したフィルタリング結果の位置にカーソルを移動します。フィルタリング結果ウィンドウは閉じない。 |
<S-Enter> | 選択したフィルタリング結果の位置にカーソルを移動します。フィルタリング結果ウィンドウは、カーソル移動後、閉じられます。 |
o | 選択したフィルタリング結果を表示します。カーソルはフィルタリング結果ウィンドウ上から移動しません。 |
a | トグルオプションです。押下する度にON/OFFと機能が切り替わります。ONにすると、フィルタリング結果ウィンドウ上でカーソル移動時、元のウィンドウの表示も検索位置に切り替えます。 |
c | 後の C と対になるコマンドです。フィルタリング結果ウィンドウで表示する、検索結果前後の表示行数を増やします。デフォルト0行です。 |
C | c と対になるコマンドです。フィルタリング結果ウィンドウで表示する、検索結果前後の表示行数を減らします。 |
j | フィルタリング結果ウィンドウで、カーソルを下に動かします。 |
k | フィルタリング結果ウィンドウで、カーソルを上に動かします。 |
少し変わっているのは、 c コマンド、 C コマンドで、
これらのキーを押下すると、検索結果行 前後の表示テキストの行数を変えられます。
下画像(↓)は、前後2行を表示している様子です。

プラグインの機能の拡張
ところで、このfiltering.vimプラグイン、
,f による検索では、最後に検索したキーワードを対象に検索を行いますし、
,F による検索では、検索キーワードの入力が必要になるので、
新規に検索を行う場合は、少々使いづらいところがあるように思います。
そこで少しだけ工夫をしてみましょう。
次の行を、Vimエディタの設定ファイルに追加してみてください。
" filtering.vimの機能を利用。カーソル下文字の検索 nmap ,r :call Gather(expand("<cword>"), 0)<CR>:echo<CR>
このように設定すると、
ノーマルモードで ,r を押下した時に、カーソル下のキーワードを対象に、
filtering.vimプラグインの検索を実行できるようになります。
Note
filtering.vimはカレントバッファを対象に検索を行うが、
多数のファイルを対象に検索を行いたい場合はどうするか。
ユーザーインターフェイスは違うが、そういう場合は、 :vimgrep コマンドを利用すると良い。
Recent Comments
ありがとうございます!
http://nanasi.jp/articles/howto/editing/visualcursor-endtoend.html · 7 years ago
知りませんでした。有難うございました。
http://nanasi.jp/articles/howto/file/open-with-format.html · 9 years ago
<c-f>1ページ分、下にスクロールする<c-b>1ページ分、上にスクロールする
どっちも逆です。
http://nanasi.jp/articles/howto/user-manual/user-manual-motion.html · 10 years ago
set 使用時に : で閉じるのを忘れて右往左往してました。
http://nanasi.jp/articles/howto/file/modeline.html · 11 years ago
やっぱり日本語の方が早いっす。
http://nanasi.jp/articles/howto/help/help_ja.html · 12 years ago