2008年10月1日水曜日

範囲選択文字列を検索

Vim で、ビジュアルモード時に * と # を押したら、選択されている文字列を検索させます。

let s:RangeAsterisk__reg = ''
function! s:RangeAsterisk__keepReg()
let s:RangeAsterisk__reg = @*
endfunction
function! s:RangeAsterisk__restoreReg()
let @* = s:RangeAsterisk__reg
endfunction
vnoremap * :call RangeAsterisk__keepReg()gv"*y/*:call RangeAsterisk__restoreReg()
vnoremap # :call RangeAsterisk__keepReg()gv"*y?*:call RangeAsterisk__restoreReg()

通常、* と # は (ビジュアルモード中であっても) カーソル直下の単語を検索しますが、これはあまり直感的とは言えません。
いちいちコピーしてから / で (貼り付けして) 検索するのも煩わしいものです。


現在 vimrc は 325 行...
もうちょっと外に追い出したいなぁ。

0 件のコメント: