Presione alt + numérico en bash y obtendrá (arg [numérico]) ¿qué es eso?

101

Presione alt + numérico en bash y obtendrá (arg [numérico]) ¿qué es eso?

(Este tipo de pregunta es más adecuada para preguntar a un humano, en lugar de intentar "adivinar" la terminología correcta para buscar en la documentación a través de Internet).

dreftymac
fuente
Si usted tiene set keymap vien ~/.inputrc, a continuación, golpeando Esc + Digitle lleva a la misma modalidad, como si se preparara para una repetición de comandos vi (pero no se puede usar vi fijaciones de ellos en adelante, sólo es feo emacs los :-()
Ciro Santilli郝海东冠状病六四 事件 法轮功
Mis frases de búsqueda fueron alt number terminal linux , alt + 1-9 terminal y eventualmente shell alt + 1 que me trajo aquí.
mostrar el

Respuestas:

62

El término que desea buscar en Google es:

"readline arguments"

Esto conducirá, por ejemplo, a este capítulo del manual de referencia de bash :

Puede pasar argumentos numéricos a los comandos Readline. A veces, el argumento actúa como un recuento de repetición , otras veces es el signo del argumento lo que es significativo. Si pasa un argumento negativo a un comando que normalmente actúa en una dirección hacia adelante, ese comando actuará en una dirección hacia atrás. Por ejemplo, para eliminar el texto al principio de la línea, puede escribir 'M-- C-k'.

La forma general de pasar argumentos numéricos a un comando es escribir meta dígitos antes del comando. Si el primer 'dígito' escrito es un signo menos ('-'), entonces el signo del argumento será negativo. Una vez que haya escrito un meta dígito para iniciar el argumento, puede escribir el resto de los dígitos y luego el comando. Por ejemplo, para darle al comando Cd un argumento de 10, puede escribir 'M-1 0 C-d', lo que eliminará los siguientes diez caracteres en la línea de entrada.

Para que eso funcione, debes saber dónde está asignada la clave Meta: a veces es Alt, a veces esEsc , las computadoras geniales tienen una clave Meta dedicada;)

Para aquellos que no estén familiarizados con la sintaxis, 'M-- Ck' es el equivalente de Meta_key+ - Ctrl+ k. "M" es la abreviatura de la tecla Meta, que, como se señaló, varía según el sistema, "C" es la abreviatura de la tecla Ctrl. El "-" después de un carácter (como "M-") no es algo que escriba, es una forma de indicar pulsaciones de teclas simultáneas.

Comunidad
fuente
2
¿Hay alguna forma de repetir caracteres numéricos usando argumentos numéricos? Por ejemplo, digamos que quería escribir 128 ceros ('0'), pensaría que podría escribir Alt + 128 y luego 0, pero eso me da (arg: 1280(aunque suelte la tecla Alt). ¿Cómo repetiría números usando este mecanismo?
Victor Zamanian
1
@Victor: preguntas interesantes. No puedo pensar en una forma de hacerlo con readline. probablemente estés mejor con algo como$(perl -e 'print "0" x 128')
1
@VictorZamanian ve otra respuesta en esta pregunta
TTT
28

Para repetir caracteres numéricos, por ejemplo, 128 ceros, presione lo siguiente:

Meta-key + 1 2 8 Ctrl + v 0

jefe'
fuente
Ohhhh, es como vim(tal vez emacs también, no puedo recordar).
Sridhar Sarnobat
12

Prueba esto. Escriba Alt 4, luego escriba T, luego presioneEnter .

Editado para usar el HTML más elegante.

Sean Bright
fuente
9
¿Qué te pasa? No obtengo nada.
Mortimer McMire
1
tSe insertan cuatro caracteres.
Wesley Baugh
4
En mi versión de Bash (4.4) no es necesario presionar ENTER.
luca76
9

Repite el siguiente comando dado eso muchas veces, igual que en Emacs. Por ejemplo, M-1-0 C-pretrocede 10 elementos del historial. M-4 C-hretrocede cuatro caracteres, M-3 M-tavanza la palabra anterior tres veces, y así sucesivamente. Aquí uso el M-significado de "meta" para la tecla Alt, como es costumbre en Bash.

Nietzche-jou
fuente
9

Sé que esto ya tiene una respuesta aceptada, sin embargo, encontré algunos ejemplos útiles que también demuestran usos adicionales además de la simple repetición de caracteres. Los argumentos de dígitos pueden aplicarse a todo tipo de cosas. Por ejemplo, la secuencia "Alt + 3, Escape, Retroceso" eliminará 3 palabras hacia atrás.

stsquad
fuente
4

No lo sé, pero cuando haces alt + numérico y luego presionas un carácter, obtendrás num caracteres: (arg: 123) + a -> 123 veces "a"

Giancarlo
fuente
8
no lo sabes, pero lo sabes % - |