รับ <ctrl> + <backspace> เพื่อลบคำในโหมด gnome-terminal และ vim insert


11

ดูเหมือนว่าctrl+ Wลบไปข้างหลังทีละคำ เยี่ยมมาก แต่ฉันชอบที่มันใช้กับctrl+ ได้backspaceเหมือนแอพอื่น ๆ ส่วนใหญ่

วิธีที่ดีที่สุดในการทำเช่นนี้คืออะไร? ฉันต้องการเปลี่ยนแปลงเพื่อให้มีผลกับคำสั่ง gnome-terminal, command line vim และ GUI vim


1
ในกลุ่มคุณสามารถกด D แล้ว B และมันจะทำสิ่งเดียวกัน อย่างไรก็ตามฉันพลาดฟีเจอร์นี้ในเทอร์มินัลเพราะคุณต้องออกไปและมันไม่ทำงานในขณะที่ทำงานในโหมดแทรก เคล็ดลับที่ยอดเยี่ยมสำหรับ CTRL + W.
mchid

คำตอบ:


8

โปรดทราบว่าสิ่งนี้จะทำงานในเทอร์มินัลและโหมด 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นี้


4

จนกระทั่งเมื่อไม่นานมานี้ gnome-terminal ได้ปล่อยรหัสเดียวกันBackspaceและCtrl+ Backspaceดังนั้นคุณจึงไม่สามารถแยกความแตกต่างทั้งสองอย่างในใบสมัครของคุณ

นี่ได้รับการแก้ไขใน vte-0.42 ซึ่งเป็นส่วนหนึ่งของ Gnome 3.18 ที่เปิดตัวในฤดูใบไม้ร่วงนี้

หากคุณกำลังใช้เจ้าเล่ห์คุณสามารถค้นหาการปรับปรุงแพคเกจในGnome3 การแสดงละคร


ฉันจะทำให้เรื่องนี้น่าเชื่อถือโดยไม่เพิ่ม PPA ขนาดใหญ่นั้นได้ไหม
Ciprian Tomoiagă

ไม่ได้โดยไม่ต้องดาวน์โหลดทำการแก้ไขรวบรวมและติดตั้งแพคเกจ libvte 2.90 ที่ตรงกับความน่าเชื่อถือ แพทช์ที่bugzilla.gnome.org/show_bug.cgi?id=733246
egmont

3

ใช้Alt+ Backspaceแทน: มันทำงานเหมือนกับCtrl+ Backspaceและไม่ต้องการการกำหนดค่าใด ๆ


1

มันทำงานบนเครื่องของฉัน เพียงให้แน่ใจว่าคุณใช้ tmux จาก master และ nvim จาก linuxbrew และ control + backspace ทำงานใน bash และ vim ด้วย!

(รับ bash จาก linuxbrew ด้วย)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.