Tout comme M-.
(méta-point ou esc-dot ou alt-dot) est la fonction readline yank-last-arg
, M-C-y
(méta-contrôle-y ou esc ctrl-y ou ctrl-alt-y) est la fonction readline yank-nth-arg
. Sans spécifier n
, il ramène le premier argument de la commande précédente.
Pour spécifier un argument, appuyez sur echap et un certain nombre ou maintenez la touche Alt enfoncée et appuyez sur un numéro. Vous pouvez faire Alt--pour commencer à spécifier un nombre négatif, puis relâchez la touche Alt et appuyez sur le chiffre (ce sont décomptés à partir de la fin de la liste d'arguments.
Exemple:
Entrez la commande suivante
$ echo a b c d e f g
a b c d e f g
Maintenant, à la prochaine invite de commandes, tapez echo
(avec un espace), puis
Appuyez sur Alt-Ctrl-y et vous verrez maintenant:
$ echo a
sans appuyer sur la touche Enter pourtant, procédez de la manière suivante
Appuyez sur Alt-3 Alt-Ctrl-y
Appuyez sur Alt-- 2 Alt-Ctrl-y
Maintenant, vous allez voir:
$ echo ace
En passant, t'aurais pu mettre la echo
sur la ligne en sélectionnant l'argument 0:
Appuyez sur Alt-0 Alt-Ctrl-y
Edit:
Pour répondre à la question que vous avez ajouté à votre original:
Vous pouvez appuyer sur Alt-0 puis appuyez à plusieurs reprises sur la touche Alt-. pour parcourir les commandes précédentes (arg 0). De même, Alt-- puis en répétant Alt-. vous permettra de parcourir le précédent suivant-à-derniers arguments.
Si aucun argument sur une ligne particulière dans l'histoire, la cloche va sonner.
Si il y a une combinaison particulière que vous utilisez fréquemment, vous pouvez définir une macro afin que l'un frappe l'exécuter. Cet exemple permet de rappeler le deuxième argument de commandes précédentes en appuyant sur Alt-Maj-Y. Vous pourriez choisir la séquence de touches que vous préférez à la place de celui-ci. Vous pouvez appuyer plusieurs fois pour passer d'précédents.
Pour l'essayer, entrez la macro à l'invite Bash:
bind '"\eY": "\e2\e."'
Pour le rendre persistant, ajoutez cette ligne à votre ~/.inputrc
le fichier:
"\eY": "\e2\e."
Malheureusement, cela ne semble pas fonctionner pour les arg 0 ou négatif argument des nombres.