Actuellement, j'ai ce qui suit dans mon .zshrc:
bindkey '^[[A' up-line-or-search
bindkey '^[[B' down-line-or-search
Cependant, cela ne semble correspondre au contenu de mon entrée actuelle avant qu'un caractère espace ne se produise. Par exemple, sudo ls /
correspondra à chaque ligne de mon historique qui commence par sudo
, alors que je voudrais qu'il ne corresponde qu'aux lignes qui correspondent à l'intégralité de mon entrée. (ie sudo ls /etc
correspondrait, mais pas sudo cat /var/log/messages
)
Que dois-je changer pour obtenir le comportement souhaité?
Voici mon .zshrc entier au cas où il serait pertinent: https://gist.github.com/919566
zsh fournit cette fonctionnalité en utilisant
Ex.
Trouvez le code clé exact par
ctrl+vKEY
Ex.
ctrl+ vUP
ctrl+ vDOWN
ctrl+ vPageUp
ctrl+ vPageDown
etc.
la source
$terminfo[kcuu1]
, <kbd> Down </kbd> est$terminfo[kcud1]
.Ce billet de blog de 2013 recommande quelques raccourcis clavier qui correspondent à tous les mots avant le curseur.
(Dans une version antérieure de cette réponse, j'avais utilisé
$terminfo
comme recommandé dans l'un des commentaires sur le blog. Certaines valeurs terminfo sont répertoriées ici .)la source
/etc/zsh/zshrc
, tels que$key[Up]
.$terminfo
vous utilisez, vous devrez changer les modes du terminal. Voyez ici .$key[]
place de$terminfo[]
. J'espère que cela fonctionne bien pour les lecteurs!Jetez également un œil au projet zsh-history-substring-search .
Il offre ce que vous recherchez, et il peut même être utilisé comme plugin oh-my-zsh.
la source