J'utilise zsh avec le framework oh-my-zsh de Robby Russell. Comment puis-je créer un raccourci ou quelque chose pour répéter la dernière partie d'une commande?
par exemple, si je tape:
mv something in/this/difficult/to/type/directory
y a-t-il un moyen de l'obtenir facilement: dans/this/difficult/to/type/directory?
Je viens de tester et il semble que vous puissiez le faire de la même manière que dans bash: !$
.
!*
vous donneALLles arguments de la dernière commande.
Exemple:
% echo hello world
hello world
% echo !*
(expands to)-> % echo hello world
hello world
!$
vous donne le dernier paramètre de la commande précédente.
Exemple:
$ echo hello world
hello world
$ echo !$
echo world
world
ajoutez bindkey '\ e.' insérer-dernier-mot à votre .zshrc
- sp3ctum, en commentaire ici
Que vous soyez dans bash ou zsh , vous pouvez utiliser l'opérateur !
pour récupérer les arguments de votre commande précédente:
Si nous prenons: echo a b c d
comme exemple
!$
- le dernier argument: d !:*
- tous les arguments: a b c d (peut être raccourci !*
)!:1
- le premier argument: a (identique à !^
)!:1-3
- arguments du premier au troisième: a b c !:2-$
- arguments de la seconde à la dernière: b c d Ce dernier point répond à votre question, vous pouvez prendre la dernière partie de votre commande.
Note: $:0
est la dernière commande exécutée, ici ce serait echo dans notre exemple
J'ai aussi rencontré ceci - j'ai toujours utilisé Alt.
pour insert-last-Word in bash. Trouvé où oh-my-zsh annule ceci.
Dans lib/key-bindings.zsh, commentez ceci et cela devrait fonctionner comme dans bash:
bindkey -s '\e.' "..\n"
<esc>.
fonctionne également avec zsh
et oh-my-zsh
.
Juste pour développer @Charles Gueunet answer;
!!
- répète la dernière commande en entierCeci est utile si vous avez oublié d'ajouter Sudo
au début de la commande. Exemple trivial:
$ cat /some/root/owned/thing/with/a/long/path
Permission denied
$ Sudo !!
here's the conent