假设我在视觉模式中选择了一个单词。 现在我想在文档中搜索该单词。
我该怎么做?
提前致谢。
答案 0 :(得分:7)
如果它只是一个单词,您甚至不必选择它。只需将光标放在单词上,然后按 * (或#向后搜索)。请注意,此搜索仅匹配整个单词。要允许搜索foo
以匹配foobar
,请使用 g * 或 g#。
答案 1 :(得分:3)
按y(之后你会从视觉模式退出)然后按/ Ctrl + r然后“结束命中输入。
您可以使用它绑定//以执行此操作:
:vmap // y/<C-R>"<CR>
如果选择特殊字符,最好使用此
:vmap <silent> // y/<C-R>=escape(@", '\\/.*$^~[]')<CR><CR>
答案 2 :(得分:2)
我建议使用https://github.com/thinca/vim-visualstar,因为您可以使用 * 进行搜索,但如果选择了某些选项,则会遇到问题。
答案 3 :(得分: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>