2009-02-18 9 views
61

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

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

+0

Si ha 'configurado keymap vi' en' ~/.inputrc', al presionar 'Esc + Digit' lo lleva al mismo modo, como si se estuviera preparando para una repetición del comando vi (pero no puede usar vi bindings de ellos en adelante, solo feos emacs :-() –

Respuesta

41

El término que desea es Google para:

"readline arguments" 

Esto dará lugar a, por ejemplo, este chapter from the bash reference manual:

Usted puede pasar argumentos numéricos para ReadLine comandos. A veces, el argumento actúa como repetir recuento, otras veces es el signo del argumento que es significativo. Si pasa un argumento negativo a un comando que normalmente actúa en una dirección hacia adelante, ese comando actuará hacia atrás. Por ejemplo, para eliminar el texto al inicio 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 dar al comando C-d un argumento de 10, puede escribir 'M-1 0 C-d', que eliminará los siguientes diez caracteres en la línea de entrada.

Para que funcione, tiene que saber dónde está asignada la tecla Meta: a veces es Alt, a veces es Esc, ordenadores frescas tienen una tecla Meta dedicado;)

+1

Es Hay una 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 solté la tecla Alt). ¿Cómo repetiría los números usando este mecanismo? –

+0

@Victor: preguntas interesantes. No se me ocurre una manera de hacerlo con readline. Probablemente esté mejor con algo como '$ (perl -e 'print" 0 "x 128 ') ' – hop

3

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

+7

usted no sabe, pero usted sabe?% - | – hop

8

probar este . Tipo Alt , a continuación, escriba T, y luego presionar Enter .

Editado para usar el HTML snazzier.

+8

¿Qué sucede para usted? No obtengo nada. –

+0

Se insertan cuatro caracteres 't' –

7

Repite el siguiente comando varias veces, al igual que en Emacs. P.ej. M-1-0 C-p retrocede 10 elementos del historial. M-4 C-h retrocede cuatro caracteres, M-3 M-t mueve la palabra anterior reenviar tres veces, y así sucesivamente. Aquí uso M- que significa "meta" para la tecla Alt, como es la costumbre en Bash.

14

Para repetir caracteres numéricos, p. Ej.128 ceros, golpean la siguiente:

Tecla Meta + 1 Ctrl + v

5

Sé que esto tiene ya una respuesta aceptada Yo sin embargo encontrar alguna useful examples que también demuestran usos adicionales aparte de la simple repetición de caracteres. Los argumentos de dígitos se pueden aplicar a todo tipo de cosas. Por ejemplo, la secuencia "Alt + 3, Escape, Retroceso" eliminará al revés 3 palabras.

Cuestiones relacionadas