Bir terminalde bir tuşa veya tuş kombinasyonuna bastığınızda, terminalde çalışan uygulamaya bir veya daha fazla karakterden oluşan bir dizi olarak iletilir. Örneğin, tuşuna bastığınızda auygulama alınır a
. Tuşuna bastığınızda Enter, uygulama karakteri alır CR
(aka ^M
("kontrol emm" olarak telaffuz edilir), aka karakter numarası 13, aka \r
veya \015
). Dahil Altolan tuş kombinasyonları tipik olarak karakter ESC
(a.ka. ^[
aka \e
veya \033
) olarak ve ardından anahtar veya tuş kombinasyonu olmadan sıralanır Alt. Fonksiyon tuşları ve diğer tuş kombinasyonları \e[
veya ile başlayan çıkış dizileri olarak iletilir \eO
.
Kaçış dizileri tam olarak standartlaştırılmamıştır ve terminaller tipik olarak belirli tuşlar için belirli nitelikleri yoksayar. Örneğin, Ctrl+ Shift+ lettergenellikle varsayılan olarak tam olarak Ctrl+ gibi iletilir letter.
Uçbiriminizin tuş birleşimi için ne gönderdiğini, Ctrl+ tuşlarına ve Vardından kabuk isteminde o tuş birleşimine C-q
veya C-h c
Emacs'ta tuş birleşimine basarak görebilirsiniz.
Bazı terminal emülatörlerinde, her bir anahtar için kaçış dizilerini yapılandırabilirsiniz. Xterm'de bu, X kaynakları aracılığıyla yapılır . Çoğu kurulum ~/.Xresources
X'in başladığı andan itibaren kaynakları okur ve dosyayı ile manuel olarak yükleyebilirsiniz 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~")
Ortak bir kural, ESC [ number1 ; number2 ~
değiştiricili işlev tuşları için formun kaçış dizilerini kullanır . number1
fonksiyon tuşuna gösterir ( 15
üzere 24
için F5için F12- geçmiş nedenlerle, F1 ile F4farklı çıkış dizilerine sahip) ve number2
değiştirici gösterir ( 2
için Shift, 3
için Meta, 5
için Ctrl, 7
için Ctrl+ Metave için 1 eklenir Shift, en az biri ile Ctrlya da Meta).
Emacs, kaçış dizilerini Emacs 23 aracılığıyla input-decode-map
veyalocal-function-key-map
(veya function-key-map
Emacs 23'ten önce) dahili anahtar gösterimine çevirir .
(define-key local-function-key-map "\033[73;5~" [(control return)])
(define-key local-function-key-map "\033[37;6~" [(control ?L)])
infocmp $TERM
mi?