Ви можете використовувати функціональність zlehistory-search
:
bindkey "^[[A" history-beginning-search-backward
bindkey "^[[B" history-beginning-search-forward
Це пов'язує Upта Down(підлаштовує під свої власні послідовності втечі) для пошуку історії, назад та вперед, виходячи з того, що вже було введено під час запиту.
Отже, якщо ви ввели "vim" і натиснули Up, zsh пройде назад через вашу історію лише для тих команд, що починаються з "vim".
Ви можете додатково розмістити курсор у кінці рядка, як тільки ви вибрали потрібну команду з історії zsh, використовуючи функцію search-end-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