J'ai trouvé la solution à mon problème dans le document Documentation ZSH . Oh-my-zsh semble mettre en correspondance le fichier y Les clés de quelque chose comme
bindkey '\e[A' history-search-backward
bindkey '\e[B' history-search-forward
Ce qui donne le comportement exact que j'ai décrit ci-dessus. La documentation ZSH décrit le comportement de history-search-backward
comme
Recherchez en arrière dans l'historique une ligne commençant par le symbole premier mot dans la mémoire tampon .
Ce que je voulais à la place était le mappage suivant, que j'ai inséré dans mon fichier ~/.zshrc
:
bindkey '\e[A' history-beginning-search-backward
bindkey '\e[B' history-beginning-search-forward
Le comportement de history-beginning-search-backward
est le suivant :
Recherchez une ligne dans l'historique en commençant par la ligne en cours jusqu'au curseur . Cela laisse le curseur dans sa position initiale.
En outre, si \e[A
ne fonctionne pas pour les flèches haut ou bas, appuyez sur <ctrl-v><KEY (e.g., up arrow)>
dans un autre terminal qui donne ^[OA
. Vous pouvez alors utiliser ceci à la place de \e[A
. Le processus est décrit ici : http://zshwiki.org/home/zle/bindkeys