像在 emacs 中一样在 vim 中搜索

像在 emacs 中一样在 vim 中搜索

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

更准确地说,假设我开始搜索并启用了增量搜索。光标将转到第一个匹配项。我按 Enter 键,然后按“n”转到下一个匹配项。现在我想在原始搜索表达式中添加一些字符并搜索下一个匹配项。我无法做到这一点,因为在我按下“Enter”键后,焦点离开了搜索词区域。

emacs 的对应键是 ctrl-s blah ctrl-s ha。最后我会搜索术语“blahha”。

这有道理吗?有可能吗?

编辑

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

答案1

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

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

nnoremap <leader>/ /<C-R>/

正如我在其他评论中提到的,如果您想留在搜索缓冲区中,您可以将类似这样的内容添加到您的 vimrc 中。我认为这会让您得到您想要的东西。

cnoremap <C-S> <CR>/<C-R>/

答案2

/<Up>/<C-P>将带您返回上一个搜索,然后您可以继续键入以附加。:nnoremap / /<Up>如果您希望这是您的默认行为,您可以将其添加到您的 vimrc 中。

相关内容