我想要
- 在可视模式下选择一个单词
- 按下一个键来搜索所选单词
我想要
这在vim中搜索选定内容已经有解释了。
v
y
/
<C-r>0
(Ctrlr+0)粘贴最后一次复制的文本。:h i_ctrl-r
(感谢romainl在评论中提供的信息)另一个例子是使用命令行:
v
y
q/
p
,然后按Enter
键进行搜索简而言之:yq/p<Enter>
Ctrl-r 0
到底是什么意思,除了它可以粘贴最后一次复制的文本。:h Ctrl-r
告诉我这与 redo
相关,但这是正确的吗?能否有人解释一下这是如何工作的,或者如果它与 redo 无关的话,可能将我指向正确的帮助部分? - timss<C-r>0
来插入寄存器0的内容。您也可以插入表达式的结果: <C-r>=2+57 < CR>
, <C-r>=expand('%')
等。请参阅:h i_ctrl-r
。注意,i_
表示插入模式命令。 - romainl嘿,伙计,你可以使用由《实用Vim》作者发起的强大可视化搜索。它非常轻巧!
只需将以下内容添加到您的vimrc文件中,即可使用:
xnoremap * :<C-u>call <SID>VSetSearch()<CR>/<C-R>=@/<CR><CR>
xnoremap # :<C-u>call <SID>VSetSearch()<CR>?<C-R>=@/<CR><CR>
function! s:VSetSearch()
let temp = @s
norm! gv"sy
let @/ = '\V' . substitute(escape(@s, '/\'), '\n', '\\n','g')
let @s = temp
endfunction
选择你想要搜索的内容,然后按星号键*
,完成!
* Searches for the next occurrence of the currently selected visual text.
# Searches for the prior occurrence of the currently selected visual text.
& Starts a :substitute using the currently selected visual text.
如果你觉得插件过于庞大,那么将脚本中相关的一行代码拿出来放入你的~/.vimrc
文件中就很容易了。
要同时搜索多个单词,vim搜索支持使用或操作符'\|'。因此,要搜索dog、cat和bird,您可以执行以下操作:
/dog\|cat\|bird
/\<dog\>\|\<cat\>\|\<bird\>
cgn
后跟.
,它是那些在vscode中怀念Ctrl-d
的完美替代品。