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

Vimで検索をする度に検索語のハイライトを変える

Vim Advent Calendar 2012の10日目の記事です。

偶然にも前後をujihisa.vim#3の発表者に挟まれてしまい、
30%のヤツを見てアウアウアーな妖戦士状態ですが、
美しい魔闘家ほどではないにしろ100以上のプラグインを使っているVimmerとして、
今回は最も気にいっているプラグインのひとつを紹介したいと思います。

その名もレインボー・サイクロン!!

見ての通りMultipleSearchのようなプラグインです。

" 前方に検索
:RC/{pattern}

" ハイライトのみ
:RC!/{pattern}

" 後方に検索
:RC?{pattern}

" ハイライトのみ
:RC!?{pattern}

" ハイライトをクリア
:RCReset

ただし、本家と違ってマッピングは一切設定されていません。
また、検索語を切り替える機能は自分の使い方に合わせて実装しています。

私は検索中心に使うつもりなのでvimrcをこんな感じの設定にしていますが、

nmap c/ <Plug>(rc_search_forward)
nmap c? <Plug>(rc_search_backward)
nmap c* <Plug>(rc_search_forward_with_cursor)
nmap c# <Plug>(rc_search_backward_with_cursor)
nmap cn <Plug>(rc_search_forward_with_last_pattern)
nmap cN <Plug>(rc_search_backward_with_last_pattern)

色だけ付けたい!という方は以下のような設定でハイライトだけすることができます。

nmap c/ <Plug>(rc_highlight)
nmap c* <Plug>(rc_highlight_with_cursor)
nmap cn <Plug>(rc_highlight_with_last_pattern)

これでVimをクリスマスらしくカラフルに彩ることができるようになりましたね。
ついでですが、*をデフォルトマッピングと置き換えて使うとこんなこともできます。

nmap * <Plug>(rc_search_forward_with_cursor_complete)

興味がある方は是非インストールしてみてはいかがでしょう?
ただし、目に負荷がかかる恐れがあるので使い過ぎにはご注意ください。

明日のVim Advent Calendar 2012は、我らが@ujmさん(1回目)です。
本当に楽しみですね。