C'est un argument numérique , une fonctionnalité de la bibliothèque readline intégrée à bash
:
digit-argument (M-0, M-1, ..., M--)
Add this digit to the argument already accumulating, or start a
new argument. M-- starts a negative argument.
Cette fonctionnalité simplifie l'ajout ou la suppression de texte dans la ligne de commande actuellement modifiée. Disons que vous voulez écrire echo gggg
:
- Entrez
echo
suivi d'un espace
- Appuyez sur la touche Meta (qui peut être Win, Altet / ou Escpour vous) et tapez
4g
Mais à quelle fréquence devez-vous taper une seule lettre tant de fois que cela vous sauverait quelque chose? La fonction est principalement conçue pour les commandes readline , voir les chapitres 8.2.1 à 8.2.2 du Manuel de référence («C» signifiant Ctrl, «M» signifiant Meta).
Vous pouvez reculer d'un mot avec Meta et B, mais que faire si vous souhaitez reculer de plusieurs mots à la fois? Vous pouvez soit maintenir la Alttouche enfoncée Bplusieurs fois, soit utiliser l'argument numérique:
Il y a une faute de frappe sur votre ligne de commande cinq mots en arrière:
$ echo one two tree four five six seven█
Appuyez sur la touche Meta, tapez 5
et appuyez sur Meta et B. Et violà:
$ echo one two █ree four five six seven
- Corrigez la faute de frappe et appuyez sur Enterpour tirer ou Endou sur Ctrl+ Epour revenir à la fin de la ligne.
Vous pouvez supprimer un seul mot en appuyant sur Meta et Backspace, mais que faire si vous souhaitez supprimer plusieurs mots à la fois?
Vous avez oublié un mot sur votre ligne de commande:
$ echo one two four five six seven█
Appuyez sur la touche Meta, tapez 4
et appuyez sur Meta et Backspace.
$ echo one two █
Tapez le mot manquant suivi d'un espace et appuyez sur Ctrl+ Ypour coller ce qui vient d'être supprimé. Et violà:
$ echo one two three four five six seven█
Vous avez raison, vous auriez pu également vous y installer comme expliqué précédemment sans rien supprimer. Nous sommes sous Linux, il y a toujours plusieurs façons de faire la même chose.
Et qu'est-ce qu'un «argument négatif»? Il fait de même, mais dans la direction opposée, donc Meta -2
Meta Backspacesupprime les deux mots suivants de la ligne de commande. "Mais on pourrait utiliser Meta 1
Meta Dpour faire la même chose!" Heureux que vous l'ayez compris, bienvenue sur votre ligne de commande.
Lectures complémentaires:
Esc
set -o vi
), aussi.