パーソナルツール

Quich Filter : 軽快動作で使いやすい検索結果一覧表示プラグイン

— カテゴリ:
作者: 小見 拓 最終変更 2012年01月08日 11時54分

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は、軽快に動作する、使いやすい検索プラグインです。
カレントバッファを指定キーワードでフィルタリングし、その結果の一覧を見やすく表示する機能があります。

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 コマンドを利用すると良い。

ドキュメントアクション
コメント
blog comments powered by Disqus