MultipleSearch.vim : 複数回の検索を可能にして、それぞれの検索結果を違うハイライトで表示する
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回の検索のみ有効で、次に検索を行なうとハイライトが解除され、 代わりに次の検索結果文字がハイライトされます。
このスクリプトを使用すると、複数回の検索結果をハイライトすることができます。 それぞれの回の検索結果ハイライトには、それぞれ違う配色が使用されます。
![最初の状態](/dist/img/vim/multipleSearch_0.jpg)
「function」を検索。functionが赤でハイライト。
![1: 「function」を検索](/dist/img/vim/multipleSearch_1.jpg)
「match」を検索。matchが黄色でハイライト。
![2: 「match」を検索](/dist/img/vim/multipleSearch_2.jpg)
「Search」を検索。Searchが青でハイライト。
![3: 「Search」を検索](/dist/img/vim/multipleSearch_3.jpg)
正規表現での検索も可能。「In.*group」を検索。緑色でハイライト。
![4: 「In.*group」を検索](/dist/img/vim/multipleSearch_4.jpg)
検索が一回りすると、最初のハイライトが消えて、次の検索結果が代わりにハイライトされます。
デフォルトでは4回検索すると、一回りする。
(この回数は設定で変更可能。通常はこの回数で問題ないでしょう。)
「hig.*sin」を検索。「hig.*sin」が赤でハイライト。
![5: 「hig.*sin」を検索](/dist/img/vim/multipleSearch_5.jpg)
インストール方法
スクリプト を ダウンロードして、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コマンドを呼び出してください。
設定 | 効果 | 設定例 |
---|---|---|
g:MultipleSearchMaxColors | 検索ハイライトの件数。 | :let g:MultipleSearchMaxColors = 4 |
注意事項など
このスクリプトは検索結果をハイライトするだけです。
今の所、検索にヒットした箇所に移動する方法は用意されていません。