oh-my-zsh 历史补全

oh-my-zsh 历史补全

我最近已经切换到 zsh,使用robbyrussell 的oh-my-zsh。在此之前,我使用 bash 进行了很多自定义操作,我只缺少一件事,因为 zsh 试图变得“太聪明”:

如果我输入git commit,然后zsh 会浏览所有最近的git命令。但我真正想要的是浏览所有以 开头的命令git commit(不仅仅是git)。

我怎样才能在 (oh-my-)zsh 中实现这种行为?

答案1

我已经找到了解决问题的方法ZSH 文档。Oh-my-zsh 似乎将键映射到类似

bindkey '\e[A' history-search-backward
bindkey '\e[B' history-search-forward

这产生了我上面描述的确切行为。ZSH 文档将行为描述history-search-backward

在历史记录中向后搜索以缓冲区中的第一个字



我想要的是以下映射,我将其插入到我的~/.zshrc

bindkey '\e[A' history-beginning-search-backward
bindkey '\e[B' history-beginning-search-forward

的行为history-beginning-search-backward如下:

在历史记录中向前搜索一行从当前行开始直到光标。这将使光标停留在原来的位置。

另外,如果\e[A向上或向下箭头不起作用,请<ctrl-v><KEY (e.g., up arrow)>在另一个终端中按下^[OA。然后您可以使用它代替\e[A。该过程如下所述:http://zshwiki.org/home/zle/bindkeys

答案2

oh-my-zsh我希望 zsh 在安装和找到插件时具有相同的行为history-substring-search

我通过将插件添加到我的实现了上面描述的相同行为~/.zshrc

plugins=(git brew npm history-substring-search)

我猜这个问题提出的时候这个插件还不存在。这只是实现相同目的的另一种方法。

相关内容