Comment effacer / supprimer la ligne en cours dans le terminal?

Si j’utilise un terminal et que je tape une ligne de texte pour une commande, y a-t-il un raccourci clavier ou un moyen de supprimer / supprimer cette ligne?

Par exemple, si ma ligne / commande actuelle est quelque chose de très long comme:

> git log --graph --all --blah..uh oh i want to cancel and clear this line  

Y a-t-il un raccourci clavier ou une commande pour passer de ce qui précède à:

 > 

?

D’habitude, j’appuie sur la touche et si ma ligne actuelle est nouvelle sur l’histoire, cela effacera la ligne. Mais si je passe en revue l’historique de mes commandes via la touche et commence à éditer ou utiliser ces commandes, the ne changera que l’invite pour la commande la plus récente de l’historique.

Vous pouvez utiliser Ctrl + U pour effacer jusqu’au début.

Vous pouvez utiliser Ctrl + W pour supprimer juste un mot.

Vous pouvez également utiliser Ctrl + C pour annuler.

Si vous souhaitez conserver l’historique, vous pouvez utiliser Alt + Maj + # pour en faire un commentaire.


Bash Emacs Editing Mode Cheat Sheet

Juste pour résumer toutes les réponses

  • Nettoyer la ligne: Vous pouvez utiliser Ctrl + U pour effacer jusqu’au début.
  • Nettoyer la ligne: Ctrl + A Ctrl + K pour effacer la ligne en cours dans le terminal
  • Annuler la commande / ligne en cours: Ctrl + C.
  • Rappelez la commande supprimée: Ctrl + Y (puis Alt + Y )
  • Aller au début de la ligne: Ctrl + A
  • Aller à la fin de la ligne: Ctrl + E
  • Supprimez les mots en avant, par exemple, si vous êtes au milieu de la commande: Ctrl + K
  • Supprimer les caractères à gauche, jusqu’au début du mot: Ctrl + W
  • Pour effacer l’intégralité de l’invite de commande: Ctrl + L
  • Basculer entre le début de ligne et la position actuelle du curseur: Ctrl + XX

J’ai la liste complète des raccourcis:

  1. Ctrl + a Déplace le curseur au début de la ligne
  2. Ctrl + e Déplace le curseur à la fin de la ligne
  3. Ctrl + b Recule d’un caractère
  4. Alt + b Recule d’un mot
  5. Ctrl + f Avancer d’un caractère
  6. Alt + f Avancer d’un mot
  7. Ctrl + d Supprimer le caractère actuel
  8. Ctrl + w Couper le dernier mot
  9. Ctrl + k Couper tout après le curseur
  10. Alt + d Couper le mot après le curseur
  11. Alt + w Couper le mot avant le curseur
  12. Ctrl + y Colle la dernière commande supprimée
  13. Ctrl + _ Annuler
  14. Ctrl + u Couper tout avant le curseur
  15. Ctrl + x x Basculer entre la première position et la position actuelle
  16. Ctrl + l Effacer le terminal
  17. Ctrl + c Annule la commande
  18. Ctrl + r Commande de recherche dans l’historique – saisissez le terme de recherche
  19. Ctrl + j Termine la recherche à l’entrée de l’historique actuel
  20. Ctrl + g Annuler la recherche et restaurer la ligne d’origine
  21. Ctrl + n Prochaine commande de l’historique
  22. Ctrl + p commande précédente de l’historique

Ctrl + A , Ctrl + K pour effacer la ligne en cours dans le terminal. Vous pouvez ensuite le rappeler avec Ctrl + Y si vous en avez besoin.

ou si vous utilisez le mode vi, appuyez sur Esc suivi de cc

pour récupérer ce que tu viens d’effacer, Esc et p 🙂

Une alternative à Ctrl + A , Ctrl + K est Ctrl + E , Ctrl + U.

Je ne suis pas sûr que vous l’aimiez mais j’utilise Ctrl + A (pour commencer la ligne) et Ctrl + K (pour supprimer la ligne) J’étais familier avec ces commandes d’emacs et je les ai trouvées accidentellement.

  • Ctrl + u : déplacez- vous au début de votre ligne vers un tampon circulaire
  • Ctrl + k : déplacez- vous à la fin de votre ligne vers un tampon circulaire
  • Ctrl + w : déplace les caractères et les mots (multiples) laissés par le curseur vers un tampon en anneau

  • Ctrl + y : insère la dernière entrée de votre tampon circulaire et vous pouvez ensuite utiliser Alt + y pour effectuer une rotation dans votre tampon circulaire. Appuyez plusieurs fois sur pour continuer sur l’entrée “précédente” dans le tampon circulaire.

Ctrl + W efface le mot à gauche.

CTRL + R et commence à taper pour rechercher les commandes précédentes dans l’historique. Montrera des lignes complètes.
CTRL + R à nouveau pour faire un cycle.

Ajouter à la liste:

En mode Emacs, appuyez sur Échap , puis sur R , pour supprimer toute la ligne.

Je ne sais pas pourquoi, il arrive juste de le trouver. Peut-être que ce n’est pas utilisé pour la ligne de suppression mais que cela se produit avec le même effet. Si quelqu’un sait, s’il vous plaît dites-moi, merci 🙂

Fonctionne à Bash, mais ne fonctionnera pas dans Fish.

Pour supprimer toute la ligne, peu importe où se trouve le curseur, vous pouvez utiliser la commande kill-whole-line , mais celle-ci n’est pas liée par défaut. Il peut être lié, par exemple, à Ctrl + Alt + K en insérant

 "\e\Ck": kill-whole-line 

dans votre fichier d’initialisation Readline (conventionnellement ~/.inputrc ).

Remarques diverses:

  • Pour éviter de réatsortingbuer accidentellement une séquence de touches déjà utilisée pour autre chose, vous pouvez vérifier toutes vos liaisons avec bind -P . Vérifier la liaison suggérée avec

     bind -P | grep '\\e\\Ck' 
  • Le nom du fichier d’initialisation Readline est tiré de la variable shell INPUTRC . Si elle n’est pas définie, la valeur par défaut est ~/.inputrc ou (si cela n’existe pas) /etc/inputrc . Notez que si vous avez ~/.inputrc , /etc/inputrc sera ignoré.
  • Pour recharger votre fichier d’initialisation Readline, vous pouvez utiliser Ctrl + X Ctrl + R.
  • Liens vers les sections pertinentes du manuel:
    • Read Init Init File
    • Commandes de lecture et de mise à mort en ligne
    • Le bindin intégré