Appuyez sur alt + numérique dans bash et vous obtenez (arg [numérique]) qu'est-ce que c'est?

101

Appuyez sur alt + numérique dans bash et vous obtenez (arg [numérique]) qu'est-ce que c'est?

(Ce type de question est mieux adapté pour poser à un humain, au lieu d'essayer de "deviner" la terminologie correcte pour rechercher dans la documentation via Internet).

dreftymac
la source
Si vous avez set keymap vià ~/.inputrc, puis frapper Esc + Digitvous conduit au même mode, comme pour se préparer à une répétition de commande vi (mais vous ne pouvez pas utiliser vi fixations d'eux, seuls les emacs laids :-()
Ciro Santilli郝海东冠状病六四 事件 法轮功
Mes expressions de recherche étaient le terminal du numéro alt linux , le terminal alt + 1-9 et finalement le shell alt + 1 qui m'a amené ici.
sshow

Réponses:

62

Le terme pour lequel vous souhaitez rechercher sur Google est:

"readline arguments"

Cela mènera, par exemple, à ce chapitre du manuel de référence bash :

Vous pouvez transmettre des arguments numériques aux commandes Readline. Parfois, l'argument agit comme un nombre de répétitions , d'autres fois c'est le signe de l'argument qui est significatif. Si vous passez un argument négatif à une commande qui agit normalement dans une direction avant, cette commande agira dans une direction arrière. Par exemple, pour supprimer le texte au début de la ligne, vous pouvez taper «M-- C-k».

La manière générale de passer des arguments numériques à une commande consiste à taper des méta chiffres avant la commande. Si le premier «chiffre» saisi est un signe moins («-»), alors le signe de l'argument sera négatif. Une fois que vous avez tapé un méta chiffre pour lancer l'argument, vous pouvez taper le reste des chiffres, puis la commande. Par exemple, pour donner à la commande Cd un argument de 10, vous pouvez taper «M-1 0 C-d», ce qui supprimera les dix caractères suivants sur la ligne d'entrée.

Pour que cela fonctionne, vous devez savoir où la clé Meta est mappée: parfois c'est Alt, parfois c'est Esc, des ordinateurs sympas ont une clé Meta dédiée;)

Pour ceux qui ne connaissent pas la syntaxe, 'M-- Ck' est l'équivalent de Meta_key+ - Ctrl+ k. "M" est un raccourci pour la touche Meta, qui, comme indiqué, varie selon le système, "C" est un raccourci pour la touche Ctrl. Le "-" après un caractère (comme "M-") n'est pas quelque chose que vous tapez, c'est une façon d'indiquer les pressions simultanées sur les touches.

Communauté
la source
2
Existe-t-il un moyen de répéter des caractères numériques à l'aide d'arguments numériques? Par exemple, disons que je voulais écrire 128 zéros ('0'), je penserais que je pourrais écrire Alt + 128 puis 0, mais cela me donne (arg: 1280(même si j'ai relâché la touche Alt). Comment répéter des nombres en utilisant ce mécanisme?
Victor Zamanian
1
@Victor: questions intéressantes. je ne peux pas penser à un moyen de le faire avec readline. vous êtes probablement mieux avec quelque chose comme$(perl -e 'print "0" x 128')
1
@VictorZamanian voir une autre réponse dans cette question
TTT
28

Pour répéter les caractères numériques - par exemple 128 zéros, appuyez sur ce qui suit:

Meta-key + 1 2 8 Ctrl + v 0

guv '
la source
Ohhhh, c'est juste comme vim(peut-être emacs aussi, je ne me souviens pas).
Sridhar Sarnobat
12

Essaye ça. Tapez Alt 4, puis tapez T, puis appuyez sur Enter.

Édité pour utiliser le HTML plus snazzier.

Sean Bright
la source
9
Que vous arrive-t-il? Je ne reçois rien.
Mortimer McMire
1
Quatre tcaractères sont insérés.
Wesley Baugh
4
Dans ma version Bash (4.4), il n'est pas nécessaire d'appuyer sur ENTRÉE.
luca76
9

Il répète plusieurs fois la commande suivante, comme dans Emacs. Par exemple, M-1-0 C-precule de 10 éléments de l'historique. M-4 C-hbackspaces quatre caractères, M-3 M-tdéplace le mot précédent trois fois vers l'avant, et ainsi de suite. Ici, j'utilise le M-sens «méta» pour la touche Alt, comme c'est la coutume dans Bash.

Nietzche-jou
la source
9

Je sais que cela a déjà une réponse acceptée, mais j'ai trouvé quelques exemples utiles qui démontrent également des utilisations supplémentaires en dehors de la simple répétition de caractères. Les arguments numériques peuvent s'appliquer à toutes sortes de choses. Par exemple, la séquence "Alt + 3, Echap, Retour arrière" supprimera 3 mots vers l'arrière.

stsquad
la source
4

Je ne sais pas mais quand vous faites alt + numérique et que vous appuyez sur un caractère, vous obtiendrez num caractères: (arg: 123) + a -> 123 fois "a"

Giancarlo
la source
8
vous ne savez pas, mais vous savez? % - |