パーソナルツール

MultipleSearch.vim : 複数回の検索を可能にして、それぞれの検索結果を違うハイライトで表示する

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

vimエディタでは検索を行なうと、検索にヒットした文字列のハイライトが行われます。 このハイライトは1回の検索のみ有効で、次に検索を行なうとハイライトが解除され、 代わりに次の検索結果文字がハイライトされます。 このスクリプトを使用すると、複数回の検索結果をハイライトすることができます。 それぞれの回の検索結果ハイライトには、それぞれ違う配色が使用されます。 (Windows, Mac)

概要

MultipleSearch : Highlight multiple searches at the same time, each with a different color.
http://www.vim.org/scripts/script.php?script_id=479

vimエディタでは検索を行なうと、検索にヒットした文字列のハイライトが行われます。 このハイライトは1回の検索のみ有効で、次に検索を行なうとハイライトが解除され、 代わりに次の検索結果文字がハイライトされます。

このスクリプトを使用すると、複数回の検索結果をハイライトすることができます。 それぞれの回の検索結果ハイライトには、それぞれ違う配色が使用されます。

最初の状態

「function」を検索。functionが赤でハイライト。

1: 「function」を検索

「match」を検索。matchが黄色でハイライト。

2: 「match」を検索

「Search」を検索。Searchが青でハイライト。

3: 「Search」を検索

正規表現での検索も可能。「In.*group」を検索。緑色でハイライト。

4: 「In.*group」を検索

検索が一回りすると、最初のハイライトが消えて、次の検索結果が代わりにハイライトされます。 デフォルトでは4回検索すると、一回りする。
(この回数は設定で変更可能。通常はこの回数で問題ないでしょう。)

「hig.*sin」を検索。「hig.*sin」が赤でハイライト。

5: 「hig.*sin」を検索

インストール方法

スクリプト を ダウンロードして、pluginディレクトリにコピーします。

ファイル URL
MultipleSearch.vim http://www.vim.org/scripts/script.php?script_id=479

次に、vimのGUI用設定ファイル、_gvimrc、もしくは.gvimrcファイルに、 下の設定を加えます。
(コマンドラインのvimしか使わないなら、下の設定をする必要はありません。)

:SearchReinit

使用方法

このスクリプトでは、以下のコマンドが用意されています。

コマンド 効果 使用例
:Search 現在開いているバッファに対して、コマンドに続くキーワードでの検索を行います。 :Search キーワード
:SearchBuffers 開いている全てのバッファに対して、コマンドに続くキーワードでの検索を行います。 :SearchBuffers キーワード
:SearchReset 現在開いているバッファで、有効になっているこのスクリプトによる検索ハイライトをリセットします。 :SearchReset
:SearchBuffersReset 開いている全てのバッファで、有効になっているこのスクリプトによる検索ハイライトをリセットします。 :SearchReset
:SearchReinit このスクリプトの設定を変更した時に、初期化を行います。 :SearchReinit

:Search

このスクリプトでは、通常の検索で使用される 「/」「?」の代わりに、特別なコマンドを使用します。

次のコマンドを入力すると、現在のバッファに対して、検索を実行します。
(このスクリプトによるハイライトはバッファを切り替えると消えてしまうので、 検索結果ハイライトを残したい場合は、次の:SearchBuffersコマンドを使用します。)

" コマンド実行例
:Search 検索パターン

:SearchBuffers

vimエディタで開いている全てのバッファに対して、検索を実行します。
:Searchコマンドを、全バッファを対象に実行するコマンドです。

" コマンド実行例
:SearchBuffers 検索パターン

:SearchReset

このスクリプトによるハイライトは、:noh、:nohlsearchで消せません。
その代わりに、次のコマンドを使用します。

現在開いているバッファの検索結果ハイライトを消します。

" コマンド実行例
:SearchReset

:SearchBuffersReset

vimエディタで開いている全てのバッファの検索結果ハイライトを消します。
:SearchResetコマンドを、全バッファを対象に実行するコマンドです。

" コマンド実行例
:SearchBuffersReset

:SearchReinit

このスクリプトの設定を変更した時は、 このコマンドでその設定を有効にできます。

" コマンド実行例
:SearchReinit

主な設定

検索が一回りするまでの検索回数を設定できます。
通常、設定を変更する必要はそんなに無いはずですが、 設定を変更した後は、:SearchReinitコマンドを呼び出してください。

設定 効果 設定例
g:MultipleSearchMaxColors 検索ハイライトの件数。 :let g:MultipleSearchMaxColors = 4

注意事項など

このスクリプトは検索結果をハイライトするだけです。
今の所、検索にヒットした箇所に移動する方法は用意されていません。

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