Zsh: faire en sorte que la flèche vers le haut ignore les commandes identiques

10

Dans la plupart des shells Unix, la touche fléchée remplace la commande en cours de modification par la commande précédente de l'historique. L'historique peut être vu en utilisant la commande history.

peut être pressé plus d'une fois pour grimper dans l'histoire.

Ma question est:

Comment puis-je configurer mon shell pour ignorer toutes les commandes identiques à la commande actuelle?

En effet j'en saisis souvent plusieurs maked'affilée. Lorsque je veux entrer à nouveau (ou modifier légèrement) une commande plus ancienne, je dois appuyer plusieurs fois juste pour ignorer toutes les makecommandes.

Je sais que c'est loin d'être le seul conseil qui augmente la productivité de la coque.

prime:

  • donner une configuration fonctionnant pour le shell Bash.
  • conserver l'historique (sachant que vous avez tapé une commande plusieurs fois de suite peut être utile)
Gabriel Devillers
la source

Réponses:

15

Pour zsh, mettez ceci dans votre configuration:

setopt histignoredups

Ce qu'il fait, il ignorera les entrées d'historique dupliquées pendant la recherche.

Le paramètre équivalent pour bash est

HISTCONTROL=$HISTCONTROL:ignoredups
Martin Sugioarto
la source
1
merci, setopt histignoredupsfait le travail mais supprime également les doublons de l'histoire
Gabriel Devillers
Oui, exactement. Dans la plupart des cas, c'est ce que vous voulez. Lorsque vous avez vu une suggestion et que vous ne la voulez pas, vous ne voulez plus la suggérer. Il ne supprime pas les doublons de l'historique, btw.
Martin Sugioarto
Vous avez raison mais je voulais dire: les futurs doublons ne seront pas ajoutés à l'historique.
Gabriel Devillers
Ils sont ajoutés, sinon l'autre option appelée histexpiredupsfirstque j'utilise également n'aurait pas de sens. Il fait expirer les doublons avant de regarder l'âge. (Je parle de zsh ici)
Martin Sugioarto