Zsh 使用向上和向下箭头完成

Zsh 使用向上和向下箭头完成

我使用 oh-my-zsh 一段时间,发现了它的一个不错的功能,我可以使用向上和向下箭头键完成我的命令。

我想重新创建该功能,甚至浏览了它的源代码,这就是我到目前为止所拥有的:https://termbin.com/vlaj在我的 ~/.zshrc 中。说我的历史是这样的:

1nvim hello-word.sh

2nvim fibonacci.c

3nvim cmatrix.py

现在,如果我$ nvim he 按下向上箭头键,它就会变成nvim cmatrix.py,而不是nvim hello-word.sh像 oh-my-zsh 中那样。我发现这很有帮助,但并不能解决问题:https://github.com/ohmyzsh/ohmyzsh/issues/1720

答案1

如果您正在寻找基于命令前缀的补全,zsh 包含您本机需要的内容(取自此博客文章)。只需将以下内容包含在您的文件中.zshrcbindkey如果您的操作系统需要,请调整键码):

autoload -U up-line-or-beginning-search
autoload -U down-line-or-beginning-search
zle -N up-line-or-beginning-search
zle -N down-line-or-beginning-search
bindkey "^[[A" up-line-or-beginning-search
bindkey "^[[B" down-line-or-beginning-search

答案2

所有的解决方案都不起作用,但我终于找到了这个:

# Make zsh autocomplete with up arrow
autoload -Uz history-search-end
zle -N history-beginning-search-backward-end history-search-end
zle -N history-beginning-search-forward-end history-search-end
bindkey "$terminfo[kcuu1]" history-beginning-search-backward-end
bindkey "$terminfo[kcud1]" history-beginning-search-forward-end

答案3

这个插件能满足您的需求吗?

https://github.com/zsh-users/zsh-history-substring-search

相关内容