Po naciśnięciu klawisza lub kombinacji klawiszy w terminalu jest on przesyłany do aplikacji działającej w terminalu jako sekwencja jednego lub więcej znaków. Na przykład po naciśnięciu aaplikacja odbiera a. Po naciśnięciu Enteraplikacja otrzymuje znak CR(aka ^M(wymawia się „control-emm”), aka znak numer 13, aka \rlub \015). Kombinacje klawiszy Altsą zwykle przesyłane jako znak ESC(np. ^[Aka \elub \033), a następnie sekwencja dla klawisza lub kombinacji klawiszy bez Alt. Klawisze funkcyjne i inne kombinacje klawiszy są przesyłane jako sekwencje specjalne rozpoczynające się od \e[lub \eO.
Sekwencje specjalne nie są w pełni znormalizowane, a terminale zwykle ignorują określone atrybuty dla niektórych kluczy. Na przykład Ctrl+ Shift+ letterjest często przesyłany domyślnie dokładnie tak jak Ctrl+ letter.
Możesz zobaczyć, co twój terminal wysyła dla kombinacji klawiszy, naciskając Ctrl+, Va następnie tę kombinację klawiszy w wierszu poleceń powłoki, C-qlub C-h cpo kombinacji klawiszy w Emacsie.
W przypadku niektórych emulatorów terminali można skonfigurować sekwencje specjalne dla każdego klucza. Na terminalach, to odbywa się za pośrednictwem zasobów X . Większość ustawień odczytuje zasoby od ~/.Xresourcesmomentu uruchomienia X i można ręcznie załadować plik 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~")
Powszechna konwencja wykorzystuje sekwencje specjalne formy ESC [ number1 ; number2 ~dla klawiszy funkcyjnych z modyfikatorami. number1oznacza klawisz funkcyjny ( 15na 24na F5celu F12- w przypadku przyczyn historycznych F1 do F4mieć różne sekwencje wyjścia) i number2wskazuje modyfikator ( 2o Shift, 3o Meta, 5o Ctrl, 7o Ctrl+ Metai dodać 1 dla Shiftco najmniej jednej Ctrllub Meta).
Emacs tłumaczy sekwencje specjalne na wewnętrzną reprezentację klucza poprzez input-decode-maplublocal-function-key-map (lub function-key-mapprzed Emacsem 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?