Al ingresar un comando que abarca varias líneas en Bash, ¿cómo edito las líneas anteriores? Soy un usuario de Linux Mint (Lisa) que usa el Terminal GNOME.
Por ejemplo, digamos que escribo:
$ echo "foo bar
> baz
>
Y luego, cuando estoy a punto de escribir la tercera línea del comando, de repente me doy cuenta de que quiero que "foo" y "bar" estén en líneas separadas. ¿Cómo reposicionaría mi cursor entre "foo" y "bar" para poder presionar enter y ponerlos en líneas separadas?
(No es fácil como podría pensar. La flecha hacia arriba no funciona, tampoco lo hace Ctrl-P. ¡Así que por favor, pruébelo antes de publicar! ¡Gracias!)
linux
bash
gnome
gnome-terminal
Asher Walther
fuente
fuente
Respuestas:
Eso, desafortunadamente, depende de
bash
, no a la terminal. Sus opciones son:Use punto y coma en lugar de líneas nuevas, aunque incluso así no puede subir una línea de pantalla a la vez, sino que debe usar 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 comando actual ). A vecesfc
(que te arroja a tu editor con el comando anterior) es la forma más fácil de manejar comandos compuestos.Si está utilizando Bash, use la siguiente combinación de teclas:
Se 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 del Shell Hater ). Los usuarios de Zsh tienen esta alternativa .
fuente
La solución es no ingresar nunca un comando hasta que la multilínea sea correcta, simplemente escriba: CtrlvCtrlj cuando desee pasar a la siguiente línea. Metabpara retroceder una palabra.
crédito a la respuesta de @ rici
fuente
Curiosamente, Ctrl+Ces lo que estás buscando.
cuando estas en
simplemente presione Ctrl+C(la línea de comando editada se suspenderá) y presione Up(anterior-historial). Su mensaje será: (tenga en cuenta la ausencia de>)
Ahora puedes moverte Left Rightincluso con saltos de línea.
Solo hay un capricho, debes estar en el último personaje para agregar otra línea, así que muévete para editar las líneas existentes (ve al principio Ctrl+A) y presiona Enter si es suficiente o ve al final ( Ctrl+E) para agregar más líneas Enter. Otro inconveniente es que Ctrl+_(deshacer) solo restaura los cambios del últimoCtrl+C
fuente
Copie los comandos y péguelos en el bloc de notas y luego formatee desde allí. Después de eso, puede copiar sus comandos nuevamente a la terminal.
fuente