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
J’ai la liste complète des raccourcis:
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 + 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'
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é.