ctrlwคือมาตรฐาน "คำฆ่า" (aka 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 word" ให้Ctrl+BckSpc
โดยพิมพ์stty werase
ตามด้วย Ctrl-v Ctrl-Backspace นี้แทรกตัวอักษรตัวอักษร Ctrl-Backspacestty werase
เป็นอาร์กิวเมนต์สำหรับ น่าเสียดายที่มันไม่จำเป็นต้องพิมพ์Ctrl-Backspace
เพื่อลบคำ แต่ทำงานได้ด้วยBackspace
ปุ่มเพียงปุ่มเดียว ดังนั้นฉันต้องการที่สองคำขอของ @terdon เพื่อเรียนรู้วิธีการทำเช่นนี้ การตั้งค่าที่จะเริ่มต้นการใช้งานwerase
stty werase Ctrl-v Ctrl-w