ANSI kaçış kodu - ANSI escape code

ANSI X3.64 (ISO 6429)
Htop.png
Bir ncurses uygulaması olan sistem monitörü htop'un çıktısı ( SGR ve diğer ANSI/ISO kontrol dizilerini kullanır).
Standart
sınıflandırma ISO/IEC 2022 tabanlı kontrol kodu ve kontrol sırası seti
Diğer ilgili kodlama(lar) Diğer kontrol fonksiyonu standartları: ITU T.101 , JIS X 0207 , ISO 6630 , DIN 31626 , ETS 300 706

ANSI kaçış dizileri , imleç konumunu, rengi, yazı tipi stilini ve video metin terminalleri ve terminal öykünücülerindeki diğer seçenekleri kontrol etmek için bant içi sinyalleme için bir standarttır . Çoğu bir ASCII çıkış karakteri ve bir parantez karakteri ile başlayan belirli bayt dizileri metne gömülür. Terminal, bu dizileri, kelimesi kelimesine görüntülemek için metin yerine komutlar olarak yorumlar.

ANSI dizileri, satıcıya özel dizilerin yerini almak için 1970'lerde tanıtıldı ve 1980'lerin başında bilgisayar ekipmanı pazarında yaygınlaştı. Standartlaştırılmış işlevsellik sunmak için geliştirme, bilimsel, ticari metin tabanlı uygulamaların yanı sıra bülten tahtası sistemlerinde kullanılırlar .

Donanım metin terminalleri 21. yüzyılda giderek daha nadir hale gelmesine rağmen, terminal öykünücülerinin ve komut konsollarının büyük bir çoğunluğu ANSI standardının en azından bir kısmını yorumladığı için ANSI standardının alaka düzeyi devam etmektedir.

Tarih

Neredeyse tüm video terminali üreticileri, imleci ekranda rastgele konumlara yerleştirme gibi işlemleri gerçekleştirmek için satıcıya özel kaçış dizileri ekledi. Bir örnek, karakter, bir karakter ve ardından x,y konumu artı 32'ye eşit sayısal değerlerle temsil edilen iki karakter göndererek imlecin ekranda bir x,y konumuna yerleştirilmesine izin veren VT52 terminalidir (böylece ASCII boşluk karakterinden başlayarak ve kontrol karakterlerinden kaçınarak). Hazeltine 1500 , benzer bir özellik vardı kullanılarak çağrılır , ve bundan sonra da X ve Y pozisyonları virgül ile ayrılmış. İki terminal bu bağlamda aynı işlevselliğe sahip olsa da, onları çağırmak için farklı kontrol dizilerinin kullanılması gerekiyordu. ESCY~DC1

Bu diziler farklı uçbirimler için farklı olduğundan, programların herhangi bir uçbirim ile çalışmak için aynı API'yi kullanabilmesi için termcap ("terminal yetenekleri") gibi ayrıntılı kitaplıklar ve tput gibi yardımcı programlar oluşturulmalıydı . Ayrıca, bu terminallerin çoğu, karakterlerin ikili değerleri olarak sayıların (satır ve sütun gibi) gönderilmesini gerektiriyordu; bazı programlama dilleri ve dahili olarak ASCII kullanmayan sistemler için, bir sayıyı doğru karaktere dönüştürmek genellikle zordu.

ANSI standardı, tüm terminallerin kullanacağı ve tüm sayısal bilgilerin ASCII numaraları olarak iletilmesini gerektiren bir komut seti oluşturarak bu sorunları çözmeye çalıştı. Serideki ilk standart, 1976'da kabul edilen ECMA-48'di. Bu, bir dizi karakter kodlama standardının devamıydı; ilki , ISO 646'nın kaynaklandığı 7 bitlik bir standart olan 1965'ten ECMA-6'ydı . Adı "ANSI çıkış sırası" 1979 den tarihleri ANSI ANSI X3.64 kabul etti. ANSI X3L2 komitesi, neredeyse aynı standartları üretmek için ECMA komitesi TC 1 ile işbirliği yaptı . Bu iki standart, uluslararası bir standart olan ISO 6429 ile birleştirildi. 1994 yılında ANSI, standardını uluslararası standart lehine geri çekti.

Aralık VT100 terminali
DEC VT100 video görüntüleme terminali.

Bu dizileri destekleyen ilk popüler video terminali , 1978'de piyasaya sürülen Digital VT100'dü. Bu model, piyasada çok başarılı oldu ve çeşitli VT100 klonlarının kıvılcımını çıkardı, aralarında en eski ve en popüler olanı çok daha uygun fiyatlı Zenith Z idi. -19 1979 Diğerleri dahil Qume QVT-108, Televideo TVI-970, Wyse WY-99GT yanı sıra birçok diğer markalarda uyumluluk dereceleri değişen isteğe bağlı "VT100" ya da "VT103" ya da "ANSI" modu. Bunların popülaritesi giderek daha fazla yazılımın (özellikle bülten tahtası sistemleri ve diğer çevrimiçi hizmetler ) kaçış dizilerinin işe yaradığını varsayarak, neredeyse tüm yeni terminallerin ve onları destekleyen öykünme programlarının ortaya çıkmasına neden oldu.

1981'de, ANSI X3.64, FIPS yayını 86 tarafından ABD hükümetinde kullanılmak üzere kabul edildi . Daha sonra ABD hükümeti, endüstri standartlarını kopyalamayı durdurdu, bu nedenle FIPS yayın. 86 geri çekildi.

ECMA-48 birkaç kez güncellenmiştir ve şu anda 1991'den itibaren 5. baskısındadır. Ayrıca ISO ve IEC tarafından ISO/IEC 6429 standardı olarak benimsenmiştir . Bir sürüm olarak kabul edilir Japon Endüstri Standardı olarak, JIS X 0211 .

İlgili standartlar arasında ITU T.61 , Teletex standardı ve ISO/IEC 8613 , Açık Belge Mimarisi standardı (esas olarak ISO/IEC 8613-6 veya ITU T.416) bulunur. İki sistem, bilgisayar terminalleri için mutlaka anlamlı olmayan uzantılarla ANSI sistemiyle birçok kaçış kodunu paylaşır. Her iki sistem de hızla kullanım dışı kaldı, ancak ECMA-48, içlerinde kullanılan uzantıları ayrılmış olarak işaretliyor.

Platform desteği

Unix benzeri sistemler

