使用 ZSH 进行历史智能搜索的哪个按键绑定?

Fiz*_*izk 3 zsh zsh-completion

iTerm 2在终端( on )中使用向上和向下箭头时Mac OS Catalina,我可以使用向上和向下箭头浏览最后的命令。

我使用ZSHOh-my-zsh准确地说),如果我输入 例如vim然后按向上键,它将浏览我的历史记录以查找以 开头的任何命令vim

我觉得必须将手移到箭头键上很烦人,所以我想绑定ctrl-jctrl-k上下浏览。

我看着bindkey并绑定^jdown-history^kup-history。这允许我浏览我的历史记录,但不能使用“智能”功能(我不确定这里的术语是否正确) - 它只是在我的历史记录中上下移动,而不考虑我的输入。

我已经浏览了手册上的标准小部件Zsh Line Editor,但我找不到正确的命令。

我应该绑定哪个命令^j^k获得我想要的结果?

Fiz*_*izk 5

经过进一步挖掘,我最终到达了Z-Shell 行编辑器页面上名为“前缀搜索”的部分。

它显示我正在寻找的小部件名为history-beginning-search-backward. 使用该小部件时,它几乎按照我想要的方式工作,但不会跳到行尾。

快速搜索让我找到了另一个StackOverflow Question,该问题指出,如果您想跳到行尾(如向上箭头),则应按如下方式完成;

我有同样的问题,并通过一些实验设法找到了解决方案。

我将以下内容添加到我的 .inputrc 中

"\eOA": history-search-backward # Up

"\eOB": history-search-forward  # Down

"\C-P": "\eOA\C-E"              # Ctrl-P

"\C-N": "\eOB\C-E"              # Ctrl-N

Run Code Online (Sandbox Code Playgroud)

这将两个热键绑定到 Ctrl-P 和 Ctrl-N。一个用于历史搜索,另一个 Ctrl-E 用于行尾。