Eso, lamentablemente, depende de bash
, no a la terminal. Sus opciones son:
-
Utilice puntos y comas en lugar de saltos de línea, aunque incluso así no puede subir una línea de pantalla a la vez, sino que debe utilizar comandos de movimiento de caracteres o palabras. (Curiosamente,
zsh
al menos te permite moverte dentro de un comando compuesto al editar el historial, pero no dentro del actual comando.) A vecesfc
(que lo lanza a su editor con el comando anterior) es la forma más fácil de manejar comandos compuestos. -
Si está usando Bash, use la siguiente combinación de teclas:
ctrl x e
Abrirá el comando en el que está trabajando usando su editor de texto. Guarde el archivo y salga. (Encontré el comando en la presentación de Shell Hater). Los usuarios de Zsh tienen esta alternativa.
La solución es nunca ingresar un comando hasta que la línea múltiple sea correcta, simplemente escriba:Ctrl v Ctrl j cuando desee pasar a la siguiente línea. Meta b retroceder una palabra.
crédito a la respuesta de @rici
Curiosamente, Ctrl+C es lo que buscas.
cuando estás en
$ echo "foo bar
> baz
>
simplemente presione Ctrl+C (la línea de comando editada se suspenderá) y presione Arriba (historia-anterior). Su indicación será:(tenga en cuenta la ausencia de>)
$ echo "foo bar
baz
Ahora puedes moverte con Izquierda Derecho incluso a través de saltos de línea.
Solo hay una peculiaridad, debe estar en el último carácter para agregar otra línea, así que muévase para editar las líneas existentes (vaya a comenzar con Ctrl+A ) y presione Enter si eso es suficiente o ir al final (Ctrl+E ) para agregar más líneas con Enter . Otro inconveniente es que Ctrl+_ (deshacer) solo restaura los cambios desde el último Ctrl+C