เมื่อคุณกดปุ่มหรือคีย์ผสมในเทอร์มินัลจะถูกส่งไปยังแอปพลิเคชันที่ทำงานในเทอร์มินัลตามลำดับอักขระหนึ่งตัวหรือมากกว่า ตัวอย่างเช่นเมื่อคุณกดแอพลิเคชันที่ได้รับa a
เมื่อคุณกดEnterแอพลิเคชันที่ได้รับตัวละครCR
(aka ^M
(ออกเสียง“ควบคุม EMM”) หรือที่รู้จักตัวละครจำนวน 13 อาคา\r
หรือ\015
) คีย์ผสมที่เกี่ยวข้องAltจะถูกส่งมักจะเป็นตัวอักษรESC
( a.ka. ^[
aka \e
หรือ\033
) Altตามด้วยลำดับสำหรับคีย์หรือการรวมกันโดยไม่ต้องคีย์ ปุ่มฟังก์ชั่และชุดอื่น ๆ ที่สำคัญจะถูกส่งเป็นลำดับหนีเริ่มต้นด้วยหรือ\e[
\eO
ลำดับ escapes ไม่ได้มาตรฐานอย่างสมบูรณ์และโดยทั่วไปแล้วเทอร์มินัลจะไม่สนใจคุณลักษณะบางอย่างสำหรับคีย์บางอย่าง ตัวอย่างเช่นCtrl+ Shift+ letterมักถูกส่งเหมือนCtrl+ letterโดยค่าเริ่มต้น
คุณสามารถเห็นสิ่งที่เทอร์มินัลของคุณส่งสำหรับชุดคีย์โดยกดCtrl+ Vตามด้วยชุดคีย์ในเชลล์พรอมต์หรือC-q
หรือC-h c
ตามด้วยชุดคีย์ใน Emacs
ด้วยเทอร์มินัลอีมูเลเตอร์บางตัวคุณสามารถกำหนดค่าลำดับ escape สำหรับแต่ละคีย์ เมื่อวันที่ Xterm นี้จะทำผ่านทรัพยากร X การตั้งค่าส่วนใหญ่จะอ่านทรัพยากรจาก~/.Xresources
เมื่อ X เริ่มทำงานและคุณสามารถโหลดไฟล์ด้วยตนเองxrdb -merge ~/.Xresources
ได้
Term.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, 3
สำหรับMeta, 5
สำหรับCtrl, 7
สำหรับCtrl+ Metaและเพิ่ม 1 Shiftที่มีอย่างน้อยหนึ่งCtrlหรือMeta)
Emacs แปล escape sequences เป็นการนำเสนอคีย์ภายในผ่านinput-decode-map
หรือlocal-function-key-map
(หรือfunction-key-map
ก่อน Emacs 23)
(define-key local-function-key-map "\033[73;5~" [(control return)])
(define-key local-function-key-map "\033[37;6~" [(control ?L)])
infocmp $TERM
?