ctrlwlà "tiêu diệt từ" tiêu chuẩn (aka werase).
ctrluGiết chết cả dòng ( kill).
Bạn có thể thay đổi chúng với 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$
Lưu ý rằng người ta không phải đặt ký tự điều khiển thực tế trên dòng, stty hiểu cách đặt ^và sau đó là ký tự bạn sẽ đánh với điều khiển.
Sau khi làm điều này, nếu tôi nhấn ctrlpnó sẽ xóa một từ khỏi dòng. Và nếu tôi đánh ctrla, nó sẽ xóa toàn bộ dòng.
sttylệnh tôi đã cố gán "kill word" choCtrl+BckSpcbằng cách gõstty werasetheo sau là Ctrl-v Ctrl-Backspace. Điều này chèn ký tự Ctrl-Backspace theo nghĩa đen làm đối số chostty werase. Thật không may, nó không yêu cầu gõCtrl-Backspaceđể xóa từ mà chỉ hoạt động vớiBackspacephím. Vì vậy, tôi muốn thứ hai yêu cầu của @terdon để tìm hiểu làm thế nào để làm điều này. Để đặt lạiwerasemặc định, sử dụngstty werase Ctrl-v Ctrl-w.