Quel est le raccourci clavier opposé à Ctrl + k?

12

Ctrl+ Ksupprime le reste de la ligne dans une ligne de commande UNIX. Comment supprimer tout le texte avant le curseur?

syntagme
la source

Réponses:

15

Utilisez Ctrl+ u:

De la bashdocumentation, Killing And Yanking :

rejet de ligne unix (Cu)

Tuez en arrière du curseur au début de la ligne actuelle.

Ctrl+ uComportement qui ont non seulement contrôlé par les obus leur propre éditeur de ligne comme bash, zsh, tcsh, sh -o emacs, mais aussi par la discipline de ligne du pilote de terminal en mode canonique (comme dans cat, ou implémentations de base de sh/ kshen l' absence de ligne éditeur est activé ). Ainsi, cela fonctionne partout.

Vous pouvez vérifier la discipline de ligne du pilote de terminal à l'aide stty -a(ou stty -everythingdans le système BSD):

$ stty -a
speed 38400 baud; rows 24; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?;
swtch = M-^?; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;
lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread -clocal -crtscts
-ignbrk brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
-iuclc ixany imaxbel iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke
cuonglm
la source
1
"Cela ne fonctionne que si votre shell prend en charge le mode d'édition Readline Emacs". C'est faux. ^uest géré par la discipline de ligne TTY (tant que le TTY est en mode d'entrée de ligne, par opposition au mode d'entrée de caractères). Ainsi, cela fonctionne partout. Voir man sttyet chercher kill CHAR. De plus, je garde mon shell en vi-mode, et ça marche là aussi.
Patrick
@Patrick: Je ne sais pas à ce sujet, supprimez cette mauvaise partie.
cuonglm
1
Notez que, comme je l'ai dit, ne ^Utue au début de la ligne qu'en lecture / bash , pas dans les autres shells.
Stéphane Chazelas
1
@ StéphaneChazelas: Dans bash, ^Ktue aussi jusqu'à la fin du buffer, donc je pense que ^Uc'est l'inverse?
cuonglm
1
En effet, désolé. Notez que ^Kc'est kill-linedonc un peu trompeur. Notez qu'il y a aussi une backward-kill-lineborne ^X^?(qui tue également plus d'une ligne).
Stéphane Chazelas