Zsh: fai in modo che la freccia su salti comandi identici


10

Nella maggior parte delle shell Unix, il tasto freccia su ↑sostituisce il comando che viene modificato dal comando precedente nella cronologia. La cronologia può essere vista usando il comando history.

↑ può essere premuto più di una volta per salire nella storia.

La mia domanda è:

Come posso configurare la mia shell in modo che ↑salti tutti i comandi identici a quello attuale?

Anzi, spesso ne inserisco molti makedi seguito. Quando voglio inserire di nuovo (o modificare leggermente) un comando più vecchio, devo premere ↑più volte solo per saltare tutti i makecomandi.

So che ↑è ben lungi dall'essere l'unico suggerimento che aumenta la produttività della shell.

bonus:

  • dare una configurazione funzionante per la shell Bash.
  • preservare la cronologia (sapere che hai digitato un comando più volte di seguito può essere utile)

Risposte:


15

Per zsh inseriscilo nella tua configurazione:

setopt histignoredups

Ciò che fa, ignorerà le voci della cronologia duplicate durante la ricerca.

L'impostazione equivalente per bash è

HISTCONTROL=$HISTCONTROL:ignoredups

1
grazie, setopt histignoredupsfa il lavoro ma sopprime anche i duplicati della storia
— Gabriel Devillers,

Si, esattamente. Nella maggior parte dei casi questo è quello che vuoi. Quando hai visto un suggerimento e non lo desideri, non vuoi che questo venga suggerito di nuovo. Non elimina i duplicati dalla cronologia, tra l'altro.
— Martin Sugioarto,

Hai ragione ma intendevo dire: i duplicati futuri non verranno aggiunti alla cronologia.
— Gabriel Devillers,

Vengono aggiunti altrimenti l'altra opzione chiamata histexpiredupsfirstche uso anche io non avrebbe senso. Fa scadere i duplicati prima di guardare l'età. (Sto parlando di zsh qui)
— Martin Sugioarto,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.