เมื่อต้องการตรวจจับการโยง readline ที่ฆ่าคำย้อนหลังตามที่คุณต้องการคุณสามารถใช้คำสั่งต่อไปนี้ในเทอร์มินัลของคุณ:
bind -p | awk '/kill/ && /word/ && /backward/'
ในการติดตั้งเริ่มต้นของ Ubuntu ผลลัพธ์อาจเป็น:
"\e\C-h": backward-kill-word
# shell-backward-kill-word (not bound)
บรรทัดที่สองดูเหมือนจะไม่มีความสำคัญในจุดนี้ดังนั้นให้เราลองดูว่าบรรทัดแรกหมายถึงอะไร จากสิ่งที่ฉันเข้าใจbackward-kill-word
ฟังก์ชั่นที่ ReadLine ซึ่งในความเป็นจริงลบตัวอักษรทั้งหมดจนกว่าตัวละครพิเศษก่อนหน้า ( /
, ;
, ,
ฯลฯ ) ถูกผูกไว้กับ\e\C-h
ลำดับที่สำคัญ ขณะนี้ในลำดับนี้\e
แสดงให้เห็นถึงEscสำคัญ\C
- The Ctrlสำคัญและ\C-h
ยืนสำหรับCtrl+ hซึ่งเทียบเท่าในกรณีนี้ด้วยBackspaceที่สำคัญ
ดังนั้นคุณกำลังค้นหาEsc+ Ctrl+hแป้นพิมพ์ลัดซึ่งเทียบเท่ากับEsc+Backspaceและเนื่องจากพฤติกรรมของ xterm ที่ทำให้Altคีย์เพื่อทำหน้าที่เป็นอักขระเมตาและอักขระเมตาจะถูกแปลงเป็นลำดับสองอักขระโดยมีตัวอักขระนำหน้าด้วยEsc(ดูman xterm
)เทียบเท่ากับ+AltBackspace
ทีนี้ถ้าคุณไม่ชอบมันและลืมไปเรื่อย ๆ คุณสามารถใช้คำสั่งต่อไปนี้เพื่อสร้างทางลัดใหม่ให้พูดEsc+ wเพื่อจุดประสงค์ของคุณ:
bind '"\ew": backward-kill-word'
ในการทำให้ทางลัดใหม่นี้คงอยู่ตลอดเวลาสำหรับคำสั่งทั้งหมดที่ใช้ readline ให้เพิ่มบรรทัดบรรทัดต่อไปนี้ใน~/.inputrc
ไฟล์ของคุณ:
"\ew": backward-kill-word
ดูhelp -m bind | sensible-pager
ข้อมูลเพิ่มเติม
alt
+.
?