Ответы:
Используйте Ctrl+ u:
Из bash
документации, Убийство И Янкинг :
unix-line-discard (Cu)
Убить назад от курсора до начала текущей строки.
Ctrl+ uПоведение не только контролируется оболочками , которые имеют свой собственный редактор строки , как bash
, zsh
, tcsh
, sh -o emacs
, но и по линии дисциплине драйвера терминала , когда в каноническом режиме (как в cat
, или основных реализациях sh
/ , ksh
когда ни одна строки редактор не включен ). Таким образом, это работает везде.
Вы можете проверить линейную дисциплину драйвера терминала, используя stty -a
(или stty -everything
в системе 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
^U
убивает до начала строки только в readline / bash , а не в других оболочках.
bash
, ^K
также убивает до конца буфера, так что я думаю ^U
, что наоборот?
^K
это kill-line
так , что это немного вводит в заблуждение. Обратите внимание, что есть также backward-kill-line
граница ^X^?
(которая также убивает более одной строки).
^u
управляется линейной дисциплиной TTY (пока TTY находится в режиме линейного ввода, в отличие от режима ввода символов). Таким образом, это работает везде. Смотриman stty
и ищиkill CHAR
. Также я держу свою оболочку в режиме vi, и она там тоже работает.