Il y a plusieurs façons d'écorcher ce chat !
Pour remplacer une chaîne de caractères spécifique, ^old^new^extra
reprendra votre commande précédente, remplacera old
con new
et ajouter extra
. Vous pouvez vous arrêter aussi tôt que vous le souhaitez, par exemple ^old
remplacera old
avec la chaîne vide et l'ajoute à la chaîne vide (ce qui revient à supprimer old
et ne rien faire d'autre).
1. ^diff^checkout
2. ^cat^rm
Variante particulièrement utile :
for i in `seq 1 10`; do echo something complicated; done
# inspect the output to see if it looks right
^echo
Pour remplacer un mot spécifique, vous pouvez utiliser !m:n-p
faire référence à des mots n
à travers p
de la commande m
(utiliser des nombres négatifs pour compter à rebours à partir de la commande en cours). Vous pouvez omettre l'élément -p
pour se référer à un seul mot, et omettre la partie :m-p
pour faire référence à une commande entière. Formes spéciales !!
para !-1
, !$
pour le dernier mot de la commande précédente, et !*
pour les arguments (tous sauf le mot 0
) de la commande précédente sont très pratiques.
1. !!:0 checkout !!:2-
2. rm !*
J'utilise souvent les deux ; zsh est particulièrement utile dans ce cas, car en appuyant sur tab, le texte crypté sera développé pour s'assurer que vous l'avez bien compris.
Il existe également de nombreuses façons de procéder avec l'édition en ligne. Renseignez-vous sur les raccourcis clavier de votre Shell.