Si j'utilise un terminal et que je tape une ligne de texte pour une commande, existe-t-il un raccourci clavier ou un moyen de supprimer / supprimer cette ligne?
Par exemple, si ma ligne / commande actuelle est quelque chose de vraiment long comme:
> git log --graph --all --blah..uh oh i want to cancel and clear this line <cursor is here now>
Existe-t-il un raccourci clavier ou une commande pour passer de ce qui précède à:
>
?
Habituellement, j'appuie sur la ↓touche, et si ma ligne actuelle est une toute nouvelle sur l'historique, cela l'effacera. Mais si je passe en revue mon historique de commandes via la ↑touche et commencez à modifier ou à utiliser ces commandes, ↓ne changera l'invite que par la prochaine commande la plus récente de l'historique, donc cela ne fonctionnera pas ici sauf si j'appuie ↓plusieurs fois.
Réponses:
Vous pouvez utiliser Ctrl+ Upour effacer jusqu'au début.
Vous pouvez utiliser Ctrl+ Wpour supprimer juste un mot.
Vous pouvez également utiliser Ctrl+ Cpour annuler.
Si vous souhaitez conserver l'historique, vous pouvez utiliser Alt+ Shift+ #pour en faire un commentaire.
Aide-mémoire du mode d'édition de Bash Emacs
la source
<kbd>...</kbd>
balise pour afficher les clés dans SO.ESC
est sa propre touche de modification en bash. Il est utilisé pour des choses comme l'annulation de la navigation dans l'historique (CTRL
+r
) ou l'échange des deux derniers mots derrière le curseur (ESC
+t
).Juste pour résumer toutes les réponses:
la source
Alt + D
Alt
+D
ne fonctionne pas c'est pourquoi je ne l'ai pas inclus :(CTRL + L
efface l'écran mais conserve ce qui a été tapé dans la ligne de commande actuelle.Ctrl + Alt + >
passe à la fin de l'historique d'entrée, ce qui est parfait lorsque vous souhaitez annuler la recherche dans l'historique.J'ai la liste complète des raccourcis:
la source
CTRL
+L
(16.) préserve le contenu de la ligne de commande actuelle.Ctrl
+h
: supprimer le caractère devant le curseurCtrl+ A, Ctrl+ Kpour effacer la ligne actuelle dans le terminal. Vous pouvez ensuite le rappeler avec Ctrl+ Ysi vous en avez besoin.
la source
ou si vous utilisez le mode vi, appuyez sur Escsuivi decc
pour récupérer ce que vous venez d'effacer, Escpuis p:)
la source
echo 'set editing-mode vi' >> ~/.inputrc
.Je ne sais pas si vous l'aimez mais j'utilise Ctrl+ A(pour commencer la ligne) et Ctrl+ K(pour supprimer la ligne) Je connaissais ces commandes d'emacs et je les ai trouvées accidentellement.
la source
Une alternative à Ctrl+ A, Ctrl+ Kest Ctrl+ E, Ctrl+ U.
la source
Ctrl+ w: déplacez les caractères et (plusieurs) mots vers la gauche de votre curseur vers un tampon circulaire
Ctrl+ y: insérez la dernière entrée de votre tampon en anneau, puis vous pouvez utiliser Alt+ ypour faire pivoter votre tampon en anneau. Appuyez plusieurs fois pour continuer à l'entrée "précédente" dans le tampon en anneau.
la source
CTRL+ Ret commencez à taper pour rechercher les commandes précédentes dans l'historique. Affiche les lignes complètes.
CTRL+ à Rnouveau pour faire un cycle.
la source
Ctrl + W effacera le mot à gauche.
la source
Ajouter à la liste:
En mode Emacs, appuyez sur Esc, puis sur 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 supprimer la ligne mais qu'il a le même effet. Si quelqu'un le sait, dites-le moi, merci :)
Fonctionne dans Bash, mais ne fonctionnera pas dans Fish.
la source
revert-line
commande readline: "Annuler toutes les modifications apportées à cette ligne". Il est lié, par défaut, àM-r
(Meta-R), qui peut être à la fois Alt-R ou Esc R. Cela signifie qu'il ne supprime pas réellement la ligne, uniquement lorsqu'elle était vide pour commencer; si vous faites défiler en arrière dans votre historique de commandes et modifiez une commande, puis exécutezrevert-line
, elle reviendra à la commande à l'origine et ne supprimera pas la ligne.Pour supprimer la ligne entière, peu importe où se trouve le curseur, vous pouvez utiliser la
kill-whole-line
commande, mais elle n'est pas liée par défaut. Il peut être lié à, par exemple, Ctrl+ Alt+ Ken insérantdans votre fichier init Readline (conventionnellement
~/.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 avecINPUTRC
. 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 l'avez~/.inputrc
,/etc/inputrc
sera ignoré.bind
intégréla source
Afin de nettoyer toute la ligne (2 manières différentes):
la source
Alt+ #commente la ligne actuelle. Il sera disponible dans l'historique si nécessaire.
la source