Я нашел решение моей проблемы в документации ZSH. Oh-my-zsh, кажется, отображает клавиши ↑ и ↓ на что-то вроде
bindkey '\e[A' history-search-backward
bindkey '\e[B' history-search-forward
Что дает точное поведение, которое я описал выше. Документация ZSH описывает поведение history-search-backward
по истории назад как
Поиск в истории назад для строки, начинающейся с первого слова в буфере.
Вместо этого я хотел следующее отображение, которое я вставил в мой ~/.zshrc
:
bindkey '\e[A' history-beginning-search-backward
bindkey '\e[B' history-beginning-search-forward
Поведение history-beginning-search-backward
выглядит следующим образом:
Поиск вперед в истории для строки, начинающейся с текущей строки до курсора. Это оставляет курсор в исходном положении.
Кроме того, если \e[A
не работает для стрелок вверх или вниз, нажмите <ctrl-v><KEY (e.g., up arrow)>
в другом терминале, который дает ^[OA
. Тогда вы можете использовать это вместо \e[A
Процесс описан здесь: http://zshwiki.org/home/zle/bindkeys