Neden CTL-3 / CTL- #, CTL- ['e eşittir? (ve diğerleri) ASCII kontrol karakterleri durumunda


1

Bazı terminal emülasyon kodları ile karşılaştığım zaman ASCII kontrol karakterlerini yeniden keşfettim ve bastığım her tuşun onaltılık değerini veren küçük bir program yazdım (tcsetattr () ~ ICANON).

Aynı anda Control ve D tuşlarına basmayı (CTL-D) ASCII ^D/ EOT/ 0x04kontrol karakterini ve WP ASCII sayfasında açıklandığı gibi başkalarının bir demetini anlıyorum. diğer bazı beklenmeyen anahtarlar da denetim karakterleri oluşturdu:

CTL-2/@ = NUL = ^@ = 0x00 (expected actually)
CTL-3/# = ESC = ^[ = 0x1B
CTL-4/$ = FS = ^\ = 0x1C
CTL-5/% = GS = ^] = 0x1D
CTL-6/^ = RS = ^^ = 0x1E (expected actually)
CTL-7/& = CTL-/ = US = ^_ = 0x1F
CTL-8/* = DEL = ^? = 0x7F

CTL-1, -9 ve -0 öğelerinin kontrol karakterleri oluşturmadığını, sadece normal rakamları unutmayın.

Beklenen iki karakter (NUL ve RS) dışında, neden terminaller bu sayı tuşlarının alt kümesi için kontrol karakterleri oluşturur?

Düzenleme: açık olması, CTL - [= Esc ve diğer standart "şapka" / kontrol tuşlarının (^ \, ^], ^^, ^ _, ^?) Olduğunu biliyorum ve anlıyorum. Sayı veya ^ #, ^ $, ^%, ^ &, ^ * ve ^ / kontrol tuşlarının neden bunlarla çakıştığını merak ediyorum.


^ - [= Esc yaygın olarak desteklenir ve vim'e Esc tuşunu göndermenin en uyumlu yoludur (uzak oturumları kullanan birden fazla terminalde bile vb.). Ctrl-] o kadar yaygın olarak tanınır ki, Win95'in Telnet.exe'si 0x1D'yi desteklemese de, Ctrl-] özelliğini desteklemektedir. ^ -? hiç şaşırtıcı değil, belki de yaptığım eski deneylerden dolayı. Benim asıl meselem, bildiğim kadarıyla, bunların en azından bir kısmının OSX'e özgü olan hiçbir yere yakın olmadığını bildiğim.
TOOGAM

^ [= ESC ve diğer standart kontrol karakterlerinin farkındayım, sorunun konusu bu değil.
John de Largentaye

Yanıtlar:


0

Karet notasyonu , ^ D gibi, aslında Ctrl-D anlamına gelmez. "Mektubun alfabetik sıralamasıyla eşleşen numaraya sahip ASCII kontrol karakteri", bu durumda, D = 4 yani ^ D = 0x04. Bazı insanlar bu şapka işaretini ctrl-X şemasının klavyesinin harfleriyle eşleştirmenin düzgün olacağına karar verdi. Açıkçası, insanların yaratıcı olması gereken yer olan 27 veya 0x1B'de kırılıyor.

Anladığım kadarıyla, 0x1A'dan daha üstün olan kontrol karakterlerini eşlemek için hiçbir standart bulunmadığı ve çeşitli tarihsel uygulamaların bir süredir bir arada var olduğu.


Gerçekten önemli değil, ama "^ D! = CTL-D aslen" için bir alıntı yaptı? :) Wikipedia'da bir tane yok.
John de Largentaye,

Aslında, superuser.com/a/764656/541440'a göre ve Teletypes en.wikipedia.org/wiki/Teleprinter#Control_characters'ın tarihine kazıma göre, en başından beri, kontrol karakterlerinin kontrol edilebilir olmaları gerektiği anlaşılıyor. Ctrl + tuşunu kullanarak
John de Largentaye
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.