Lorsque vous entrez une commande qui s'étend sur plusieurs lignes dans Bash, comment puis-je modifier les lignes précédentes? Je suis un utilisateur de Linux Mint (Lisa) utilisant GNOME Terminal.
Par exemple, disons que je tape:
$ echo "foo bar
> baz
>
Et puis quand je suis sur le point de taper la troisième ligne de la commande, réalisez soudain que je veux que "foo" et "bar" soient sur des lignes séparées. Comment pourrais-je repositionner mon curseur entre "foo" et "bar" de telle sorte que je puisse appuyer sur Entrée et les mettre sur des lignes séparées?
(Ce n'est pas facile comme vous pourriez le penser. La flèche vers le haut ne fonctionne pas, pas plus que Ctrl-P. Alors s'il vous plaît, essayez-le avant de poster! Merci!)
linux
bash
gnome
gnome-terminal
Asher Walther
la source
la source
Réponses:
Malheureusement, cela ne dépend
bash
pas du terminal. Vos options sont:Utilisez des points-virgules au lieu des sauts de ligne, même si vous ne pouvez pas remonter une ligne d'écran à la fois mais devez utiliser des commandes de mouvement de caractères ou de mots. (Curieusement,
zsh
au moins vous permet de vous déplacer dans une commande composée lors de la modification de l'historique, mais pas dans la commande actuelle .) Parfoisfc
(qui vous lance dans votre éditeur avec la commande précédente) est le moyen le plus simple de gérer les commandes composées.Si vous utilisez Bash, utilisez la combinaison de touches suivante:
Il ouvrira la commande sur laquelle vous travaillez en utilisant votre éditeur de texte. Enregistrez le fichier et quittez. (J'ai trouvé la commande sur la présentation de Shell Hater .) Les utilisateurs de Zsh ont cette alternative .
la source
La solution est de ne jamais entrer de commande tant que la multiligne n'est pas correcte, il suffit de taper: CtrlvCtrlj quand vous voulez passer à la ligne suivante. Metabrevenir en arrière.
crédit à la réponse de @ rici
la source
Curieusement, Ctrl+Cc'est ce que vous recherchez.
quand tu es
appuyez simplement sur Ctrl+C(la ligne de commande modifiée sera suspendue) et appuyez sur Up(historique précédent). Votre invite sera: (notez l'absence de>)
Vous pouvez maintenant vous déplacer avec des Left Rightsauts de ligne réguliers.
Il n'y a qu'une bizarrerie, vous devez être sur le dernier caractère pour ajouter une autre ligne, alors déplacez-vous pour éditer les lignes existantes (allez pour commencer Ctrl+A) une presse Enter si cela suffit ou allez à la fin ( Ctrl+E) pour ajouter plus de lignes avec Enter. Un autre inconvénient est que Ctrl+_(annuler) ne restaure que les modifications de la dernièreCtrl+C
la source
Copiez les commandes et collez-les dans le bloc-notes, puis formatez-les à partir de là. Après cela, vous pouvez recopier vos commandes sur le terminal.
la source