如何在zsh中启用反向搜索?


36

我最近(最终)切换到了zsh并喜欢它!到目前为止,我缺少的一件事是Ctrl+ R做增量历史记录搜索。
我的历史记录设置正确

HISTSIZE=10000
SAVEHIST=10000
HISTFILE=~/.zsh_history

我用了vi键绑定

bindkey -v

但是Ctrl+ R不起作用。它将删除当前行上方的行,这也不是它在vim中应具有的行为。

有什么建议么?


1
顺便说一句,一种快速的解决方法是使用非增量搜索:Ctrl+ [ /...
maxschlepzig 2012年

Answers:


58

如果我没记错的话,即使使用,也需要显式设置它bindkey -v。使用这样的东西:

bindkey -v
bindkey '^R' history-incremental-search-backward

4
也许history-incremental-pattern-search-backward是在这种情况下可以使用的替代操作。
maxschlepzig 2012年

2
@maxschlepzig对不起,两者有什么区别?
阿里

2
@Ali,使用-pattern-版本,您可以使用搜索模式(哪种样式,即glob或regex(?)取决于zsh-configuration的其他部分)-例如,您可以使用搜索模式fo*bargrep来匹配' fobar”,“ foobar”,“ fooobar”等
maxschlepzig 2012年

3
我遇到了错误。用双引号包裹^ R做到了。bindkey "^R" history-incremental-pattern-search-backward
拉蒙·塔亚格

1
bindkey -v必须先于history-incremental-search-backward
Deniz
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.