ทางลัด“ ลบคำ” ของเชลล์ลบอักขระจำนวนมากเกินไป


9

ภายใต้การทุบตีพฤติกรรมบางอย่างของAlt+ dทำให้ฉันบ้ามาหลายปีแล้วและฉันก็พบว่ามันอาจจะแก้ไขได้ด้วยการตั้งค่า

ถ้าฉันอยู่ที่ terminal และออกคำสั่งดังนี้:

...$   cat >> ~/notesSuperLongFilename.txt

แล้วถ้าฉันต้องการพูดออก:

...$ scp ~/notesSuperLongFilename.txt

ฉันต้องการกลับมา "cat >> ~ / notesSuperLongFilename.txt" โดยใช้ Ctrl + p (บรรทัดก่อนหน้า) จากนั้นทำCtrl+ aและจากนั้นAlt+ dและAlt+ dอีกครั้งดังนั้นฉันจึงมี:

...$  ~/notesSuperLongFilename.txt

แล้วฉันจะสามารถป้อน "scp" จากนั้นทำเครื่องหมายCtrl+ m(หรือกด Enter / Return)

แต่มันไม่ได้ทำงานเพราะหลังจากที่ครั้งแรกAlt+ dฉันจะได้รับ:

...$ >> ~/notesSuperLongFilename.txt

(ดีมาก)

แต่หลังจากที่สองAlt+ dฉันจะได้รับ:

...$ .txt

ดังนั้นด้วยเหตุผลบางอย่างAlt+ dลบ">> ~ / notesSuperLongFilename"ในครั้งเดียวแทนเพียงลบ">>"

นี่ต้องเป็นตัวแก้ไขเวลาที่ยิ่งใหญ่ที่สุดที่ทำให้ฉันคลั่งไคล้ Linux / Bash มาหลายปีแล้ว

ดังนั้นฉันจะแก้ไขพฤติกรรมนี้ (แตกหัก) ของAlt+ ได้dอย่างไร

PS: ฉันไม่รู้ว่าใครเป็นคน "รับผิดชอบ" สำหรับพฤติกรรมAlt+ นั้นd: ฉันไม่รู้ว่าเป็นเทอร์มินัลหรือเป็นเชลล์ (ทุบตีในกรณีของฉัน)


หลังจาก "cat >> ~ / notesSuperLongFilename.txt" ให้พิมพ์ "scp" แล้วกด Esc, (หนีครั้งเดียวแล้วตามด้วยอักขระ "." หนึ่งครั้ง)
Mathieu

คำตอบ:


3

ฉันไม่ทราบว่าใคร "รับผิดชอบ" สำหรับพฤติกรรม Alt + d นั้น: ฉันไม่รู้ว่าเป็นเทอร์มินัลหรือเป็นเชลล์ (ทุบตีในกรณีของฉัน)

โดยbashเฉพาะการตั้งค่าการแก้ไขบรรทัดคำสั่งเริ่มต้น นี่คือหน้าเว็บที่ดีเกี่ยวกับคำสั่งที่สามารถเชื่อมโยงและวิธีเปลี่ยนการเชื่อมโยงเริ่มต้น

เริ่มต้นผูกพันAlt-dมีที่kill-wordซึ่งควรจะทำงานเหมือนคำสั่งของชื่อเดียวกันใน Emacs อย่างที่คุณได้สังเกตุ แต่มันก็ไม่ได้ - Emacs จะพิจารณาช่องว่างระหว่าง>>และเครื่องหมายตัวหนอนในตัวอย่างของคุณเพื่อเป็นตัวแบ่งคำ นั่นbashไม่ใช่ฉันจะพิจารณาข้อผิดพลาด bashขาดแหล่งที่มาสำหรับการเปลี่ยนแปลงและการคอมไพล์ใหม่ฉันไม่รู้ว่าคุณสามารถทำอะไรได้บ้าง


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