我使用 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 包含您本机需要的内容(取自此博客文章)。只需将以下内容包含在您的文件中.zshrc
(bindkey
如果您的操作系统需要,请调整键码):
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