Вы можете использовать функциональность zlehistory-search
:
bindkey "^[[A" history-beginning-search-backward
bindkey "^[[B" history-beginning-search-forward
Это связывает Upи Down(с учетом ваших собственных escape-последовательностей) поиск в истории, вперед и назад, на основе того, что уже было введено в приглашении.
Таким образом, если вы введете «vim» и нажмете Up, zsh будет перемещаться назад по вашей истории только для тех команд, которые начинаются с «vim».
Кроме того, вы можете поместить курсор в конец строки после того, как вы выбрали нужную команду из истории zsh, используя функцию history-search-end (обычно расположенную в /usr/share/zsh/functions/Zle/
) и добавляя -end
в конец каждой строки, например, так:
autoload -U history-search-end
zle -N history-beginning-search-backward-end history-search-end
zle -N history-beginning-search-forward-end history-search-end
bindkey "^[[A" history-beginning-search-backward-end
bindkey "^[[B" history-beginning-search-forward-end