Je comprends que je peux taper \
enterà la fin d'une bash
ligne de commande pour continuer cette commande sur une autre ligne. Mais comment puis-je diviser une ligne de commande d' invite - qui a déjà été entièrement tapée - en deux?
Par exemple, comment puis-je casser cette ligne juste avant then
sans avoir à couper le reste et à le taper à nouveau?
$ if true; then ls; fi
fc
commande - elle est disponible dans presque tous les shells.Réponses:
Un caractère de nouvelle ligne est LF (line feed), alias Control-J. Si vous appuyez sur Ctrl+ J, cela exécute la commande
accept-line
, comme la Returntouche. Pour insérer un caractère LF littéral, appuyez sur Ctrl+ V Ctrl+ J. La commande Ctrl+ V(quoted-insert
) insère littéralement le caractère suivant. Ainsi, pour diviser une ligne, vous pouvez entrer \ Ctrl+ V.Si vous le faites souvent, vous pouvez en faire une macro:
la source
Vous pouvez utiliser
edit-and-execute-command
, généralement mappé à Ctrl+ x+ e, pour ouvrir la commande actuelle dans un éditeur . En quittant l'éditeur, la commande sera exécutée.la source
vim
à la mienne comme ceci:export EDITOR=vim
.:q!
ouZQ
mais en vain.ggdG:wq
ou:%d|wq
, etc.). La commande restera dans l'historique (peut-être en double si vous l'avez rappelée d'une entrée précédente), mais elle ne sera pas exécutée.Remarque - cette réponse spécifique à vi et vim
Pour modifier la ligne tapée actuelle, appuyez sur
ESC
(pour entrer en mode de commandevi
ouvim
), puis tapezv
ouvi
.Notez que toutes les commandes d'édition de vi / vim fonctionnent. par exemple
ESC
+A
met à la fin de la ligne tapée actuelle.ESC
+0
place le curseur au début de la ligne.la source
CTRL
+v
puisCTRL
+j
pour lancer une nouvelle ligne devrait fonctionner.