¡Hay muchas maneras de pelar a este gato!
Para reemplazar una cadena específica, ^old^new^extrase llevará a su comando anterior, reemplace oldcon new, y anexar extra. Puedes parar tan pronto como quieras; por ejemplo ^old, reemplazará oldcon la cadena vacía y agregará la cadena vacía (esencialmente eliminando oldy no haciendo nada más).
1. ^diff^checkout
2. ^cat^rm
Variante especialmente útil de esto:
for i in `seq 1 10`; do echo something complicated; done
# inspect the output to see if it looks right
^echo
Para reemplazar una palabra específica, puede usar !m:n-ppara referirse a las palabras a ntravés pdel comando m(use números negativos para contar desde el comando actual). Puede omitir la -pparte para referirse a una sola palabra, y omitir la :m-pparte para referirse a un comando completo. Las formas especiales !!para !-1, !$para la última palabra del comando anterior, y !*para los argumentos (todos menos la palabra 0) del comando anterior son bastante útiles.
1. !!:0 checkout !!:2-
2. rm !*
A menudo uso ambos; zsh es especialmente agradable aquí, ya que presionar la pestaña expandirá las cosas crípticas para asegurarte de que lo has hecho bien.
También hay muchas maneras de hacer esto con la edición de línea. Lea sobre las combinaciones de teclas de su shell.