Entiendo que puedo escribir \
enteral final de una bash
línea de comando para continuar ese comando en otra línea. Pero, ¿cómo puedo dividir una línea de comando de solicitud , que ya se ha escrito completamente, en dos?
Por ejemplo, ¿cómo puedo romper esta línea justo antes then
sin tener que cortar el resto y escribirlo de nuevo?
$ if true; then ls; fi
fc
comando: está disponible en casi todos los shells.Respuestas:
Un carácter de nueva línea es LF (avance de línea), también conocido como Control-J. Si presiona Ctrl+ J, esto ejecuta el comando
accept-line
, igual que la Returntecla. Para insertar un carácter LF literal, presione Ctrl+ V Ctrl+ J. El comando Ctrl+ V(quoted-insert
) inserta el siguiente carácter literalmente. Por lo tanto, para dividir una línea, puede ingresar \ Ctrl+ V.Si haces esto a menudo, puedes convertirlo en una macro:
fuente
Puede usar
edit-and-execute-command
, generalmente asignado a Ctrl+ x+ e, para abrir el comando actual en un editor . Al salir del editor, se ejecutará el comando.fuente
vim
a la mía, así:export EDITOR=vim
.:q!
o no,ZQ
pero fue en vano.ggdG:wq
o:%d|wq
, etc.). El comando permanecerá en el historial (posiblemente como un duplicado si lo recuperó de una entrada anterior), pero no se ejecutará.Nota: esta respuesta es específica para vi y vim
Para editar la línea mecanografiada actual, golpeó
ESC
(para entrar envi
ovim
modo de comando), a continuación, escribav
ovi
.Tenga en cuenta que todos los comandos de edición vi / vim funcionan. p.ej
ESC
+A
pone al final de la línea escrita actual.ESC
+0
coloca el cursor al comienzo de la línea.fuente
CTRL
+v
luegoCTRL
+j
para lanzar una nueva línea debería funcionar.