55 votes

achèvement de l'historique oh-my-zsh

Je suis récemment passé à zsh, en utilisant de robbyrussell oh-my-zsh . Avant cela, j'utilisais bash avec beaucoup de choses personnalisées et il ne me manque qu'une chose parce que zsh essaie d'être 'trop intelligent' :

Si je tape git commit et ensuite zsh passe en revue toutes les git des commandes. Ce que je veux vraiment, c'est passer en revue toutes les commandes qui commencent par git commit (pas seulement git ).

Comment puis-je obtenir ce comportement dans (oh-my-)zsh ?

77voto

Mr. G Points 81

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

14voto

slowdownitsfine Points 141

Je voulais le même comportement pour zsh avec oh-my-zsh installé et trouvé le plugin history-substring-search .

J'ai obtenu le même comportement que celui décrit ci-dessus en ajoutant le plugin à mon site Web. ~/.zshrc :

plugins=(git brew npm history-substring-search)

Je suppose que ce plugin n'existait pas à l'époque où cette question a été posée. Il s'agit simplement d'un moyen alternatif d'obtenir la même chose.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X