Her ne kadar termcap / terminfo tarzı kitaplıklar öncelikle Unix için geliştirilmiş olsa da , 1980'lerin ortalarında Unix benzeri işletim sistemlerinde çalışan programlar neredeyse her zaman ANSI dizilerini destekleyen bir terminal veya öykünücü kullandıklarını varsayabilirdi; bu, ANSI'nin bu platformlarda çalışan programlar tarafından yaygın olarak kullanılmasına yol açtı. Örneğin, birçok oyun ve kabuk komut dosyası ve renk dizini listeleri gibi yardımcı programlar ANSI dizilerini doğrudan yazar ve bu nedenle onları yorumlamayan bir uçbirimde kullanılamaz. vi ve GNU Emacs gibi metin editörleri de dahil olmak üzere birçok program termcap veya terminfo kullanır veya termcap veya terminfo kullanan küfürler gibi kitaplıklar kullanır ve bu nedenle teoride ANSI olmayan terminalleri destekler, ancak bu günümüzde o kadar nadiren test edilmektedir ki, bu terminallerle çalışmak olası değildir .

Xterm terminal emülatörü
Xterm terminal öykünücüsü.

Uzak makineler ve metin sistemi konsolunun yanı sıra yerel programlarla iletişim kurmak için terminal öykünücüleri neredeyse her zaman ANSI çıkış kodlarını destekler. Bu gibi uç emülatörler içeren xterm , rxvt , Gnome Terminal ve Konsol olan sistemlerde X11 tabanlı veya Wayland pencere sistemleri tabanlı ve Terminal.app ve bu şekilde bir üçüncü taraf terminal emulatörleri iTerm2 ile MacOS .

DOS, OS/2 ve Windows

MS-DOS 1.x, ANSI'yi veya diğer kaçış dizilerini desteklemiyordu. Yalnızca birkaç kontrol karakteri ( BEL , CR , LF , BS ) temeldeki BIOS tarafından yorumlandı ve herhangi bir tam ekran uygulamasını neredeyse imkansız hale getirdi. Herhangi bir görüntü efektinin, çok yavaş olduğu bilinen BIOS çağrılarıyla veya doğrudan IBM PC donanımını manipüle ederek yapılması gerekiyordu.

DOS 2.0 , ANSI kaçış dizileri için bir aygıt sürücüsü ekleme yeteneğini tanıttı - fiili standart ANSI.SYS'dir , ancak ANSI.COM , NANSI.SYS ve ANSIPLUS.EXE gibi diğerleri de kullanılır (bunlar oldukça hızlıdır çünkü BIOS'u atlayın). Yavaşlık ve varsayılan olarak kurulmamış olması, yazılımların nadiren bundan faydalanmasını sağlar; bunun yerine uygulamalar, gereken metin görüntüsünü elde etmek için donanımı doğrudan manipüle etmeye devam etti. ANSI.SYS ve benzeri sürücüler, Windows 9x'te Windows ME'ye kadar ve NTVDM altında yürütülen 16 bit eski programlar için NT'den türetilen sistemlerde çalışmaya devam etti .

DOS'un birçok klonu, dizileri yorumlayabildi ve yüklenmesi için ayrı bir ANSI sürücüsü gerektirmez. PTS-DOS ve Concurrent DOS , Multiuser DOS ve REAL/32 yerleşik desteğe (artı bir dizi uzantıya) sahiptir. OS/2 , dizileri etkinleştiren bir ANSI komutuna sahipti .

, Windows Konsol ANSI çıkış sırasını da desteklemiyor Microsoft bunları etkinleştirmek için herhangi bir yöntem sağlamak yaptı vermedi. Böyle JP Software'in olarak konsol penceresi için bazı değiştirmeler veya eklemeler TTK (eski 4NT), Michael J. Mefford en ANSI.COM Jason Hood'un ANSICON ve Maximus5 en ConEmu programları tarafından basılan ANSI çıkış sırasını yorumlanır. Bir Python paketi, yazdırılan metindeki ANSI kaçış dizilerini dahili olarak yorumlayarak, ANSI to Windows kullanarak Python kodunun taşınmasını kolaylaştırmak için renk ve imleç konumunu değiştirmek için bunları çağrılara çevirir. Cygwin , Cygwin dosya tanımlayıcıları kullanılarak konsola yazılan tüm çıktılara benzer bir çeviri gerçekleştirir, filtreleme, POSIX C kodunun Windows'a taşınmasına izin vermek için cygwin1.dll çıktı işlevleri tarafından yapılır .

2016'da Microsoft , Windows NT'nin piyasaya sürülmesinden yirmi yıl sonra beklenmedik bir şekilde ANSI kaçış dizileri için destek uygulayan Windows 10 sürüm 1511 güncellemesini yayımladı . Bu, Linux için Windows Alt Sistemi ile birlikte yapıldı ve Unix benzeri terminal tabanlı yazılımın Windows Konsolu'ndaki dizileri kullanmasına izin verdi . Ne yazık ki bu varsayılan olarak kapalıdır, ancak Windows PowerShell 5.1 bunu etkinleştirmiştir. PowerShell 6, gerekli ESC karakterini `e. 2019'da tanıtılan Windows Terminal , dizileri varsayılan olarak destekler ve Microsoft, Windows Konsolunu Windows Terminal ile değiştirmeyi amaçlamaktadır.

atari st

Atari ST uyarlanan komut sistemi kullandık VT52 yerine ANSI çıkış kodları desteklemek yerine, renk desteği için bazı açılımları ile.

AmigaOS

