Raccourci clavier pour stocker la commande tapée et nettoyer la ligne

12

Vous connaissez la situation: vous êtes à mi-chemin de la saisie d'une longue commande (par exemple un message de validation) et vous réalisez que vous avez oublié d'exécuter une commande préalable qui ne peut pas être ajoutée avec &&. Normalement, lorsque cela m'arrive, je sélectionne ce que j'ai tapé avec la souris, le copie dans le presse-papiers, appuie sur Ctrl-U pour effacer la ligne, exécute ma commande prérequise et colle le presse-papiers. Mais peut-être existe-t-il un meilleur moyen, de préférence sans avoir besoin d'utiliser la souris? Je recherche des solutions pour bash et / ou zsh.

chiborg
la source

Réponses:

20

Après avoir utilisé CTRL-U, vous pouvez utiliser CTRL-Y pour coller ce que vous avez effacé. Cela fonctionne aussi après avoir effacé un mot ou un certain nombre de mots avec CTRL-W.

Notez que vous n'avez pas vraiment besoin de copier quoi que ce soit dans le presse-papiers ou de le sélectionner avec la souris - CTRL-U tire en fait la ligne vers un presse-papiers séparé, pour ainsi dire.

Eduardo Ivanec
la source
5

Ajoutez un «#» au début de votre ligne actuelle. Appuyez sur Entrée pour ajouter le commentaire à votre historique. Exécutez la commande prérequise. Remontez à la commande précédente et supprimez le #.

glenn jackman
la source
5

Cela a été récemment demandé et discuté sur le site Unix et Linux de SE. Ma réponse a expliqué que si vous utilisez zsh comme shell, vous pouvez utiliser la fonction de ligne de commande pour cacher votre commande en cours, exécuter autre chose, puis votre première commande reviendra et vous pourrez la terminer. Dans .zshrc:

bindkey '^L' push-line

Utilisez ensuite Ctrl+ Lpour suspendre la commande en cours et y revenir après avoir exécuté autre chose.

Plusieurs autres réponses ont été données, y compris des paramètres sur la façon de faire quelque chose de similaire dans bash et certaines versions personnalisées de ce intégré dans zsh.

Caleb
la source
0

Vous pouvez faire Shift-Alt-3pour commenter la ligne actuelle et passer à la suivante. Ensuite , vous appuyez sur up, Ctrl-e, Delet tadam!

MInner
la source