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.
stty
lệnh tôi đã cố gán "kill word" choCtrl+BckSpc
bằng cách gõstty werase
theo 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ớiBackspace
phí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ạiwerase
mặc định, sử dụngstty werase Ctrl-v Ctrl-w
.