我该如何搜索所选字符串(v
和y
)? 我通常使用/
进行搜索,但我不能在/
之后粘贴选择的字符串。
我该如何搜索所选字符串(v
和y
)? 我通常使用/
进行搜索,但我不能在/
之后粘贴选择的字符串。
:set hls
:vmap * y:let @/ = @"<CR>
set hls
(高亮搜索)v
=> hjkl
(选择某个内容)*
,将选中的文本复制到寄存器"
/
的内容设置为"
n
/N
进行导航我在我的vimrc
中定义了以下映射,它将*
映射为将搜索模式定义为当前高亮显示的内容(转义所有可能危险的字符,并将高亮显示的空格转换为任意一系列空格)。
xnoremap * :<C-U>let old_reg=getreg('"')|let old_regtype=getregtype('"')<CR>gvy/<C-R><C-R>=substitute(substitute(escape(@", '/\.*$^~['), '\s\+', '\\s\\+', 'g'), '\_s\+', '\\_s*', 'g')<CR><CR>gV:call setreg('"', old_reg, old_regtype)<CR>:let v:searchforward=1<CR>
v
开始可视化模式,然后高亮你想要搜索的内容,按下 *
而不是 y
。#
映射到向后搜索(完全相同,除了需要将 v:searchforward
设置为 0)。vnoremap // y/\V<c-r>=escape(@",'/\')<cr><cr>
。 - Matthias Braun如果你只关心搜索,你可以使用我使用的作弊方法。通过v或y+w抓取一个单词,然后发出命令
:%s//XYZ/gc
这将搜索最后一次搜索的单词。然后当您找到它时,它会要求确认以用XYZ
替换,并且您只需按q
退出即可。
首先使用y
命令复制所需文本。然后执行以下操作:
/
Ctrl + r
"
以上命令将在/后粘贴您复制的内容。最后按下ENTER
键即可。