2011-07-29 11 views

答えて

3

presss yを(あなたはその後、ビジュアルモードを終了します)を押し/ Ctrlキー+ Rは、「最後はあなたがこのアクション

:vmap // y/<C-R>"<CR> 
のためのダブルプレス/をバインドするために使用することができ

を入力ヒット

あなたはより良いこの

:vmap <silent> // y/<C-R>=escape(@", '\\/.*$^~[]')<CR><CR> 
+0

これは、迅速かつ汚い修正ですが、あなた」 Vimの検索フィールドは多くの文字を特別なものとして扱うので(例: '.'文字は何でも表し、' <'、'( 'と' ''特殊なケースを扱うためにはVimscriptが少し必要ですので、[lucapette](http://stackoverflow.com/questions/6870902/vim-editor-how-can-i)のようにプラグインをインストールする方がよいでしょう。 -search-a-word-after-vide-in-vim/vim/6871062#6871062)が提案されました。 – nelstrom

+0

:vmap // y/ =エスケープ(@ "、 '\\ /.*$^~ []') hadvig

6

単なる単語であれば、それを選択する必要はありません。単語の上にカーソルを置き、*(または)を押してください。この検索は単語全体にのみ一致します。 fooの検索をfoobarと一致させるには、g *またはg#を使用してください。

2

を使用する特殊文字を選択した場合は、検索のための*を使用することができますので、私はhttps://github.com/thinca/vim-visualstarをお勧めしますいくつかの選択肢で問題にぶつかることがあります。

+1

[visual-star-search](https://github.com/bronson)を使用します。/vim-visual-star-search)は類似していますが、はるかに単純な実装で同じ結果を達成しているようです。 – nelstrom

+0

ああ@nelstromここにお会いできてうれしい!私はそれを試してみることを私に指摘していただきありがとうございます。 – lucapette

0

私は~/.vimrcでこれを持っている:

" Search for visually-selected text, forwards or backwards. 
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> 
関連する問題