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