Comment pouvez-vous inverser la direction de la période alternative dans Bash?

10

Dans Bash, vous pouvez appuyer sur Alt- .pour insérer le dernier argument de la commande précédente. Si vous appuyez dessus plusieurs fois, il parcourt les derniers arguments de toutes les commandes de votre historique. Cependant, parfois j'appuie trop souvent et je veux inverser la direction du cyclisme, donc aller de l'avant. Est-ce possible?

(c.-à-d. si vous inversez la recherche avec Ctrl- r, vous pouvez changer de direction avec Ctrl- s. À quoi sert l'analogue pour Alt- .?)

Sparhawk
la source

Réponses:

11

Si vous fournissez un argument négatif à Alt- ., il inverse la direction. La façon la plus simple de le faire (avec les raccourcis clavier standard) est Alt- -(équivalent à un argument de -1).

Ainsi, après une ou plusieurs Alt- .pressions de touches, une pression sur Alt- -entraînera la suivante Alt- .dans le sens inverse. (Ignorez simplement la boîte de dialogue d'argument qui apparaît lorsque vous appuyez sur Alt- -.)

rici
la source
1
Je ne sais pas exactement ce que tu veux dire. Appuyez sur Alt+ pour -supprimer l'invite de ligne de commande et insérer à la (arg: -1)place. La commande elle-même est inchangée.
Sparhawk
1
Thenext alt-. (avec l'argument -1) ira de l'avant.
rici
C'est génial! J'ai édité la réponse pour la rendre un peu plus claire. Que fait alt+ -exactement?
Sparhawk
1
@Sparhawk: comme je l'ai dit, alt -produit un argument de -1pour la prochaine commande readline. Ou, plus précisément, il commence un argument négatif, donc alt -, alt` 2produirait un argument de -2. Dans le cas de alt ., seul le signe de l'argument compte, et seulement s'il est négatif, cela alt -suffit. (Le premier alt .gère son argument différemment. Voir le manuel de bash.)
rici
Je vous remercie. Je trouve souvent un man bashpeu opaque pour de telles situations, mais je pense que c'est un peu clarifié ici.
Sparhawk