ฉันจะข้ามไปยังคำถัดไปหรือก่อนหน้าด้วยปุ่มลูกศร CTRL + ในคอนโซลได้อย่างไร


12

ในแอปพลิเคชั่นการจำลองเทอร์มินัลการกดCTRL+ Left/ Rightลูกศรจะกระโดดจากคำหนึ่งไปยังอีกคำก่อนหน้าหรือถัดไป เป็นไปได้ไหมที่มีการใช้งานเหมือนกันในคอนโซล Linux ไม่ว่าจะเป็นในรูปแบบข้อความหรือในโหมด framebuffer

ในการกำหนดค่าของฉันCTRLแป้นลูกศร + จะถูกแปลงเป็นลำดับอักขระที่ใช้ Escape และไม่ตีความ

คำตอบ:


8

นี้เป็นไปได้ถ้าหากสถานีส่งลำดับหนีแตกต่างกันสำหรับCtrl+ VSLeft Leftนี่ไม่ใช่กรณีโดยค่าเริ่มต้นบนคอนโซล Linux (อย่างน้อยในเครื่องของฉัน) คุณสามารถทำได้โดยการปรับเปลี่ยน keymap ไฟล์ที่แน่นอนที่จะแก้ไขอาจขึ้นอยู่กับการกระจายของคุณ ใน Debian Lenny /etc/console/boottime.kmap.gzไฟล์ที่จะปรับเปลี่ยนเป็น คุณต้องการเส้นเหมือน

control keycode 105 = F100
string F100 = "\033O5D"
control keycode 106 = F101
string F101 = "\033O5C"

คุณอาจเลือก escape sequences เดียวกับ X terminal emulator ของคุณ เมื่อต้องการค้นหาลำดับของการควบคุมให้พิมพ์Ctrl+ V Ctrl+ Leftในเชลล์ เม็ดมีดนี้ (ในเครื่องของฉัน) ^[O5Dที่^[เป็นตัวละครเลี่ยง ในไฟล์ keymap \033หมายถึงอักขระยกเว้น

การกำหนดค่าแอปพลิเคชันในเทอร์มินัลเพื่อถอดรหัสลำดับ escape เป็นปัญหาแยกต่างหาก


คุณเพียงแค่อธิบายว่าคุณได้รับ"\033O5D"รหัสอย่างไร แต่ไม่ได้รับรหัสkeycode 105และF100รหัสที่สมบูรณ์ นอกจากนี้ฉันได้รับ^[[1;5Bและ^[[1;5Aสำหรับ ctrl + Down และ Ctrl + Up ฉันจะจัดการ1;ส่วนนี้อย่างไร
Martin Vegter

1
@MartinVegter ตรวจสอบไฟล์ที่มีอยู่สำหรับรหัสหรือใช้showkeyโปรแกรม 1;ส่วนหนึ่งไม่แตกต่างจากส่วนที่เหลือ: "\033[1;5B"และอื่น ๆ
Gilles 'หยุดความชั่วร้าย'

ตกลงสามารถพบการใช้keycode 105 showkeyแต่คุณได้รับF100ที่ไหน
Martin Vegter

@MartinVegter เลือกอันที่ยังไม่ได้ใช้ อีกอันหนึ่งต่อคีย์การ์ด (ฉันเพิ่งพิมพ์ผิดในคำตอบของฉัน)
Gilles 'SO- หยุดความชั่วร้าย'

24

ทางลัดสไตล์ Emacs Alt+ f, Alt+ bทำงานโดยค่าเริ่มต้นกับโปรแกรมบรรทัดคำสั่งที่ใช้งานreadlineทั้งหมดเช่นเชลล์


2

คุณสามารถตั้งค่ากลุ่มเป็นตัวแก้ไขบรรทัดคำสั่งของคุณแล้วกด ESC และกระโดดไปรอบ ๆ กลุ่มสไตล์ (ไปข้างหน้าหลังสิ้นสุด $ $ 0 ฯลฯ )


-1

ฉันมีปัญหานี้กับ Debian ด้วย~/.inputrcไฟล์ว่างเปล่า แก้ไขปัญหาด้วยการลบไฟล์นี้

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