คุณจะสะดวกสบายมากขึ้นใน X11 Emacs ซึ่งสามารถรับการป้อนข้อมูลแป้นพิมพ์และข้อความที่แสดงโดยไม่ต้องผ่านการเข้ารหัสและการถอดรหัสสำหรับขั้ว เหตุผลหลักในการใช้โปรแกรมแก้ไขโหมดข้อความคือการเรียกใช้ภายในหน้าจอหรือ tmux บนเครื่องระยะไกล แต่ต้องขอบคุณ Tramp ซึ่งโดยปกติแล้วการแก้ไขไฟล์ระยะไกลใน Emacs ในพื้นที่ของคุณจะทำได้ง่ายกว่า คุณสามารถทำสิ่งที่คุณต้องการตราบใดที่เทอร์มินัลอีมูเลเตอร์ของคุณร่วมมือซึ่งเป็นกรณีของ Xterm
เมื่อคุณกดปุ่มหรือคีย์ผสมในเทอร์มินัลจะถูกส่งไปยังแอปพลิเคชันที่ทำงานในเทอร์มินัลตามลำดับอักขระหนึ่งตัวหรือมากกว่า ตัวอย่างเช่นเมื่อคุณกดแอพลิเคชันที่ได้รับa aเมื่อคุณกดEnterแอพลิเคชันที่ได้รับตัวละครCR(aka ^M(ออกเสียง“ควบคุม EMM”) หรือที่รู้จักตัวละครจำนวน 13 อาคา\rหรือ\015) คีย์ผสมที่เกี่ยวข้องAltจะถูกส่งมักจะเป็นตัวอักษรESC( a.ka. ^[aka \eหรือ\033) Altตามด้วยลำดับสำหรับคีย์หรือการรวมกันโดยไม่ต้องคีย์ ปุ่มฟังก์ชั่และชุดอื่น ๆ ที่สำคัญจะถูกส่งเป็นลำดับหนีเริ่มต้นด้วยหรือ\e[\eO
ลำดับ escapes ไม่ได้มาตรฐานอย่างสมบูรณ์และโดยทั่วไปแล้วเทอร์มินัลจะไม่สนใจคุณลักษณะบางอย่างสำหรับคีย์บางอย่าง ตัวอย่างเช่นตัวดัดแปลงไฮเปอร์และซุปเปอร์มักจะถูกละเว้น คุณสามารถเห็นสิ่งที่เทอร์มินัลของคุณส่งสำหรับชุดคีย์โดยกดCtrl+ Vตามด้วยชุดคีย์ในเชลล์พรอมต์หรือC-qหรือC-h cตามด้วยชุดคีย์ใน Emacs
xterm ช่วยให้คุณสามารถกำหนดค่าลำดับหนีสำหรับแต่ละคีย์ผ่านทรัพยากร X การตั้งค่าส่วนใหญ่จะอ่านทรัพยากรจาก~/.Xresourcesเมื่อ X เริ่มทำงานและคุณสามารถโหลดไฟล์ด้วยตนเองxrdb -merge ~/.Xresourcesได้
XTerm.VT100.translations: #override \n\
Ctrl ~Shift ~Meta <Key> Return: string("\033[73;5~") \n\
Ctrl Shift ~Meta <Key> percent: string("\033[37;6~")
หลักการทั่วไปใช้ลำดับการยกเว้นของฟอร์มESC [ number1 ; number2 ~สำหรับปุ่มฟังก์ชันที่มีตัวดัดแปลง number1แสดงให้เห็นปุ่มฟังก์ชัน ( 15เพื่อ24สำหรับF5การF12- สำหรับเหตุผลทางประวัติศาสตร์ F1 ผ่านF4มีลำดับหนีแตกต่างกัน) และnumber2แสดงให้เห็นเครื่องปรับ ( 2สำหรับShift, 5สำหรับCtrl, 3สำหรับMeta, 8สำหรับCtrl+ Metaและเพิ่ม 1 สำหรับ + Shift- ไม่มันไม่สอดคล้องมาก)
คุณจะต้องระบุไฮเปอร์และซูเปอร์ปรับเปลี่ยนผ่านหมายเลขของพวกเขาเช่นผ่านMod1 Mod5รันxmodmap -pmเพื่อดูการแม็พของ keysyms กับตัวดัดแปลง ตัวอย่างเช่นหากSuper_Lผูกพันกับ Mod5 ดังนั้นบรรทัดต่อไปนี้ (ใช้กรณีที่แน่นอนนี้) จะกำหนดการรวมสำหรับSuper+ Space:
~Ctrl ~Meta Mod5 <Key> space: string("\033[32;16~") \n\
Emacs แปล escape sequences เป็นการนำเสนอคีย์ภายในผ่านinput-decode-mapหรือlocal-function-key-map (หรือfunction-key-mapก่อน Emacs 23)
(define-key local-function-key-map "\033[32;16~" [(super ?\ )])
โพสต์นี้ทำจากวัสดุรีไซเคิล 80% จากมีขั้ว linux ใดบ้างที่สามารถจัดการชุดคีย์ทั้งหมดได้