2011-07-29 29 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-visual-in-visual-mode-in-vim/6871062#6871062)建議。 – nelstrom

+0

:vmap // y/ = escape(@「,'\\ /.*$^〜[]') 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> 
相關問題