zsh - update - ¿Cómo repetir la última parte de un comando anterior?
Estoy usando zsh con el framework oh-my-zsh de Robby Russell. ¿Cómo puedo crear un atajo o algo para repetir la última parte de un comando?
por ejemplo, si escribo:
mv something in/this/difficult/to/type/directory
¿hay alguna forma de obtener esto fácilmente: en / this / difficult / to / type / directory?
Acabo de probar y parece que puedes hacerlo de la misma manera que en bash:! !$
.
Me encontré con esto también: siempre he usado Alt.
para insert-last-word en bash. Encontrado donde oh-my-zsh anula esto.
En lib / key-bindings.zsh, comente esto y debería funcionar como en bash:
bindkey -s ''/e.'' "../n"
Solo para expandir la respuesta de @Charles Gueunet;
-
!!
- repite todo el último comando
Esto es útil si olvidó agregar sudo
al comienzo del comando. Ejemplo trivial:
$ cat /some/root/owned/thing/with/a/long/path
Permission denied
$ sudo !!
here''s the conent
Ya sea que estés en bash o zsh , puedes usar el !
operador para recuperar argumentos de su comando anterior:
Si tomamos: echo abcd
como ejemplo
-
!$
- el último argumento: d -
!:*
- todos los argumentos: abcd (se puede acortar!*
) -
!:1
- el primer argumento: a (lo mismo que!^
) -
!:1-3
- argumentos del primero al tercero: abc -
!:2-$
- argumentos del segundo al último: bcd
Este último punto responde su pregunta, puede tomar la última parte de su comando.
Nota: $:0
es el último comando ejecutado, aquí sería echo en nuestro ejemplo
!$
te da el último parámetro del comando anterior.
Ejemplo:
$ echo hello world
hello world
$ echo !$
echo world
world
!*
te da TODOS los argumentos del último comando.
Ejemplo:
% echo hello world
hello world
% echo !*
(expands to)-> % echo hello world
hello world
<esc>.
también funciona fuera de la caja con zsh
y oh-my-zsh
.