Bunlar, belirli bir tuşa bastığınızda terminaliniz tarafından gönderilen karakter dizileridir. Tek başına bash veya readline ile ilgisi yoktur, ancak readlinebelirli bir tuşa basıldığında bir şeyler yapmak üzere yapılandırmak istiyorsanız, belirli bir tuşun veya tuş kombinasyonunun hangi karakter dizisini gönderdiğini bilmek isteyeceksiniz .
Tuşuna bastığınızda Atuşu, genellikle terminalleri göndermek a(0x61) karakteri. <Ctrl-I>Veya tuşuna basarsanız <Tab>, genellikle veya (0x9) ^Iolarak da bilinen karakteri gönderin . İşlev ve gezinme tuşlarının çoğu genellikle (control- [) ile başlayan veya (0x1b, 033 octal) olarak da bilinen karakter dizisini gönderir , ancak tam dizilim terminalden terminale değişir.TAB\t^[ESC\e
Bir tuş veya tuş kombinasyonunun terminalinize ne gönderdiğini bulmanın en iyi yolu, koşmak sed -n lve onu Enterklavyede yazmaktır. O zaman şöyle bir şey göreceksiniz:
$ sed -n l
^[[1;5A
\033[1;5A$
İlk satır, echoterminal cihazı tarafından yapılan yerel terminalden kaynaklanır (terminal cihazı ayarları onu etkileyeceği için güvenilir olmayabilir).
İkinci satır tarafından verilir sed. $O çizginin sonu nereye göstermek için sadece var, dahil edilecek değildir.
Bu yollarla Üstü o Ctrl-Up(ben basıldığında ettik ki) 6 karakter göndermek ESC, [, 1, ;, 5ve A(0x1b 0x5b 0x31 0x3b 0x35 0x41)
Veri terminfotabanı, birkaç uçbirim için bir dizi ortak anahtar için bir dizi dizi kaydeder ( $TERMdeğere bağlı olarak ).
Örneğin:
TERM=rxvt tput kdch1 | sed -n l
Hangi kaçış sırasının tuşa rxvtbasılarak gönderileceğini söyleyecektir Delete.
Şu anki terminalinizle hangi tuşun belirli bir sıraya karşılık geldiğine bakabilirsiniz infocmp(burada ncursesinfocmp varsayalım):
$ infocmp -L1 | grep -F '=\E[Z'
back_tab=\E[Z,
key_btab=\E[Z,
Anahtar kombinasyonları veritabanında Ctrl-Upkarşılık gelen girişlere sahip değildir terminfo, bu nedenle ne gönderdiklerini bulmak için ilgili terminalin kaynağını veya belgelerini okuyun veya sed -n lyukarıda açıklanan yöntemle deneyin .
bind -p.