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)

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

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.