Encontrei a solução para o meu problema na documentação do ZSH . Oh-my-zsh parece mapear as teclas ↑e ↓para algo como
bindkey '\e[A' history-search-backward
bindkey '\e[B' history-search-forward
O que produz o comportamento exato que descrevi acima. A documentação ZSH descreve o comportamento de history-search-backwardquanto
Pesquise no histórico uma linha que comece com a primeira palavra no buffer .
O que eu queria era o seguinte mapeamento, que eu inseri no meu ~/.zshrc:
bindkey '\e[A' history-beginning-search-backward
bindkey '\e[B' history-beginning-search-forward
O comportamento de history-beginning-search-backwardé o seguinte:
Procure no histórico uma linha que comece com a linha atual até o cursor . Isso deixa o cursor em sua posição original.
Além disso, se \e[Anão funcionar com as setas para cima ou para baixo, pressione <ctrl-v><KEY (e.g., up arrow)>outro terminal fornecido ^[OA. Então você pode usar isso em vez de \e[A. O processo é descrito aqui: http://zshwiki.org/home/zle/bindkeys