在 Prezto 中获取 Oh-My-ZSH 历史行为

Get Oh-My-ZSH history behaviour in Prezto

在 Oh My Zsh 中,默认情况下,历史功能匹配前缀。

键入 ls 并点击向上箭头将滚动浏览 您键入的内容开头的命令:匹配 lsls -l不是 echo ls.

在 Prezto 中,默认情况下,历史功能匹配字符串中的任何位置。

键入 ls 并点击向上箭头将滚动浏览 包含 您键入内容的命令:匹配 lsls -l echo ls.

有没有办法将 Prezto 设置为仅匹配前缀,就像 Oh My Zsh 默认行为一样?

(根据 history-substring-search 文档,设置 HISTORY_SUBSTRING_SEARCH_PREFIXED=1 将执行此操作,但我在 .zshrc 中设置了此设置,它仍然匹配字符串中的任何位置。)

我现在发现可以使用 built-in zsh 功能,而不是使用 Prezto 附带的任何插件。

将以下内容添加到 ~/.zshrc 的末尾:

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