ขึ้นอยู่กับเชลล์ที่มีปัญหา
เชลล์บางตัว (เช่น AT&T ksh88) ไม่มีการแก้ไขบรรทัดอินพุต
ในเชลล์ที่ใช้การvi
แก้ไขโหมด (คุณอาจต้องเปิดใช้งานสิ่งนี้ด้วยset -o vi
) สิ่งนี้ทำได้โดยการกดEsc(เพื่อสลับจากโหมดแทรก) ตามด้วย0เพื่อข้ามไปยังจุดเริ่มต้นของบรรทัดหรือ$เพื่อข้ามไปยังจุดสิ้นสุดของบรรทัด จากนั้นเข้าสู่โหมดแทรกอีกครั้งโดยการกดi- เคอร์เซอร์จะอยู่ในตำแหน่งเดิม - หรือa- เคอร์เซอร์จะเลื่อนไปทางขวาหนึ่งครั้งเพื่อต่อท้ายข้อความ
vi
การแก้ไขโหมดเมื่อเร็ว ๆ นี้ได้รับคำสั่งจากมาตรฐาน POSIX
การแก้ไขโหมดทั่วไปที่มากขึ้น emacs
(ขอบคุณพระเจ้าไม่มีส่วนเกี่ยวข้องใด ๆ กับระบบปฏิบัติการ Slash-slash-operating-Emacs) ที่ใช้Ctrl-Aเพื่อข้ามไปที่จุดเริ่มต้นของบรรทัดและCtrl-Eข้ามไปยังจุดสิ้นสุดของบรรทัด โหมดนี้ต้องการให้คุณทำงานset -o emacs
กับเชลล์จำนวนมาก (ส่วนใหญ่เด่นชัด AT&T ksh93) แต่เปิดใช้งานโดยค่าเริ่มต้นในmkshและ GNU ทุบตี
ส่วนใหญ่เปลือกหอยที่ทันสมัยรองรับทั้งemacs
และvi
โหมด (โหมดทั้งสองนี้ต้องใช้ TTY เพื่อทำงาน)
ในเชลล์จำนวนมากคุณสามารถปรับแต่งการโยงคีย์ โดยปกติแล้วสำหรับemacs
โหมดแม้ว่าบางเชลล์จะอนุญาตให้ปรับแต่งการเชื่อมโยงคีย์สำหรับvi
โหมด หากคุณมีความสำคัญที่คุณควรมีนี้ผูกไว้กับคุณต้องคิดออกคีย์ลำดับที่มันผลิต (ตัวอย่างเช่นในระบบของฉัน, Alt-CursorLeftผลิตEsc+[+1+;+3+D( ^[[1;3D
; ^X
เป็นCtrl-Xและ^[
เป็นEsc) ดังนั้นฉันสามารถพิมพ์สิ่งที่ต้องการ
bind '^[[1;3D=beginning-of-line'
bind '"\e[1;3D":beginning-of-line'
และจะมีการเปลี่ยนแปลงการผูกกุญแจนี้ขึ้นอยู่กับเปลือก คุณมักจะสามารถยังคงมีอยู่ให้พวกเขาทั้งในไฟล์เริ่มต้น ( ~/.mkshrc
, ~/.kshrc
) หรือสำหรับ GNU ~/.inputrc
ทุบตีใน โปรดทราบว่าเปลือกบางส่วนนั้นไม่สนับสนุนการผูกคีย์ทั้งหมดในทุกรุ่น
โดยปกติคุณสามารถค้นหาว่าคีย์ใดที่สร้างตัวอักษรโดยการรันcat
บนเชลล์พิมพ์คีย์และดู จากนั้นกดปุ่ม^C
( Ctrl-C) cat
เพื่อยกเลิก