vim 搜索就像在 emacs 中一样

jun*_*er- 3 vim

有没有办法像在 emacs 中一样在 vim 中搜索?

更准确地说,假设我在打开增量搜索的情况下开始搜索。光标将转到第一个匹配项。我按回车键,然后按“n”键进入下一场比赛。现在我想在原始搜索表达式中添加一些字符并搜索下一个匹配项。我不能这样做,因为在我点击“输入”后,焦点离开了搜索词区域。

emacs 等效项是 ctrl-s blah ctrl-s ha。我最终会搜索“blahha”这个词。

那有意义吗?是否可以?

编辑

理想的情况是执行类似 /blah < CS > 的操作,并让它立即跳转到第二次出现的 'blah',同时将焦点保持在搜索缓冲区中。

小智 8

/<Up>或者/<C-P>会让你进入你之前的搜索,然后你可以继续输入以追加。:nnoremap / /<Up>如果您希望这是您的默认行为,您可以将其添加到您的 vimrc。


Ale*_*lex 5

我能想到的最接近的事情就是点击/<C-R>/然后附加你的新文本。/将弹出打开搜索对话框,<C-R>允许您从您的寄存器之一粘贴,/寄存器是先前的搜索缓冲区,其中包含您最近的搜索文本。

如果你发现自己经常这样做,你可以为它做一个映射,比如

nnoremap <leader>/ /<C-R>/
Run Code Online (Sandbox Code Playgroud)

正如我在另一条评论中提到的,如果您想留在搜索缓冲区中,您可以将这样的内容添加到您的 vimrc 中。我认为这会让你得到你想要的。

cnoremap <C-S> <CR>/<C-R>/
Run Code Online (Sandbox Code Playgroud)