AmigaOS , ekrana metin çıktısı için yalnızca ANSI kod dizilerini yorumlamakla kalmaz, AmigaOS yazıcı sürücüsü de bunları yorumlar (AmigaOS'a özel uzantılarla birlikte) ve bunları gerçekten bağlı olan belirli yazıcı için gereken kodlara çevirir.

Amiga CLI (kabuk) pencere stili kontrol dizileri
Etki
ESC [ nu Penceredeki maksimum satır uzunluğunu n olarak ayarlar.
ESC [ nt Penceredeki maksimum satır sayısını n olarak ayarlar.
ESC [ nx Metin n pikselini pencerenin sol kenarından başlatır.
ESC [ ny Metin n pikselini pencerenin üst kenarından başlatır.

VMS / OpenVMS

VMS , Digital'in yukarıda bahsedilen VT100 gibi metin tabanlı video terminalleri kullanılarak etkileşimli olarak yönetilmek üzere tasarlanmıştır ; daha sonra VWS Terminal, DECTerm ve xterm gibi grafik terminal emülatörleri ile.

Açıklama

Kontrol karakterleri

Teknik olarak standardın bir parçası olmasa da, hemen hemen tüm kullanıcılar bazı tek baytlık karakterlerin bazı işlevlerini üstlenir. Bu, iletilen veri miktarını kısaltmak veya kaçış dizilerinde kullanılamayan bazı işlevleri gerçekleştirmek için kullanılır:

Popüler kontrol karakterleri (kapsamlı bir liste değil)
^ C0 Kısaltma İsim Etki
^G 7 BEL zil Duyulabilir bir ses çıkarır.
^H 8 BS geri al İmleci sola hareket ettirir (ancak imleç satırın başındaysa "geri sarabilir").
^ ben 9 HT Sekme İmleci 8'in bir sonraki katına doğru hareket ettirir.
^J 0x0A LF Satır besleme Sonraki satıra geçer, ekranın altındaysa ekranı yukarı kaydırır. Programlar buna güvenmemekle birlikte, genellikle yatay olarak hareket etmez.
^L 0x0C FF Form besleme Yazıcıyı sonraki sayfanın başına taşıyın. Programlar buna güvenmemekle birlikte, genellikle yatay olarak hareket etmez. Video terminalleri üzerindeki etkisi değişiklik gösterir.
^M 0x0D CR Satırbaşı İmleci sıfır sütununa taşır.
^[ 0x1B ESC Kaçmak Tüm kaçış dizilerini başlatır

Kaçış dizilerinin uzunluğu değişir. ANSI uyumlu bir kaçış dizisi için genel format, ANSI X3.41 (ECMA-35 veya ISO/IEC 2022'ye eşdeğer) tarafından tanımlanır . Kaçış dizileri yalnızca 0x20–0x7F (kontrol dışı tüm ASCII karakterleri) aralığındaki baytlardan oluşur ve ileriye bakmadan ayrıştırılabilir. Sondan önce bir kontrol karakteri, yüksek bit setli bir bayt veya herhangi bir geçerli dizinin parçası olmayan bir bayt ile karşılaşıldığında davranış tanımsızdır.

Fe Kaçış dizileri

Eğer ESC0x5F aralığında 0x40 bir bayt izler bu tiptedir. Geçerli C1 kontrol kodu standardına devredildi. Buna göre, ANSI X3.64 / ECMA-48'den C1 kontrol kodlarına karşılık gelen tüm kaçış dizileri bu formatı takip eder.

Standart, 8 bitlik ortamlarda, tür Fekaçış dizilerine ( C1 kontrol kodları kümesinden olanlar) karşılık gelen kontrol işlevlerinin 0x80–0x9F aralığında tek bayt olarak gösterilebileceğini söyler. Bununla birlikte, modern cihazlarda bu kodlar genellikle UTF-8'in bölümleri veya CP-1252 karakterleri gibi başka amaçlar için kullanılır, bu nedenle tipik olarak yalnızca 2 baytlık sıra kullanılır. UTF-8 olması durumunda bir C1 kontrol kodu, iki bayt (örn olarak kodlanabilir 0xC2,0x8E için U +, 008E ), ancak boşluk bu şekilde kaydedilir.

Bazı Fe tipi (C1 set elemanı) ANSI kaçış dizileri (kapsamlı bir liste değil)
C1 Kısaltma İsim Etki
ESC N 0x8E SS2 Tek Vardiya İki Alternatif karakter kümelerinden birinden tek bir karakter seçin . SS2, G2 karakter setini seçer ve SS3, G3 karakter setini seçer. 7 bitlik bir ortamda bunu, o kümeden bir karakter belirten bir veya daha fazla GL baytı (0x20–0x7F) takip eder. 8 bitlik bir ortamda bunlar GR baytları (0xA0–0xFF) olabilir.
ESC O 0x8F SS3 Tek Vardiya Üç
ESC P 0x90 DCS Cihaz Kontrol Dizisi ST tarafından sonlandırıldı. Xterm'in bu diziyi kullanımları arasında Kullanıcı Tanımlı Anahtarların tanımlanması ve Termcap/Terminfo verilerinin istenmesi veya ayarlanması yer alır.
ESC [ 0x9B CSI Kontrol Sırası Tanıtıcı 0x40 ila 0x7E aralığında bir bayt ile sonlandırılan yararlı dizilerin çoğunu başlatır.
ESC \ 0x9C NS Dize Sonlandırıcı Diğer denetimlerdeki dizeleri sonlandırır.
ESC ] 0x9D OSC İşletim Sistemi Komutu İşletim sisteminin kullanması için ST tarafından sonlandırılan bir kontrol dizesi başlatır.
ESC X 0x98 s.o.s. Dizinin Başlangıcı ST tarafından sonlandırılan bir metin dizisinin argümanını alır. Bu dizi kontrol dizilerinin kullanımları, uygulama veya gizlilik disiplini tarafından tanımlanır. Bu işlevler nadiren uygulanır ve argümanlar xterm tarafından yok sayılır. Bazı Kermit istemcileri, sunucunun Kermit komutlarını APC dizilerine gömerek istemcide otomatik olarak yürütmesine izin verir; sunucuya güvenilmiyorsa bu potansiyel bir güvenlik riskidir.
ESC ^ 0x9E ÖĞLEDEN SONRA Gizlilik Mesajı
ESC _ 0x9F APC Uygulama Programı Komutu

CSI (Kontrol Dizisi Tanıtıcı) dizileri

Kontrol Sırası Tanıtıcı veya CSI komutları için, ESC [0x30–0x3F (ASCII 0–9:;<=>?) aralığında herhangi bir sayıda (hiçbiri dahil) "parametre baytı" , ardından 0x20–0x2F aralığında herhangi bir sayıda "ara bayt" gelir. (ASCII boşluk ve !"#$%&'()*+,-./), ardından son olarak 0x40–0x7E (ASCII @A–Z[\]^_`a–z{|}~) aralığında tek bir "son bayt" ile .

Tüm yaygın diziler, parametreleri yalnızca noktalı virgülle ayrılmış sayılar dizisi olarak kullanır 1;2;3. Eksik sayılar 0( 1;;3ortadaki sayı gibi davranır 0ve sıfırlama kodu ESC[mgibi davranan hiçbir parametre yoktur 0). Bazı diziler (CUU gibi) , eksik parametreleri kullanışlı hale getirmek için 0gibi davranır 1.

Düzenlemelerin bir alt kümesi "özel" olarak ilan edildi, böylece terminal üreticileri standartla çelişmeden kendi dizilerini yerleştirebildiler. Parametre baytlarını <=>?veya 0x70–0x7E ( p–z{|}~) son baytlarını içeren diziler özeldir .

Bir CSI dizisinin 0x20–0x7E aralığı dışında herhangi bir karakter içermesi durumunda uçbirimin davranışı tanımsızdır. Bu geçersiz karakterler, C0 kontrol karakterleri (0–0x1F aralığı), DEL (0x7F) veya yüksek bit ayarlı baytlardır. Olası yanıtlar, baytı yoksaymak, hemen işlemek ve ayrıca CSI dizisine devam etmek, onu hemen iptal etmek veya geri kalanını yoksaymaktır.

Bazı ANSI kontrol dizileri (kapsamlı bir liste değil)
Kısaltma İsim Etki
CSI n A CUU imleç Yukarı İmleci n (varsayılan 1) hücreyi verilen yönde hareket ettirir . İmleç zaten ekranın kenarındaysa bunun bir etkisi olmaz.
CSI n B MÜD imleç Aşağı
CSI n CUF İmleç İleri
CSI n D yavru İmleç Geri
CSI n e CNL İmleç Sonraki Satır İmleci satırın başına n (varsayılan 1) satır aşağı taşır . ( ANSI.SYS değil )
CSI n F CPL İmleç Önceki Satır İmleci satırın başına n (varsayılan 1) satır yukarıya taşır . ( ANSI.SYS değil )
CSI n G ÇHA İmleç Yatay Mutlak İmleci n (varsayılan 1) sütununa taşır . ( ANSI.SYS değil )
CSI  n  ; m  H FİNCAN İmleç Konumu İmleci n satırı , m sütununa taşır . Değerler 1 tabanlıdır ve 1atlanırsa varsayılan olarak (sol üst köşe) olur. Gibi bir dizi CSI ;5Hile eş anlamlıdır CSI 1;5Hiyi olarak CSI 17;Haynıdır CSI 17HveCSI 17;1H
CSI N J ED Ekranda Sil Ekranın bir kısmını temizler. Eğer , n ise 0(veya eksik), ekranın sonuna imlecin açıkça. Eğer n ise 1, ekranın başlamadan imleci temizleyin. Eğer n ise 2, berrak bütün ekranı (ve hamle üst DOS üzerinde sola imleç ANSI.SYS ). Eğer , n olduğu 3, açık bir tüm ekran scrollback tampon kaydedilen tüm satırları (bu özellik için ilave edildi silip xterm ve diğer uç uygulamalar tarafından desteklenir).
CSI n K EL Satırda Sil Çizginin bir kısmını siler. Eğer , n ise 0(veya eksik), satırın sonuna imleci temizleyin. Eğer n ise 1, hattın başlangıç için imleci temizleyin. Eğer n ise 2, berrak bütün hattı. İmleç konumu değişmez.
CSI n S SU Yukarı kaydırmak Tüm sayfayı n (varsayılan 1) satır yukarı kaydır . En alta yeni satırlar eklendi. ( ANSI.SYS değil )
CSI n T SD Aşağı kaydır Tüm sayfayı n (varsayılan 1) satır aşağı kaydırın . En üste yeni satırlar eklenir. ( ANSI.SYS değil )
CSI n  ; m f HVP Yatay Dikey Konum CUP ile aynıdır, ancak bir düzenleyici işlevi (CUD veya CNL gibi) yerine bir biçim efektör işlevi ( CR veya LF gibi ) olarak sayılır . Bu, belirli terminal modlarında farklı işlemlere yol açabilir.
CSI n m SGR Grafik Yorumunu Seçin Bu kodu izleyen karakterlerin renklerini ve stilini belirler
CSI 5i AUX Bağlantı Noktası Açık Genellikle yerel seri yazıcı için aux seri bağlantı noktasını etkinleştirin
CSI 4i AUX Bağlantı Noktası Kapalı Genellikle yerel seri yazıcı için aux seri bağlantı noktasını devre dışı bırakın

CSI 6n DSR Cihaz Durum Raporu İleterek imleç konumunu (CPR) bildirir ESC[n;mR; burada n satır ve m sütundur.)
Bazı popüler özel diziler
Kısaltma İsim Etki
CSI'lar SCP, SCOSC Geçerli İmleç Konumunu Kaydet SCO konsol modunda imleç konumunu/durumunu kaydeder. Dikey bölünmüş ekran modunda, bunun yerine sol ve sağ kenar boşluklarını ayarlamak (as ) veya sıfırlamak için kullanılır . CSI n ; n s
CSI u RCP, SCORC Kaydedilen İmleç Konumunu Geri Yükle SCO konsol modunda imleç konumunu/durumunu geri yükler.
CSI? 25 saat DECTCEM VT220'den imleci gösterir .
CSI? 25 litre DECTCEM İmleci gizler.
CSI? 1049 saat xterm'den alternatif ekran arabelleğini etkinleştir
CSI? 1049 litre xterm'den alternatif ekran arabelleğini devre dışı bırak
CSI? 2004 s Köşeli parantezli yapıştırma modunu açın. Terminale yapıştırılan metin ESC [200~ve ile çevrelenecektir ESC [201~ve içindeki karakterler komut olarak ele alınmamalıdır (örneğin Vim'de). xterm'den
CSI? 2004 l Parantezli yapıştırma modunu kapatın.

SGR (Grafik Yorumunu Seçin) parametreleri

Select Graphic Redition (SGR) görüntüleme niteliklerini ayarlar. Noktalı virgülle ayrılmış olarak aynı sırada birkaç özellik ayarlanabilir. Her görüntü özelliği, bir sonraki SGR oluşumu onu sıfırlayana kadar yürürlükte kalır. Herhangi bir kod verilmezse (sıfırlama / normal) CSI molarak kabul edilir CSI 0 m.

İsim Not
0 Sıfırla veya normal Tüm özellikler kapalı
1 Kalın veya artan yoğunluk Solukta olduğu gibi, renk değişimi bir PC (SCO/ CGA ) buluşudur .
2 Soluk, azalmış yoğunluk veya loş Kalın gibi hafif bir yazı tipi ağırlığı olarak uygulanabilir .
3 İtalik Yaygın olarak desteklenmiyor. Bazen ters veya yanıp sönme olarak kabul edilir.
4 Altını çizmek Kitty, VTE, mintty ve iTerm2 için stil uzantıları mevcuttur.
5 Yavaş yanıp sönme Dakikada 150'den az
6 Hızlı yanıp sönme MS-DOS ANSI.SYS, dakikada 150+; yaygın olarak desteklenmiyor
7 Videoyu ters çevirin veya ters çevirin Ön plan ve arka plan renklerini değiştirin; tutarsız öykünme
8 Gizleyin veya gizleyin Yaygın olarak desteklenmiyor.
9 Çapraz aşımı , ya grev Karakterler okunaklı ancak silinecekmiş gibi işaretlenmiş.
10 Birincil (varsayılan) yazı tipi
11–19 alternatif yazı tipi Alternatif yazı tipi seçin n − 10
20 Fraktur (Gotik) Nadiren desteklenir
21 Çift altı çizili; veya: kalın değil Çift alt çizgi ECMA-48 başına, ancak bunun yerine de dahil olmak üzere birçok terminaller üzerinde cesur yoğunluğunu devre dışı bırakır Linux çekirdeği 'ın konsolda sürümü 4.17 önce.
22 Normal yoğunluk Ne cesur ne de soluk; yoğunluğun bu şekilde uygulandığı yerde renk değişiklikleri.
23 Ne italik ne de blackletter
24 altı çizili değil Ne tek tek ne de iki kez altı çizili
25 yanıp sönmüyor
26 orantılı boşluk ITU T.61 ve T.416, terminallerde kullanıldığı bilinmiyor
27 tersine çevrilmedi
28 Ortaya çıkartmak Gizli değil
29 üstü çizili değil
30–37 Ön plan rengini ayarla
38 Ön plan rengini ayarla Sonraki argümanlar 5;nveya2;r;g;b
39 Varsayılan ön plan rengi Tanımlanan uygulama (standartlara göre)
40–47 Arka plan rengini ayarla
48 Arka plan rengini ayarla Sonraki argümanlar 5;nveya2;r;g;b
49 Varsayılan arka plan rengi Tanımlanan uygulama (standartlara göre)
50 Orantılı aralığı devre dışı bırak T.61 ve T.416
51 Çerçeveli Mintty'de " emoji varyasyon seçici " olarak uygulandı.
52 çevrelenmiş
53 üstü çizili
54 Ne çerçevelenmiş ne de çevrelenmiş
55 üstü çizili değil
58 Alt çizgi rengini ayarla Standart değil; Kitty, VTE, mintty ve iTerm2'de uygulanmaktadır. Sonraki argümanlar 5;nveya2;r;g;b .
59 Varsayılan alt çizgi rengi Standart değil; Kitty, VTE, mintty ve iTerm2'de uygulanmaktadır.
60 İdeogram alt çizgisi veya sağ yan çizgi Nadiren desteklenir
61 İdeogram çift alt çizgi veya sağ tarafta çift çizgi
62 İdeogram üst çizgi veya sol yan çizgi
63 İdeogram çift üst çizgi veya sol tarafta çift çizgi
64 İdeogram vurgu işareti
65 İdeogram özelliği yok Tümünün etkilerini sıfırla 60-64
73 üst simge Yalnızca mintty'de uygulandı
74 alt simge
75 Ne üst simge ne de alt simge
90-97 Parlak ön plan rengini ayarla Standart değil; aslen aixterm tarafından uygulandı
100–107 Parlak arka plan rengini ayarla

Renkler

3-bit ve 4-bit

Orijinal spesifikasyon sadece 8 renge sahipti ve onlara sadece isimler verdi. SGR parametreleri 30–37 ön plan rengini, 40–47 ise arka planı seçti. Oldukça az sayıda terminal, farklı bir yazı tipi yerine daha parlak bir renk olarak "kalın" (SGR kodu 1) uyguladı ve böylece 8 ek ön plan rengi sağladı. Genellikle bunları arka plan renkleri olarak elde edemezsiniz, ancak bazen ters video (SGR kodu 7) buna izin verir. Örnekler: Beyaz zemin üzerine siyah harf ESC[30;47malmak için ESC[31m, kırmızı kullanmak için , parlak kırmızı kullanmak için ESC[1;31m. Renkleri varsayılanlarına sıfırlamak için kullanın ESC[39;49m(bazı terminallerde desteklenmez) veya ile tüm öznitelikleri sıfırlayın ESC[0m. Daha sonraki terminaller, 90-97 ve 100-107 ile "parlak" renkleri doğrudan belirleme özelliğini ekledi.

Donanım, 8 bit dijital-analog dönüştürücüler (DAC'ler) kullanmaya başladığında , bu adlara 24 bit renk numaraları atanan birkaç yazılım parçası. Aşağıdaki tablo, bazı yaygın donanım ve yazılımlar için DAC'ye gönderilen varsayılan değerleri göstermektedir; çoğu durumda yapılandırılabilirler.

OG BG İsim VGA Windows XP
Konsolu
Windows
PowerShell'i
Visual Studio Kodu Windows 10
Konsolu
Terminal.app Macun mIRC xterm Ubuntu Tutulma Terminali
30 40 Siyah 0, 0, 0 12, 12, 12 0, 0, 0 1, 1, 1 0, 0, 0
31 41 kırmızı 170, 0, 0 128, 0, 0 205, 49, 49 197, 15, 31 194, 54, 33 187, 0, 0 127, 0, 0 205, 0, 0 222, 56, 43 205, 0, 0
32 42 Yeşil 0, 170, 0 0, 128, 0 13, 188, 121 19, 161, 14 37, 188, 36 0, 187, 0 0, 147, 0 0, 205, 0 57, 181, 74 0, 205, 0
33 43 Sarı 170, 85, 0 128, 128, 0 238, 237, 240 229, 229, 16 193, 156, 0 173, 173, 39 187, 187, 0 252, 127, 0 205, 205, 0 255, 199, 6 205, 205, 0
34 44 Mavi 0, 0, 170 0, 0, 128 36, 114, 200 0, 55, 218 73, 46, 225 0, 0, 187 0, 0, 127 0, 0, 238 0, 111, 184 0, 0, 238
35 45 macenta 170, 0, 170 128, 0, 128 1, 36, 86 188, 63, 188 136, 23, 152 211, 56, 211 187, 0, 187 156, 0, 156 205, 0, 205 118, 38, 113 205, 0, 205
36 46 camgöbeği 0, 170, 170 0, 128, 128 17, 168, 205 58, 150, 221 51, 187, 200 0, 187, 187 0, 147, 147 0, 205, 205 44, 181, 233 205, 0, 205
37 47 Beyaz 170, 170, 170 192, 192, 192 229, 229, 229 204, 204, 204 203, 204, 205 187, 187, 187 210, 210, 210 229, 229, 229 204, 204, 204 229, 229, 229
90 100 Parlak Siyah (Gri) 85, 85, 85 128, 128, 128 102, 102, 102 118, 118, 118 129, 131, 131 85, 85, 85 127, 127, 127 127, 127, 127 128, 128, 128 0, 0, 0
91 101 Parlak kırmızı 255, 85, 85 255, 0, 0 241, 76, 76 231, 72, 86 252, 57, 31 255, 85, 85 255, 0, 0 255, 0, 0 255, 0, 0 255, 0, 0
92 102 Parlak yeşil 85, 255, 85 0, 255, 0 35, 209, 139 22, 198, 12 49, 231, 34 85, 255, 85 0, 252, 0 0, 255, 0 0, 255, 0 0, 255, 0
93 103 Parlak sarı 255, 255, 85 255, 255, 0 245, 245, 67 249, 241, 165 234, 236, 35 255, 255, 85 255, 255, 0 255, 255, 0 255, 255, 0 255, 255, 0
94 104 Açık mavi 85, 85, 255 0, 0, 255 59, 142, 234 59, 120, 255 88, 51, 255 85, 85, 255 0, 0, 252 92, 92, 255 0, 0, 255 92, 92, 255
95 105 Parlak Macenta 255, 85, 255 255, 0, 255 214, 112, 214 180, 0, 158 249, 53, 248 255, 85, 255 255, 0, 255 255, 0, 255 255, 0, 255 255, 0, 255
96 106 Parlak Camgöbeği 85, 255, 255 0, 255, 255 41, 184, 219 97, 214, 214 20, 240, 240 85, 255, 255 0, 255, 255 0, 255, 255 0, 255, 255 0, 255, 255
97 107 Parlak beyaz 255, 255, 255 255, 255, 255 229, 229, 229 242, 242, 242 233, 235, 235 255, 255, 255 255, 255, 255 255, 255, 255 255, 255, 255 255, 255, 255
8 bit

As 256 renk arama tabloları grafik kartlarında ortak oldu kaçış dizileri 256 renk önceden tanımlanmış kümesinden seçmek için eklenmiştir:

ESC[38;5;⟨n⟩m Select foreground color
ESC[48;5;⟨n⟩m Select background color
  0-  7:  standard colors (as in ESC [ 30–37 m)
  8- 15:  high intensity colors (as in ESC [ 90–97 m)
 16-231:  6 × 6 × 6 cube (216 colors): 16 + 36 × r + 6 × g + b (0 ≤ r, g, b ≤ 5)
232-255:  grayscale from black to white in 24 steps

ITU 'ın T.416 Bilgi teknolojisi - Açık Belge Mimarisi (ODA) ve değişim biçimi: Karakter içerik mimariler kullandığı ':' yerine ayırıcı karakter olarak:

ESC[38;5;⟨n⟩m Select foreground color      where n is a number from the table below
ESC[48;5;⟨n⟩m Select background color
256 renk modu — ön plan: ESC[38;5;#m arka plan: ESC[48;5;#m
Standart renkler Yüksek yoğunluklu renkler
 0   1   2   3   4   5   6   7   8   9  10 11 12 13 14 15
216 renk
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123
124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195
196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231
gri tonlamalı renkler
232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255

Ayrıca, rxvtve içinde görülen aynı kaçış dizisini kullanan benzer ancak uyumsuz bir 88 renk kodlaması olmuştur xterm-88color. Renk kodlarının yanı sıra şema hakkında fazla bir şey bilinmiyor. 4×4×4 renkli bir küp kullanır.

24 bit

16 ila 24 bit renkli "gerçek renkli" grafik kartları yaygınlaştıkça, uygulamalar 24 bit renkleri desteklemeye başladı. Kaçış dizileriyle 24 bit ön plan ve arka plan renklerinin ayarlanmasını destekleyen terminal öykünücüleri arasında Xterm, KDE'nin Konsole ve iTerm'in yanı sıra GNOME Terminal dahil tüm libvte tabanlı terminaller bulunur .

ESC[ 38;2;⟨r⟩;⟨g⟩;⟨b⟩ m Select RGB foreground color
ESC[ 48;2;⟨r⟩;⟨g⟩;⟨b⟩ m Select RGB background color

İTÜ 'ın T.416 Bilgi teknolojisi - Açık Belge Mimarisi (ODA) ve değişim biçimi: Karakter içerik mimariler ISO / IEC Uluslararası Standart 8613-6 olarak kabul edilmiştir az desteklenen gibi görünüyor alternatif bir versiyonunu verir. '2'den sonraki parametreler, yani r,g,b bile isteğe bağlıdır. Bunun yalnızca noktalı virgülün iki nokta üst üste ile değiştirildiği yukarıdaki dizi olmadığına dikkat edin, önde gelen bir "renk alanı kimliği" vardır (bu gerçek birçok terminal öykünücüsü tarafından gözden kaçırılmıştır, bu eksiklik KDE Konsole'den gelmiş gibi görünmektedir). Renk alanı kimliğinin tanımı bu belgeye dahil edilmemiştir, bu nedenle belirtilmemiş varsayılanı temsil etmek için boş olabilir. Kırmızı-Yeşil-Mavi biçimi belirtmek için '2' değerinin (ve 0-255 dizine alınmış bir renk için yukarıdaki '5') yanı sıra, tanımlanmış uygulama için '0' ve şeffaf için '1' alternatifleri vardır - hiçbiri başka parametrelere sahip olanlar; '3', bir Camgöbeği-Macenta-Sarı düzeni kullanarak renkleri ve bir Camgöbeği-Macenta-Sarı-Siyah için '4', ikincisi Siyah bileşen için "kullanılmayan" olarak işaretlenen konumu kullanarak renkleri belirtir:

ESC[ 38:2:⟨Color-Space-ID⟩:⟨r⟩:⟨g⟩:⟨b⟩:⟨unused⟩:⟨CS tolerance⟩:⟨Color-Space associated with tolerance: 0 for "CIELUV"; 1 for "CIELAB"⟩ m Select RGB foreground color
ESC[ 48:2:⟨Color-Space-ID⟩:⟨r⟩:⟨g⟩:⟨b⟩:⟨unused⟩:⟨CS tolerance⟩:⟨Color-Space associated with tolerance: 0 for "CIELUV"; 1 for "CIELAB"⟩ m Select RGB background color

OSC (İşletim Sistemi Komutu) dizileri

Çoğunlukla bunlar Xterm tarafından tanımlandı. Tarihsel nedenlerden dolayı xterm, komutu olduğu BELgibi sonlandırabilir ST.

Xterm, pencere başlığının tarafından ayarlanmasına izin verir ESC ]0;this is the window title BEL.

Xterm olmayan bir uzantı, ESC ]8;;link ST2017'den itibaren VTE, iTerm2 ve mintty tarafından kullanılan köprüdür.

Linux konsolu, ESC ] P n rr gg bbbir uygulamaya sabit kodlanmışsa diğer terminalleri asabilecek paleti değiştirmek için kullanır . Ancak, ekleme STLinux tarafından göz ardı edilecek ve diğer uçbirimler için uygun, göz ardı edilemez bir sıra oluşturacaktır.

Fs Kaçış dizileri

Eğer ESCaralık içinde bir bayt izler 0x60-0x7E bu tiptedir. ISO-IR kayıt defterine bireysel olarak kaydedilen kontrol işlevleri için kullanılır ve sonuç olarak, farklı bir C1 kontrol kodu setinin kullanıldığı bağlamlarda bile kullanılabilir. Spesifik olarak, ISO/IEC JTC 1/SC 2 tarafından onaylanmış ve ISO veya ISO tarafından tanınan bir kuruluş tarafından standartlaştırılmış tekli kontrol işlevlerine karşılık gelirler . Bunlardan bazıları ECMA-35'te (ISO 2022 / ANSI X3.41), diğerleri ECMA-48'de (ISO 6429 / ANSI X3.64) belirtilmiştir. ECMA-48, bunlara "bağımsız kontrol fonksiyonları" olarak atıfta bulunur.

Terminaller tarafından tanınan bazı Fs tipi (bağımsız işlev) ANSI kaçış dizileri
Kısaltma İsim Etki
ESC c RIS İlk Duruma Sıfırla Terminalin orijinal durumuna tam olarak sıfırlanmasını tetikler. Bu, (varsa) şunları içerebilir: grafik yorumlamayı sıfırlama, tablolama duraklarını temizleme, varsayılan yazı tipine sıfırlama ve daha fazlası.

Fp Kaçış dizileri

Eğer ESCaralık içinde bir bayt izler 0x30-0x3F bu tiptedir. Özel kullanım kontrol işlevleri için ayırın.

VT100 tarafından tanınan bazı tip Fp (özel kullanım) kaçış dizileri , ardılları ve/veya xterm gibi terminal öykünücüleri
Kısaltma İsim Etki
ESC 7 DECSC Aralık Kaydet İmleci İmleç konumunu, kodlama kaydırma durumunu ve biçimlendirme niteliklerini kaydeder.
ESC 8 DECRC DEC Geri Yükleme İmleci İmleç konumunu geri yükler, kaydırma durumunu ve varsa biçimlendirme özelliklerini önceki DECSC'den geri yükler, aksi takdirde bunların hepsini varsayılanlarına sıfırlar.

nF Kaçış dizileri

Eğer ESCaralık içinde bir bayt izler 0x20-0x2F bu tiptedir. Bu aralıkta herhangi bir sayıda ek bayt ve ardından 0x30-0x7E aralığında bir bayt gelir . Bunlar ayrıca birinci baytın düşük dört biti ile alt kategorilere ayrılırlar , örneğin 2Fbirinci baytın 0x22 olduğu diziler için "tip " ; ve son baytın 0x30–0x3F özel kullanım aralığında olup olmadığına (örn. "type 2Fp") veya olmamasına (örn. "type 2Ft") göre. Bireysel kontrol işlevleri için kullanılan tür dizileri (ilk ara baytın olduğu yerler ) dışında , çoğunlukla ISO-2022-JP tarafından kullanılanlar gibi ANSI/ISO kod değiştirme mekanizmaları için kullanılırlar. Tip dizileri, ek ISO-IR kayıtlı bireysel kontrol işlevleri için ayrılırken , özel kullanım kontrol işlevleri için tür dizileri mevcuttur. 3F0x233Ft3Fp

Terminaller tarafından tanınan bazı 0Ft (duyuru) ANSI kaçış dizileri (kapsamlı bir liste değil)
Kısaltma İsim Etki
ESC SP F ECMA-35'te (ANSI X3.41 / ISO 2022) tanımlanmıştır. Fonksiyon tuşlarının C1 kodları yerine ESC + harfi göndermesini sağlar.
ESC SP G ECMA-35'te tanımlanmıştır. Fonksiyon tuşlarının C1 kodlarını göndermesini sağlar.
VT100 tarafından tanınan bazı tip 3Fp (özel kullanım) kaçış dizileri , ardılları ve/veya xterm gibi terminal öykünücüleri
Kısaltma İsim Etki
ESC # 3 DECDHL Aralık Çift Yükseklikli Harfler, Üst Yarı Geçerli satırın iki kat daha uzun karakterler kullanmasını sağlar. Bu kod üst yarı içindir.
ESC # 4 DECDHL Aralık Çift Yükseklikli Harfler, Alt Yarı Geçerli satırın iki kat daha uzun karakterler kullanmasını sağlar. Bu kod alt yarısı içindir.
ESC # 5 DECSWL Aralık Tek Genişlik Hattı Geçerli satırın varsayılan davranışa göre tek genişlikli karakterler kullanmasını sağlar.
ESC # 6 DECDWL Aralık Çift Genişlik Hattı Geçerli satırın, satırın ikinci yarısındaki tüm karakterleri atarak çift genişlikli karakterler kullanmasını sağlar.

Örnekler

CSI 2 J — Bu, ekranı temizler ve bazı cihazlarda imleci y,x konumu 1,1'e (sol üst köşe) yerleştirir.

CSI 32 m— Bu, metni yeşil yapar. Yeşil, koyu, donuk bir yeşil olabilir, bu nedenle, CSI 1 monu parlak yeşil yapacak diziyle Kalın'ı etkinleştirmek veya olarak birleştirmek isteyebilirsiniz CSI 32 ; 1 m. Bazı uygulamalar, karakteri Parlak yapmak için Kalın durumunu kullanır.

CSI 0 ; 6 8 ; "DIR" ; 13 p— Bu, DOS komut satırında geçerli dizinin içeriğini gösterecek olan "DIR" ve ENTER dizesini klavye arabelleğine göndermek için F10 tuşunu yeniden atar. (Yalnızca MS-DOS ANSI.SYS) Bu bazen ANSI bombaları için kullanılıyordu . Bu, dize değerli bir parametre eklemek için standart olmayan bir uzantı kullanan özel kullanımlı bir koddur (p harfiyle belirtildiği gibi). Standardın harfini takip etmek, dizinin D harfiyle biteceğini kabul eder.

CSI s— Bu, imleç konumunu kaydeder. Sırayı kullanmak CSI uonu konumuna geri getirecektir. Geçerli imleç konumunun 7(y) ve 10(x) olduğunu söyleyin. Sıra CSI sbu iki sayıyı kaydedecektir. Artık CSI 20 ; 3 Hveya dizisini kullanarak 20(y) ve 3(x) gibi farklı bir imleç konumuna gidebilirsiniz CSI 20 ; 3 f. Şimdi CSI u dizisini kullanırsanız, imleç konumu 7(y) ve 10(x)'e dönecektir. Bazı terminaller, bunun yerine daha yaygın olarak desteklenen DEC dizilerini ESC 7/ gerektirir ESC 8.

Kabuk komut dosyasında

ANSI çıkış kodları, sözdizimi vurgulaması sağlamak için genellikle UNIX ve UNIX benzeri terminallerde kullanılır . Örneğin, uyumlu terminallerde, aşağıdaki liste komutu, dosya ve dizin adlarını türe göre renk kodlarıyla belirtir.

ls --color

Kullanıcılar, standart çıktının veya standart hatanın bir parçası olarak dahil ederek betiklerinde kaçış kodları kullanabilirler . Örneğin, aşağıdaki GNU sed komutu , ters videoda "WARN" ile başlayan kelimeleri içeren satırları ve koyu kırmızı bir arka plan üzerinde parlak sarı renkte "ERR" ile başlayan kelimeleri (büyük harf ihmal edilir) içeren satırları görüntüleyerek make komutunun çıktısını güzelleştirir . Kodların temsilleri vurgulanmıştır.

make 2>&1 | sed -e 's/.*\bWARN.*/\x1b[7m&\x1b[0m/i' -e 's/.*\bERR.*/\x1b[93;41m&\x1b[0m/i'

Aşağıdaki Bash işlevi, kullanıcı bir tuşa basana kadar terminali (dönüşümlü olarak ters ve normal video modu kodları göndererek) yanıp söner.

flasher () { while true; do printf \\e[?5h; sleep 0.1; printf \\e[?5l; read -s -n1 -t1 && break; done; }

Bu, ile olduğu gibi uzun bir komut sona erdiğinde bir programcıyı uyarmak için kullanılabilir make ; flasher.

printf \\033c

Bu reset, modern Linux sistemlerindeki komuta benzer şekilde konsolu sıfırlayacaktır ; ancak daha eski Linux sistemlerinde ve diğer (Linux olmayan) UNIX türevlerinde bile çalışması gerekir.

C'de

Gnome Terminalinde örnek programın çıktısı
#include <stdio.h>

int main(void)
{
  int i, j, n;
  
  for (i = 0; i < 11; i++) {
    for (j = 0; j < 10; j++) {
      n = 10*i + j;
      if (n > 108) break;
      printf("\033[%dm %3d\033[m", n, n);
    }
    printf("\n");
  }
  return 0;
}

Terminal giriş dizileri

Klavyedeki özel tuşlara basılması ve birçok xterm CSI, DCS veya OSC dizisi çıktısı alınması, genellikle, kullanıcı yazmış gibi terminalden bilgisayara gönderilen bir CSI, DCS veya OSC dizisi üretir.

Normal ana alfanümerik klavye alanının dışındaki bir terminal tuş basımına giriş yazarken, ana bilgisayara ANSI dizileri olarak gönderilebilir. İmleç tuşları gibi eşdeğer bir çıkış işlevine sahip tuşlar için bunlar genellikle çıkış sıralarını yansıtır. Ancak, çoğu tuşa basma için kullanılacak eşdeğer bir çıkış sırası yoktur.

Birkaç kodlama şeması vardır ve ne yazık ki çoğu terminal farklı şemalardan dizileri karıştırır, bu nedenle ana bilgisayar yazılımının herhangi bir şema kullanarak giriş dizileriyle başa çıkabilmesi gerekir. Konuyu karmaşık hale getirmek için, VT terminallerinin kendilerinde , uygulama tarafından değiştirilebilen normal mod ve uygulama modu olmak üzere iki giriş şeması vardır .

(taslak bölümü)

<char>                                -> char
<esc> <nochar>                        -> esc
<esc> <esc>                           -> esc
<esc> <char>                          -> Alt-keypress or keycode sequence
<esc> '[' <nochar>                    -> Alt-[
<esc> '[' (<num>) (';'<num>) '~'      -> keycode sequence, <num> defaults to 1

Sonlandırma karakteri '~' ise, ilk sayı mevcut olmalıdır ve bir anahtar kod numarasıdır, ikinci sayı isteğe bağlı bir değiştirici değerdir. Sonlandırma karakteri bir harfse, harf anahtar kod değeridir ve isteğe bağlı sayı değiştirici değerdir.

Değiştirici değeri varsayılan olarak 1'dir ve 1 çıkarıldıktan sonra basılan değiştirici tuşların bir bitmap'idir: Meta-Ctrl-Alt-Shift. Örneğin, <esc>[4;2~ Shift-End'dir, <esc>[20~ fonksiyon tuşu 9'dur, <esc>[5C Ctrl-Right'tır.

vt sequences:
<esc>[1~    - Home        <esc>[16~   -             <esc>[31~   - F17
<esc>[2~    - Insert      <esc>[17~   - F6          <esc>[32~   - F18
<esc>[3~    - Delete      <esc>[18~   - F7          <esc>[33~   - F19
<esc>[4~    - End         <esc>[19~   - F8          <esc>[34~   - F20
<esc>[5~    - PgUp        <esc>[20~   - F9          <esc>[35~   - 
<esc>[6~    - PgDn        <esc>[21~   - F10         
<esc>[7~    - Home        <esc>[22~   -             
<esc>[8~    - End         <esc>[23~   - F11         
<esc>[9~    -             <esc>[24~   - F12         
<esc>[10~   - F0          <esc>[25~   - F13         
<esc>[11~   - F1          <esc>[26~   - F14         
<esc>[12~   - F2          <esc>[27~   -             
<esc>[13~   - F3          <esc>[28~   - F15         
<esc>[14~   - F4          <esc>[29~   - F16         
<esc>[15~   - F5          <esc>[30~   -

xterm sequences:
<esc>[A     - Up          <esc>[K     -             <esc>[U     -
<esc>[B     - Down        <esc>[L     -             <esc>[V     -
<esc>[C     - Right       <esc>[M     -             <esc>[W     -
<esc>[D     - Left        <esc>[N     -             <esc>[X     -
<esc>[E     -             <esc>[O     -             <esc>[Y     -
<esc>[F     - End         <esc>[1P    - F1          <esc>[Z     -
<esc>[G     - Keypad 5    <esc>[1Q    - F2       
<esc>[H     - Home        <esc>[1R    - F3       
<esc>[I     -             <esc>[1S    - F4       
<esc>[J     -             <esc>[T     - 

<esc>[A ila <esc>[D, ANSI çıkış dizileriyle aynıdır. <num> normalde hiçbir değiştirici tuşa basılmazsa atlanır, ancak çoğu uygulama her zaman F1-F4 için <num> verir. (taslak bölümü)

Xterm, DEC'in VT terminallerinden ve öykündüğü çeşitli diğer terminallerden çeşitli işlev tuşu ve fare giriş sırası şemaları hakkında kapsamlı bir belge sayfasına sahiptir. Thomas Dickey zaman içinde buna çok fazla destek ekledi; ayrıca karşılaştırma için diğer terminal öykünücüleri tarafından kullanılan varsayılan anahtarların bir listesini de tutar.

  • Linux konsolunda, belirli işlev tuşları, formun dizilerini oluşturur . CSI dizisi üzerinde sonlandırılmalıdır .CSI [ char[
  • Terminatör'ün eski sürümleri, değiştiricilerle F1–F4'e basıldığında üretilir . Hatalı davranış GNOME Terminalinden kopyalandı .SS3 1; modifiers char
  • xterm , imleç konumu sorulursa ve F3 tuşuna değiştiricilerle basılırsa, satır == 1 durumunda çarpışan yanıt verir . Bu, ? özel değiştirici as , bu da cevaba as olarak yansıtılacaktır .CSI row ; column RCSI 1 ; modifiers RCSI ? 6 nCSI ? row ; column R
  • birçok uçbirim ESC, alt tuşu aşağıdayken yazılan herhangi bir karakterin başına gelir. Bu, @[\]^_C1 kodlarını oluşturacak büyük harfler ve semboller için belirsizlik yaratır .
  • Konsole , değiştiricilerle F1–F4'e basıldığında oluşturulur.SS3 modifiers char

Ayrıca bakınız

Notlar

Referanslar

Dış bağlantılar