0

私は現在、テキストを選択して:を押すと、Geany(私の古いエディター)のように機能するためにこれを使用していますF3

vnoremap <silent> * :<C-U>
  \let old_reg=getreg('"')<Bar>let old_regtype=getregtype('"')<CR>
  \gvy/<C-R><C-R>=substitute(
  \escape(@", '/\.*$^~['), '\_s\+', '\\_s\\+', 'g')<CR><CR>
  \gV:call setreg('"', old_reg, old_regtype)<CR>
vnoremap <silent> # :<C-U>
  \let old_reg=getreg('"')<Bar>let old_regtype=getregtype('"')<CR>
  \gvy?<C-R><C-R>=substitute(
  \escape(@", '?\.*$^~['), '\_s\+', '\\_s\\+', 'g')<CR><CR>
  \gV:call setreg('"', old_reg, old_regtype)<CR>

もちろん、これは*選択されたテキストの前方#検索と選択されたテキストの後方検索用です。

私が理解できないのは、これらの両方を取得して、見つかった単語(または選択されたもの)を再選択して、押し続ける*#検索を続けることができるようにする方法です。だから、それが私が望むものではなく、検索を続けたいのであれば、それが見つけたものを再選択する必要はありません。

4

2 に答える 2

2

追加のソリューションはv//e<CR>機能しますが、検索を最後まで行うという副作用があり、n/などの他のコマンドに影響しますN1vより良いオプションは、を介して(または1vlいつ'selection'であるか)現在の位置で前の選択を再確立することexclusiveです。

vnoremap <silent> * :<C-U>
\let old_reg=getreg('"')<Bar>let old_regtype=getregtype('"')<CR>
\gvy/<C-R><C-R>=substitute(
\escape(@", '/\.*$^~['), '\_s\+', '\\_s\\+', 'g')<CR><CR>
\gV:call setreg('"', old_reg, old_regtype)<CR>1v
vnoremap <silent> / :<C-U>
\let old_reg=getreg('"')<Bar>let old_regtype=getregtype('"')<CR>
\gvy?<C-R><C-R>=substitute(
\escape(@", '?\.*$^~['), '\_s\+', '\\_s\\+', 'g')<CR><CR>
\gV:call setreg('"', old_reg, old_regtype)<CR>1v
于 2012-08-10T20:23:41.237 に答える
0

とった!!!私に関連する別のStackoverflowの質問でそれを見つけましたが、見つけるのは困難でした。正しい使用法は、これを各クエリの最後に追加することです。

<Esc>v//e<CR>

これにより、通常モード、次にビジュアルモードに戻り、最後の検索を繰り返してから、選択して終了します。したがって、最終的なコードは次のようになります。

vnoremap <silent> * :<C-U>
  \let old_reg=getreg('"')<Bar>let old_regtype=getregtype('"')<CR>
  \gvy/<C-R><C-R>=substitute(
  \escape(@", '/\.*$^~['), '\_s\+', '\\_s\\+', 'g')<CR><CR>
  \gV:call setreg('"', old_reg, old_regtype)<CR><Esc>v//e<CR>
vnoremap <silent> / :<C-U>
  \let old_reg=getreg('"')<Bar>let old_regtype=getregtype('"')<CR>
  \gvy?<C-R><C-R>=substitute(
  \escape(@", '?\.*$^~['), '\_s\+', '\\_s\\+', 'g')<CR><CR>
  \gV:call setreg('"', old_reg, old_regtype)<CR><Esc>v//e<CR>

そして、それは選択された地域の高速検索への迅速かつ簡単なアプローチを提供します!

于 2012-08-09T17:15:46.167 に答える