En Bash (terminal de terminal de Mac / Linux), ¿se puede hacer que las teclas de flecha arriba y abajo funcionen como lo hacen en los editores de texto?

8

En los editores de texto, si presiono las teclas de flecha arriba y abajo, mueve el cursor entre líneas de texto.

En Bash, si estoy escribiendo un comando largo que abarca varias líneas y presiono las teclas de flecha arriba y abajo, se desplaza por el historial de comandos.

Quiero el comportamiento anterior en Bash. es posible? Si no, ¿hay alguna forma de mover el cursor directamente hacia arriba o hacia abajo en un comando de varias líneas?

Frungi
fuente
Se mueven entre líneas ... solo que la línea es muy larga.
vonbrand

Respuestas:

11

No, no es posible. Bash usa GNU Readline para manejar la entrada de línea interactiva. No hay ningún comando en Readline que se mueva entre las líneas de visualización como desee, ni hay una variable de configuración comparable a la variable visual de movimiento de línea de GNU Emacs que hace que la línea siguiente y la línea anterior se muevan por líneas de visualización.

Kyle Jones
fuente
Decepcionante, pero gracias! Y creo que las respuestas a otra pregunta serían útiles para las personas con esta misma pregunta: stackoverflow.com/questions/657130/…
Frungi
5

Lo que hago es presionar CTRL + Flecha izquierda y saltará a la primera letra después del último espacio encontrado. Al hacerlo, puede llegar rápidamente a donde lo necesita.

chrstphrmllr
fuente
1
Esa es una combinación de teclas no estándar. La combinación de teclas estándar para retroceder una palabra es Alt + b. Ver cnswww.cns.cwru.edu/php/chet/readline/rluserman.html#SEC5
sleske
3

Tal vez estás buscando algo como xiki. Es como un editor de shell / texto.

Aquí hay una demostración de video: http://youtu.be/bUR_eUVcABg

jason
fuente
¡Xiki se ve increíble! Quiero algo así que pueda ejecutarse en Windows ...
Max
2
@Max según la página de proyectos de Github, "Acabamos de parchear el4r, por lo que existe la posibilidad de que Xiki funcione en Windows". Puede consultarlo aquí: github.com/trogdoro/xiki
jason
Esto es sorprendentemente ordenado y nerd, pero realmente no es lo que quería hacer. Solo quería usar Bash o algún otro shell común. Gracias, sin embargo!
Frungi
3

Puede usar Ctrl+ Lefty Ctrl+ Rightpara navegar a través de palabras en lugar de caracteres, Homey Endpara ir al principio y al final del comando escrito.

Sekhemty
fuente
2
Además, Ctrl + A para ir al principio y Ctrl + E para ir al final
ignis
1
@ignis deberías poner eso en una respuesta.
evilsoup
2

Consulte también la página de bash(1)manual en la Commands for Movingsección de encabezado para ver otros accesos directos de navegación.

Nevin Williams
fuente
1

Ctrl + A para ir al principio y Ctrl + E para ir al final del comando.

ignis
fuente