¿Cómo puedes invertir la dirección del período alternativo en Bash?

10

En Bash, puede presionar Alt- .para insertar el último argumento del comando anterior. Si lo presiona varias veces, recorre los últimos argumentos de todos los comandos de su historial. Sin embargo, a veces lo presiono demasiadas veces, y quiero invertir la dirección del ciclismo, por lo tanto, seguir adelante. es posible?

(es decir, si realiza una búsqueda inversa con Ctrl- r, puede cambiar las direcciones con Ctrl- s. ¿Cuál es el análogo para Alt- .?)

Gavilán
fuente

Respuestas:

11

Si proporciona un argumento negativo para Alt- ., invierte la dirección. La forma más fácil de hacerlo (con las combinaciones de teclas estándar) es Alt- -(equivalente a un argumento de -1).

Así, después de una o más Alt- .las pulsaciones de teclas, presionando Alt- -hará que el próximo Alt- .para ir en la dirección inversa. (Simplemente ignore el cuadro de diálogo de argumento que aparece cuando presiona Alt- -.)

rici
fuente
1
No estoy seguro de lo que quieres decir exactamente. Al presionar Alt+ se -elimina la línea de comandos y se inserta en su (arg: -1)lugar. El comando en sí no ha cambiado.
Sparhawk
1
Thenext alt-. (con el -1 arg) irá hacia adelante.
Rici
¡Eso es genial! He editado la respuesta para hacerlo un poco más claro. ¿Qué hace alt+ -exactamente?
Sparhawk
1
@Sparhawk: como dije, alt -produce un argumento -1para el próximo comando readline. O, más precisamente, comienza un argumento negativo, entonces alt -, alt` 2produciría un argumento de -2. En el caso de alt ., solo importa el signo del argumento, y solo si es negativo, entonces alt -es suficiente. (El primero alt .maneja su argumento de manera diferente. Vea el manual de bash.)
rici
Gracias. A menudo encuentro un man bashpoco opaco para tales situaciones, pero creo que aquí se aclara un poco.
Sparhawk