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
команду, я спробував призначити слово "вбити слово"Ctrl+BckSpc
, набравшиstty werase
послідовно Ctrl-v Ctrl-Backspace. Це вставляє буквальний символ Ctrl-Backspace як аргумент дляstty werase
. На жаль,Ctrl-Backspace
для видалення цього слова він не потребує введення, але працює лише зBackspace
клавішею. Тому я хотів би віддати друге запит @terdon, щоб дізнатися, як це зробити. Щоб скинути значенняwerase
за замовчуванням, використовуйтеstty werase Ctrl-v Ctrl-w
.