ctrlwстандартное слово "убить слово" (иначе werase
).
ctrluубивает всю линию ( kill
).
Вы можете изменить их с помощью stty
.
-bash-4.2$ stty -a
speed 38400 baud; 24 rows; 80 columns;
lflags: icanon isig iexten echo echoe -echok echoke -echonl echoctl
-echoprt -altwerase -noflsh -tostop -flusho pendin -nokerninfo
-extproc -xcase
iflags: -istrip icrnl -inlcr -igncr -iuclc ixon -ixoff ixany imaxbel
-ignbrk brkint -inpck -ignpar -parmrk
oflags: opost onlcr -ocrnl -onocr -onlret -olcuc oxtabs -onoeot
cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -mdmbuf
cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = <undef>;
eol2 = <undef>; erase = ^?; intr = ^C; kill = ^U; lnext = ^V;
min = 1; quit = ^\; reprint = ^R; start = ^Q; status = <undef>;
stop = ^S; susp = ^Z; time = 0; werase = ^W;
-bash-4.2$ stty werase ^p
-bash-4.2$ stty kill ^a
-bash-4.2$
Обратите внимание, что не обязательно помещать фактический управляющий символ в строку, stty понимает, что ^
нужно поставить, а затем символ, который вы бы нажали с помощью элемента управления.
После этого, если я нажму, ctrlpоно сотрет слово со строки. И если я нажму ctrla, он сотрет всю строку.
stty
команду, я попытался назначить слово «kill»Ctrl+BckSpc
, набрав,stty werase
а затем Ctrl-v Ctrl-Backspace. Это вставляет буквенный символ Ctrl-Backspace в качестве аргумента дляstty werase
. К сожалению,Ctrl-Backspace
для удаления слова не требуется набирать текст, а работает только сBackspace
ключом. Поэтому я хотел бы поддержать запрос @terdon, чтобы узнать, как это сделать. Чтобы восстановить значениеwerase
по умолчанию, используйтеstty werase Ctrl-v Ctrl-w
.ctrl-backspace
. Backspace обычно отправляется либо как, либо , так илиctrl-h
иначеctrl-?
, такctrl-backspace
или иначеctrl-ctrl-backspace
. Я пытался выяснить, было ли отправлено что-то другое, но по крайней мере, putty просто отправляет backspace при вводеctrl-backspace
.Вы также можете сделать это с CtrlW.
Другой вариант - установить собственный ярлык, но это будет зависеть от используемого вами эмулятора терминала. Для,
xterm
и,rxvt
возможно, для других, добавьте эту строку к себе~/.inputrc
(создайте файл, если он не существует):gnome-terminal
и похоже, что AltBackspaceпо умолчанию, но, видимо, вам нужно патчreadline()
для того, чтобы получить CtrlBackspace.Также см:
konsole
источник
Alt+ Backspaceу меня работает в bash и zsh.
источник
Ctrl+W
его использование удаляет весь URL-адрес, в то время какAlt+Backspace
удаляет слово, и прекращает удаление при обнаружении специального символа.ctrl-y
дернуть / отменить / вставить.На Mac вы можете использовать:
Fn+Delete
источник