คุณจะสะดวกสบายมากขึ้นใน 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 ใดบ้างที่สามารถจัดการชุดคีย์ทั้งหมดได้