Коли ви натискаєте клавішу або комбінацію клавіш у терміналі, вона передається програмі, що працює в терміналі, як послідовність одного або декількох символів. Наприклад, коли ви натискаєте a, програма отримує a. Коли ви натискаєте Enter, програма отримує символ CR(ака ^M(вимовляється "control-emm"), також номер символу 13, він \rабо \015). Комбінації клавіш, що включають Alt, зазвичай передаються як символ ESC(а.ка. ^[aka \eабо \033) з подальшим послідовністю для ключа або комбінації клавіш без Alt. Функціональні клавіші та інші комбінації клавіш передаються у вигляді послідовностей, що починаються з \e[або \eO.
Послідовності виходу не повністю стандартизовані, і термінали зазвичай ігнорують певні атрибути для певних клавіш. Наприклад, Ctrl+ Shift+ letterчасто передається точно так само Ctrl+ letterза замовчуванням.
Ви можете побачити, що ваш термінал надсилає для комбінації клавіш, натиснувши клавішу Ctrl+, Vа потім комбінацію клавіш у запиті оболонки або, C-qабо C-h cслідуючи за комбінацією клавіш у Emacs.
За допомогою деяких термінальних емуляторів ви можете налаштувати послідовності евакуації для кожної клавіші. На 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вказує функціональну клавішу ( 15to 24for F5to F12- з історичних причин, F1 через F4мають різні послідовності відходу) і number2вказує на модифікатор ( 2for Shift, 3for Meta, 5for Ctrl, 7for Ctrl+ Meta, і додати 1 для Shiftпринаймні одного з Ctrlабо Meta).
Emacs переводить послідовності втечі у своє внутрішнє представлення ключів через 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?