web-dev-qa-db-fra.com

Comment effacer / supprimer la ligne actuelle dans le terminal?

Si j'utilise terminal et saisis une ligne de texte pour une commande, existe-t-il un raccourci clavier ou un moyen d'effacer/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 <cursor is here now>

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

>

?

Habituellement je vais appuyer sur le  clé, et si ma ligne actuelle est une nouvelle sur l'histoire, ça va effacer. Mais si je consulte l’historique de mes commandes via le  touchez et commencez à éditer ou à utiliser ces commandes,  changera seulement l'invite à la prochaine commande la plus récente de l'histoire, donc cela ne fonctionnera pas ici à moins que j'appuie sur  plusieurs fois.

688
triad

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

Vous pouvez utiliser Ctrl+W supprimer juste un mot.

Vous pouvez aussi utiliser Ctrl+C annuler.

Si vous souhaitez conserver l'historique, vous pouvez utiliser Alt+Shift+# en faire un commentaire.


Aide-mémoire du mode d'édition de Bash Emacs

1282
kev

Juste pour résumer toutes les réponses:

  • Nettoyez la ligne: vous pouvez utiliser Ctrl+U pour effacer jusqu'au début.
  • Nettoyez la ligne: Ctrl+ECtrl+U pour effacer la ligne en cours dans le terminal
  • Nettoyez la ligne: Ctrl+ACtrl+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 (ensuite Alt+Y)
  • Aller au début de la ligne: Ctrl+A
  • Aller au bout de la ligne: Ctrl+E
  • Supprimez les mots suivants, par exemple, si vous êtes au milieu de la commande: Ctrl+K
  • Supprimez les caractères à gauche jusqu'au début du mot: Ctrl+W
  • Pour effacer toute votre invite de commande: Ctrl + L
  • Basculer entre le début de la ligne et la position actuelle du curseur: Ctrl + XX
516
J4cK

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 Reculer d'un personnage
  4. Alt+b Reculer 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 Tout couper 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 Coller la dernière commande supprimée
  13. Ctrl+_ annuler
  14. Ctrl+u Tout couper avant le curseur
  15. Ctrl+xx Basculer entre la première et la position actuelle
  16. Ctrl+l Effacer le terminal
  17. Ctrl+c Annuler la commande
  18. Ctrl+r Commande de recherche dans l'historique - tapez le terme de recherche
  19. Ctrl+j Terminer la recherche à l'entrée de l'historique en cours
  20. Ctrl+g Annuler la recherche et restaurer la ligne d'origine
  21. Ctrl+n Prochaine commande de l'histoire
  22. Ctrl+p commande précédente de l'historique
134
tharunkumar

Ctrl+ACtrl+K pour effacer la ligne en cours dans le terminal. Vous pouvez alors le rappeler avec Ctrl+Y si tu as besoin.

22
Spyros Mandekis

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

pour récupérer ce que vous venez d'effacer, Esc puis p :)

15
bluTaz

Une alternative à Ctrl+ACtrl+K est Ctrl+ECtrl+U.

10

Je ne sais pas si tu l'aimes mais j'utilise Ctrl+A (aller au début de la ligne) et Ctrl+K (pour supprimer la ligne) Je connaissais ces commandes d’emacs et je les ai découvertes accidentellement.

10
Muhammet Can
  • Ctrl+u: déplacer jusqu'au début de votre ligne vers un tampon en anneau
  • Ctrl+k: déplacer jusqu'à la fin de votre ligne vers un tampon en anneau
  • Ctrl+w: déplacer caractères et mots (multiples) laissés de votre curseur à un tampon en anneau

  • Ctrl+y: insère la dernière entrée de votre mémoire tampon et vous pouvez ensuite utiliser Alt+y faire pivoter votre tampon d'anneau. Appuyez plusieurs fois pour continuer avec l'entrée "précédente" dans le tampon de sonnerie.

6
Cyrus

CTRL+R et commencez à taper pour rechercher les commandes précédentes de l'historique. Montre les lignes complètes.
CTRL+R à nouveau pour faire du vélo.

4
Daniel

Ajouter à la liste:

En mode Emacs, appuyez sur Esc, suivi par R, supprimera toute la ligne.

Je ne sais pas pourquoi, il arrive juste de le trouver. Peut-être qu'il n'est pas utilisé pour la suppression, mais qu'il a le même effet. Si quelqu'un le sait, merci de me le dire, merci :)

Fonctionne à Bash, mais pas à Fish.

2
PickBoy

Afin de nettoyer toute la ligne (2 façons différentes):

  • Home , Ctrl+K
  • End , Ctrl+U
2
Jose1755

Pour supprimer la ligne entière où que se trouve le curseur, vous pouvez utiliser la commande kill-whole-line, mais elle est non liée par défaut. Il peut être lié à, par exemple, Ctrl+Alt+K en insérant

"\e\C-k": kill-whole-line

dans votre fichier d'initialisation Readline (habituellement ~/.inputrc).

Remarques diverses:

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

    bind -P | grep '\\e\\C-k'
    
  • Le nom du fichier d'initialisation Readline provient de la variable shell INPUTRC. S'il n'est pas défini, 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+XCtrl+R.
  • Liens vers les sections pertinentes du manuel:
2
Benjamin W.

Ctrl + W effacera la Parole à gauche.

2
bendangelo