ดูเหมือนว่าctrl+ Wลบไปข้างหลังทีละคำ เยี่ยมมาก แต่ฉันชอบที่มันใช้กับctrl+ ได้backspaceเหมือนแอพอื่น ๆ ส่วนใหญ่
วิธีที่ดีที่สุดในการทำเช่นนี้คืออะไร? ฉันต้องการเปลี่ยนแปลงเพื่อให้มีผลกับคำสั่ง gnome-terminal, command line vim และ GUI vim
ดูเหมือนว่าctrl+ Wลบไปข้างหลังทีละคำ เยี่ยมมาก แต่ฉันชอบที่มันใช้กับctrl+ ได้backspaceเหมือนแอพอื่น ๆ ส่วนใหญ่
วิธีที่ดีที่สุดในการทำเช่นนี้คืออะไร? ฉันต้องการเปลี่ยนแปลงเพื่อให้มีผลกับคำสั่ง gnome-terminal, command line vim และ GUI vim
คำตอบ:
โปรดทราบว่าสิ่งนี้จะทำงานในเทอร์มินัลและโหมด emacs เริ่มต้น (ซึ่งคุณกำลังใช้หากCtrl+ Wลบคำก่อนหน้าสำหรับคุณ) มันจะไม่ทำงานในโหมด vi ของ bash และจะไม่ส่งผลกระทบต่อ vi / vim เอง นี่เป็นเพียงคำตอบบางส่วนเท่านั้น แต่ผู้ใช้ emacs ที่ดีที่สุดสามารถให้ได้
เรียงลำดับของสิ่งนี้มีการจัดการโดยห้องสมุดที่มีพฤติกรรมสามารถควบคุมผ่านทางreadline
~/.inputrc
แก้ไข (หรือสร้างหากไม่มี) ~/.inputrc
และเพิ่มบรรทัดนี้:
"\C-H":"\C-W"
ตอนนี้เปิดเทอร์มินัลใหม่และควรจะทำงาน
\C-H
เป็นจริง+Control BackSpaceคุณสามารถดูรหัสได้โดยกดCtrl+ Vจากนั้นกุญแจที่คุณอยู่หลังจากนั้น คุณจะเห็นว่าผลตอบแทนBackSpace^H
ตอนนี้มันควรจะเป็นไปได้ที่จะผูกControl+ BackSpaceฟังก์ชั่นทุบตีที่ลบคำก่อนหน้า ( backward-kill-word
หรือunix-word-rubout
) "\C-H": backward-kill-word
โดยใช้ อย่างไรก็ตามฉันไม่สามารถทำงานได้ มันทำงานได้ดีอย่างสมบูรณ์กับปุ่มที่แตกต่างกัน ( "\C-E": backward-kill-word
เช่นทำให้Ctrl+ Eลบคำก่อนหน้า) แต่ด้วยเหตุผลบางอย่างฉันไม่สามารถใช้มันBackSpaceได้
ดังนั้นเพื่อเป็นวิธีแก้ปัญหาเราเพิ่งแม็พCtrl+ BackspaceกับCtrl+ Wซึ่งแมปไปbackward-kill-word
แล้ว ดังนั้นเมื่อคุณกดCtrl+ Backspaceที่จะได้รับการแปลเป็นภาษาCtrl+ ซึ่งในที่สุดก็จะส่งW backward-kill-word
ฉันมีความคิดสำหรับวิธีแก้ปัญหานี้จากโพสต์ SUนี้
จนกระทั่งเมื่อไม่นานมานี้ gnome-terminal ได้ปล่อยรหัสเดียวกันBackspaceและCtrl+ Backspaceดังนั้นคุณจึงไม่สามารถแยกความแตกต่างทั้งสองอย่างในใบสมัครของคุณ
นี่ได้รับการแก้ไขใน vte-0.42 ซึ่งเป็นส่วนหนึ่งของ Gnome 3.18 ที่เปิดตัวในฤดูใบไม้ร่วงนี้
หากคุณกำลังใช้เจ้าเล่ห์คุณสามารถค้นหาการปรับปรุงแพคเกจในGnome3 การแสดงละคร
ใช้Alt+ Backspaceแทน: มันทำงานเหมือนกับCtrl+ Backspaceและไม่ต้องการการกำหนดค่าใด ๆ
มันทำงานบนเครื่องของฉัน เพียงให้แน่ใจว่าคุณใช้ tmux จาก master และ nvim จาก linuxbrew และ control + backspace ทำงานใน bash และ vim ด้วย!
(รับ bash จาก linuxbrew ด้วย)