Únikový kód ANSI - ANSI escape code
Standard | |
---|---|
Klasifikace | Řídicí kód založený na ISO/IEC 2022 a sada řídicí sekvence |
Jiná související kódování | Další standardy řídicí funkce: ITU T.101 , JIS X 0207 , ISO 6630 , DIN 31626 , ETS 300 706 |
Únikové sekvence ANSI jsou standardem pro pásmovou signalizaci pro ovládání umístění kurzoru, barvy, stylu písma a dalších možností na video textových terminálech a emulátorech terminálů . Do textu jsou vloženy určité sekvence bajtů , většina začíná únikovým znakem ASCII a závorkovým znakem. Terminál interpretuje tyto sekvence jako příkazy, nikoli jako text pro zobrazení doslovně.
Sekvence ANSI byly zavedeny v 70. letech minulého století, aby nahradily sekvence specifické pro prodejce, a začátkem 80. let se rozšířily na trhu počítačového vybavení. Používají se ve vývojových, vědeckých, komerčních textových aplikacích a také v systémech vývěsek, které nabízejí standardizované funkce.
Ačkoli hardwarové textové terminály jsou v 21. století stále vzácnější, relevance standardu ANSI přetrvává, protože velká většina terminálových emulátorů a příkazových konzolí interpretuje alespoň část standardu ANSI.
Dějiny
Téměř všichni výrobci video terminálů přidali únikové sekvence specifické pro dodavatele k provádění operací, jako je umístění kurzoru na libovolné pozice na obrazovce. Jedním z příkladů je terminál VT52 , který umožnil umístit kurzor na místo x, y na obrazovce odesláním ESC
znaku, Y
znaku a poté dvou znaků představujících číselné hodnoty rovnající se umístění x, y plus 32 (tedy počínaje znakem mezery ASCII a vyhýbáním se kontrolním znakům). Hazeltine 1500 měl podobnou funkci, vyvolána pomocí ~
, DC1
a X a Y pozice odděleny čárkou. Zatímco dva terminály měly v tomto ohledu identickou funkčnost, pro jejich vyvolání bylo nutné použít různé řídicí sekvence.
Protože se tyto sekvence lišily pro různé terminály, musely být vytvořeny propracované knihovny jako termcap („schopnosti terminálu“) a nástroje jako tput, aby programy mohly používat stejné API pro práci s jakýmkoli terminálem. Mnoho z těchto terminálů navíc vyžadovalo odesílání čísel (například řádků a sloupců) jako binárních hodnot znaků; pro některé programovací jazyky a pro systémy, které interně nepoužívaly ASCII, bylo často obtížné převést číslo na správný znak.
Standard ANSI se pokusil tyto problémy vyřešit vytvořením sady příkazů, kterou budou používat všechny terminály, a vyžadující přenos všech číselných informací jako čísel ASCII. První standard v řadě byl ECMA-48, přijatý v roce 1976. Šlo o pokračování série standardů kódování znaků, první z nich byl ECMA-6 z roku 1965, 7bitový standard, ze kterého pochází ISO 646 . Název „sekvence úniku ANSI“ pochází z roku 1979, kdy ANSI přijalo ANSI X3.64. Výbor ANSI X3L2 spolupracoval s výborem ECMA TC 1 na vytvoření téměř identických standardů. Tyto dvě normy byly sloučeny do mezinárodní normy ISO 6429. V roce 1994 ANSI svoji normu stáhla ve prospěch mezinárodní normy.
Prvním populárním video terminálem na podporu těchto sekvencí byl Digital VT100 , představený v roce 1978. Tento model byl na trhu velmi úspěšný, což vyvolalo řadu klonů VT100, mezi prvními a nejpopulárnějšími z nich byl mnohem dostupnější Zenith Z -19 v roce 1979. Mezi další patří Qume QVT-108, Televideo TVI-970, Wyse WY-99GT a také volitelné režimy „VT100“ nebo „VT103“ nebo „ANSI“ s různým stupněm kompatibility u mnoha dalších značek. Popularita těchto postupně vedla k tomu, že stále více softwaru (zejména systémů vývěsek a dalších online služeb ) předpokládalo, že únikové sekvence fungovaly, což vedlo k tomu, že je podporovaly téměř všechny nové terminály a programy emulátorů.
V roce 1981 byl ANSI X3.64 přijat pro použití ve vládě USA publikací FIPS 86. Později americká vláda přestala duplikovat průmyslové standardy, takže FIPS pub. 86 byl stažen.
ECMA-48 byl několikrát aktualizován a v současné době je v 5. vydání, od roku 1991. Je také přijat ISO a IEC jako standard ISO/IEC 6429 . Verze je přijata jako japonský průmyslový standard jako JIS X 0211 .
Související normy obsahují ITU T.61 , na Teletex standard, a ISO / IEC 8613 , v Architektura otevřených dokumentů normy (především ISO / IEC 8613-6 a ITU T.416). Tyto dva systémy sdílejí mnoho únikových kódů se systémem ANSI s rozšířením, které nemusí mít pro počítačové terminály smysl. Oba systémy se rychle přestaly používat, ale ECMA-48 označuje rozšíření v nich použitá jako vyhrazená.
Podpora platformy
Unixové systémy
Ačkoli knihovny typu termcap / terminfo byly primárně vyvíjeny na Unixu a pro něj, v polovině 80. let mohly programy běžící na operačních systémech podobných Unixu téměř vždy předpokládat, že používají terminál nebo emulátor podporující sekvence ANSI; to vedlo k rozšířenému používání ANSI programy běžícími na těchto platformách. Například mnoho her a skriptů prostředí Shell a nástroje, jako jsou seznamy barevných adresářů, přímo zapisují sekvence ANSI, a proto je nelze použít na terminálu, který je neinterpretuje. Mnoho programů, včetně textových editorů, jako jsou vi a GNU Emacs , používá termcap nebo terminfo nebo používá knihovny, jako jsou kletby, které používají termcap nebo terminfo, a tedy teoreticky podporují terminály jiné než ANSI, ale to je v dnešní době tak zřídka testováno, že jsou s těmito terminály pravděpodobně nebude fungovat .
Terminálové emulátory pro komunikaci s místními programy i vzdálenými počítači a konzolí textového systému téměř vždy podporují únikové kódy ANSI. To zahrnuje emulátory terminálu, jako je xterm , rxvt , GNOME Terminal a Konsole na systémech s okenními systémy na bázi X11 nebo Wayland , a emulátory terminálu Terminal.app a jiných výrobců, jako je iTerm2 v systému macOS .
DOS, OS/2 a Windows
MS-DOS 1.x nepodporoval ANSI ani jiné únikové sekvence. Základní BIOS interpretoval pouze několik řídicích znaků ( BEL , CR , LF , BS ), takže bylo téměř nemožné provádět jakýkoli druh aplikace na celou obrazovku. Jakékoli efekty zobrazení musely být prováděny pomocí volání systému BIOS, která byla notoricky pomalá, nebo přímou manipulací s hardwarem IBM PC.
DOS 2.0 představil možnost přidat ovladač pro sekvence escape ANSI - na de facto standardní bytost ANSI.SYS , ale jiní, jako ANSI.COM , NANSI.SYS a ANSIPLUS.EXE se používají stejně (jsou výrazně rychlejší, protože obejít BIOS). Pomalost a skutečnost, že nebyl ve výchozím nastavení nainstalován, software zřídka využívají; místo toho aplikace nadále přímo manipulovaly s hardwarem, aby získaly potřebné zobrazení textu. Ovladače ANSI.SYS a podobné nadále fungovaly v systému Windows 9x až Windows ME a v systémech odvozených z NT pro 16bitové starší programy prováděné pod NTVDM .
Mnoho klonů DOS bylo schopno interpretovat sekvence a nevyžadují načtení samostatného ovladače ANSI. PTS-DOS i Concurrent DOS , Multiuser DOS a REAL/32 mají vestavěnou podporu (plus řadu rozšíření). OS/2 měl příkaz ANSI, který tyto sekvence povolil.
Windows Console nepodporoval ANSI sekvence escape, ani Microsoft poskytnout jakýkoli způsob, který jim umožní. Některé náhrady nebo doplňky pro okna konzoly, jako je JP Software TCC (dříve 4NT), Michael J. Mefford je ANSI.COM Jason Hoodově ANSICON a Maximus5 je ConEmu interpretovány ANSI sekvence escape tištěné programy. Balíček Pythonu interně interpretovaný únikové sekvence ANSI v textu, který se tiskne, jejich překlad do volání pro manipulaci s pozicí barvy a kurzoru, aby bylo snazší přenášet kód Pythonu pomocí ANSI do Windows. Cygwin provádí podobný překlad všech výstupů zapsaných do konzoly pomocí deskriptorů souborů Cygwin, filtrování se provádí pomocí výstupních funkcí souboru cygwin1.dll , což umožňuje přenesení kódu POSIX C do systému Windows.
V roce 2016 společnost Microsoft vydala aktualizaci Windows 10 verze 1511, která neočekávaně implementovala podporu únikových sekvencí ANSI, více než dvě desetiletí po debutu systému Windows NT. To bylo provedeno společně s Windows Subsystem for Linux , což umožňuje terminálovému softwaru podobnému Unixu používat sekvence v konzole Windows. Toto je bohužel ve výchozím nastavení vypnuto, ale Windows PowerShell 5.1 to povolil. PowerShell 6 umožnil vložit potřebný znak ESC do řetězce s `e
.
Windows Terminal , představený v roce 2019, ve výchozím nastavení podporuje sekvence a Microsoft hodlá nahradit Windows Console terminálem Windows.
Atari ST
Atari ST použit příkaz systém přizpůsobený z VT52 s některými rozšíření pro podporu barev, spíše než podporovat ANSI escape kódy.
AmigaOS
AmigaOS nejen interpretuje sekvence kódu ANSI pro textový výstup na obrazovku, ale ovladač tiskárny AmigaOS je také interpretuje (s proprietárními rozšířeními pro AmigaOS) a převádí je do kódů požadovaných pro konkrétní tiskárnu, která je skutečně připojena.
Účinek | |
---|---|
ESC [ nu | Nastaví maximální délku řádků v okně na n. |
ESC [ nt | Nastaví maximální počet řádků v okně na n. |
ESC [ nx | Spustí text n pixelů od levého okraje okna. |
ESC [ ny | Spustí text n pixelů od horního okraje okna. |
VMS / OpenVMS
VMS byl navržen tak, aby byl interaktivně řízen pomocí textových video terminálů Digital, jako je výše uvedený VT100 ; později s grafickými emulátory terminálů, jako je VWS Terminal, DECTerm a xterm.
Popis
Ovládací znaky
Ačkoli to není technicky součástí standardu, téměř všichni uživatelé předpokládají některé funkce některých jednobajtových znaků. To se používá ke zkrácení množství přenesených dat nebo k provedení některých funkcí, které nejsou k dispozici z únikových sekvencí:
^ | C0 | Zkr | název | Účinek |
---|---|---|---|---|
^G | 7 | BEL | Zvonek | Vydává slyšitelný hluk. |
^H | 8 | BS | Backspace | Posune kurzor doleva (ale může se „zalamovat zpět“, pokud je kurzor na začátku řádku). |
^Já | 9 | HT | Tab | Přesune kurzor doprava na další násobek 8. |
^J | 0x0A | LF | Line Feed | Přejde na další řádek, posune zobrazení nahoru, pokud je ve spodní části obrazovky. Obvykle se nepohybuje horizontálně, ačkoli programy by se na to neměly spoléhat. |
^L | 0x0C | FF | Formulář | Přesunout tiskárnu na začátek další stránky. Obvykle se nepohybuje horizontálně, ačkoli programy by se na to neměly spoléhat. Účinek na video terminály se liší. |
^M | 0x0D | ČR | Návrat vozíku | Přesune kurzor na sloupec nula. |
^[ | 0x1B | ESC | Uniknout | Spustí všechny únikové sekvence |
Únikové sekvence se liší délkou. Obecný formát únikové sekvence kompatibilní s ANSI je definován normou ANSI X3.41 (ekvivalent ECMA-35 nebo ISO/IEC 2022). Únikové sekvence se skládají pouze z bytů v rozsahu 0x20—0x7F (všechny nekontrolované znaky ASCII) a lze je analyzovat, aniž byste se dívali dopředu. Chování, když dojde k výskytu řídicího znaku, bajtu s vysokou bitovou sadou nebo bajtu, který není součástí žádné platné sekvence, před koncem, není definováno.
Fe Escape sekvence
Pokud za ESC
ním následuje bajt v rozsahu 0x40 až 0x5F, je to tento typ. Delegováno na příslušnou
normu řídicího kódu C1 . V souladu s tím všechny únikové sekvence odpovídající řídicím kódům C1 z ANSI X3.64 / ECMA-48 dodržují tento formát.
Standard říká, že v 8bitových prostředích mohou být řídicí funkce odpovídající typovým Fe
únikovým sekvencím (těm ze sady řídících kódů C1 ) reprezentovány jako jednotlivé bajty v rozsahu 0x80–0x9F. Na moderních zařízeních se však tyto kódy často používají pro jiné účely, například pro části UTF-8 nebo pro znaky CP-1252 , takže se obvykle používá pouze 2bajtová sekvence. V případě UTF-8 může být řídicí kód C1 zakódován jako dva bajty (např. 0xC2,0x8E pro U+008E ), ale tímto způsobem není uloženo žádné místo.
C1 | Zkr | název | Účinek | |
---|---|---|---|---|
ESC N | 0x8E | SS2 | Single Shift Two | Vyberte jeden znak z jedné z alternativních znakových sad . SS2 vybírá znakovou sadu G2 a SS3 vybírá znakovou sadu G3. V 7bitovém prostředí následuje jeden nebo více GL bytů (0x20–0x7F) určujících znak z této sady. V 8bitovém prostředí to mohou být místo toho bajty GR (0xA0–0xFF). |
ESC O | 0x8F | SS3 | Single Shift tři | |
ESC P | 0x90 | DCS | Řetězec ovládání zařízení | Ukončeno ST. Použití této sekvence Xtermem zahrnuje definování klíčů definovaných uživatelem a vyžádání nebo nastavení dat Termcap/Terminfo. |
ESC [ | 0x9B | CSI | Úvod do sekvence řízení | Spustí většinu užitečných sekvencí ukončených bajtem v rozsahu 0x40 až 0x7E. |
ESC \ | 0x9C | SVATÝ | Smyčcový terminátor | Ukončí řetězce v jiných ovládacích prvcích. |
ESC] | 0x9D | OSC | Příkaz operačního systému | Spustí řídicí řetězec, který má operační systém používat, ukončený ST. |
ESC X | 0x98 | SOS | Začátek řetězce | Převezme argument řetězce textu ukončeného ST. Použití těchto sekvencí řízení řetězců je definováno aplikací nebo zásadou ochrany osobních údajů. Tyto funkce jsou implementovány jen zřídka a xterm tyto argumenty ignoruje. Někteří klienti Kermit umožňují serveru automaticky spouštět příkazy Kermit na klientovi vložením do sekvencí APC; toto je potenciální bezpečnostní riziko, pokud je server nedůvěryhodný. |
ESC ^ | 0x9E | ODPOLEDNE | Zpráva o ochraně osobních údajů | |
ESC _ | 0x9F | APC | Příkaz aplikačního programu |
Sekvence CSI (Control Sequence Introducer)
U příkazů Introduction Control Sequence nebo CSI ESC [
následuje libovolné číslo (včetně žádného) z „bajtů parametrů“ v rozsahu 0x30–0x3F (ASCII 0–9:;<=>?
), poté libovolný počet „mezibajtů“ v rozsahu 0x20–0x2F (ASCII mezera a !"#$%&'()*+,-./
), pak nakonec o jeden „konečný bajt“ v rozsahu 0x40–0x7E (ASCII @A–Z[\]^_`a–z{|}~
).
Všechny běžné sekvence pouze používají parametry jako řadu čísel oddělených středníkem, například 1;2;3
. K chybějícím číslům se přistupuje jako 0
( 1;;3
chová se jako prostřední číslo 0
a v ESC[m
případě 0
resetovacího kódu vůbec žádné parametry ). Některé sekvence (například CUU) jsou 0
považovány 1
za, aby chybějící parametry byly užitečné.
Podskupina uspořádání byla prohlášena za „soukromou“, aby výrobci terminálů mohli vkládat své vlastní sekvence bez konfliktu se standardem. Sekvence obsahující bajty parametrů <=>?
nebo konečné bajty 0x70–0x7E ( p–z{|}~
) jsou soukromé.
Chování terminálu není definováno v případě, že sekvence CSI obsahuje jakýkoli znak mimo rozsah 0x20–0x7E. Tyto nepovolené znaky jsou buď řídicí znaky C0 (rozsah 0–0x1F), DEL (0x7F), nebo bajty s vysokou bitovou sadou. Možné reakce jsou ignorování bajtu, jeho okamžité zpracování a dále zda pokračovat se sekvencí CSI, okamžitě ji přerušit nebo její zbytek ignorovat.
Zkr | název | Účinek | |
---|---|---|---|
CSI n A | CUU | Kurzor nahoru | Přesune kurzor o n (výchozí 1 ) buněk v daném směru. Pokud je kurzor již na okraji obrazovky, nemá to žádný účinek.
|
CSI n B | CUD | Kurzor dolů | |
CSI n C | Manžeta | Kurzor vpřed | |
CSI n D | MLÁDĚ | Kurzor zpět | |
CSI n E | CNL | Kurzor Další řádek | Přesune kurzor na začátek řádku n (výchozí 1 ) řádků dolů. (ne ANSI.SYS )
|
CSI n F | CPL | Kurzor Předchozí řádek | Přesune kurzor na začátek řádku n (výchozí 1 ) řádků nahoru. (ne ANSI.SYS )
|
CSI n G | CHA | Kurzor horizontální absolutní | Přesune kurzor do sloupce n (výchozí 1 ). (ne ANSI.SYS )
|
CSI n ; m H | POHÁR | Pozice kurzoru | Přesune kurzor na řádek n , sloupec m . Hodnoty jsou založeny na 1 a výchozí jsou 1 (levý horní roh), pokud jsou vynechány. Sekvence, která CSI ;5H je synonymem pro CSI 1;5H , stejně jako CSI 17;H je stejná jako CSI 17H aCSI 17;1H
|
CSI n J | ED | Vymazat na displeji | Vymaže část obrazovky. Pokud n je 0 (nebo chybí), smažte od kurzoru na konec obrazovky. Pokud n je 1 , vyčistit od kurzoru na začátek obrazovky. Pokud n je 2 , jasné celou obrazovku (a přesune kurzor do horní vlevo na DOS ANSI.SYS ). Pokud n je 3 , zřejmé, celá obrazovka a odstranit všechny řádky uložené v rolování vyrovnávací paměti (tato funkce byla přidána pro xterm a je podporován jiného terminálu aplikace).
|
CSI n K | EL | Vymazat v řadě | Vymaže část řádku. Pokud n je 0 (nebo chybí), vymažte od kurzoru na konec řádku. Pokud n je 1 , vyčistit od kurzoru do začátku řádku. Pokud n je 2 , zřejmé, celý řádek. Poloha kurzoru se nemění.
|
CSI n S | SU | Posunout nahoru | Posuňte celou stránku nahoru o n (výchozí 1 ) řádků. Dole jsou přidány nové řádky. (ne ANSI.SYS )
|
CSI n T | SD | Posunout dolů | Posuňte celou stránku dolů o n (výchozí 1 ) řádků. V horní části jsou přidány nové řádky. (ne ANSI.SYS )
|
CSI n ; m f | HVP | Horizontální vertikální poloha | Stejné jako CUP, ale počítá se jako funkce efektoru formátu (jako CR nebo LF ), nikoli jako funkce editoru (jako CUD nebo CNL). To může vést k odlišnému zacházení v určitých režimech terminálu. |
CSI n m | SGR | Vyberte Grafické vykreslení | Nastaví barvy a styl znaků následujících za tímto kódem |
CSI 5i | Zapnutý port AUX | Povolte aux sériový port obvykle pro místní sériovou tiskárnu | |
CSI 4i | Vypnutý port AUX | Obvykle vypněte pomocný sériový port pro místní sériovou tiskárnu
|
|
CSI 6n | DSR | Zpráva o stavu zařízení | Přenáší hlášení polohy kurzoru (CPR) ESC[n;mR , kde n je řádek a m je sloupec.)
|
Zkr | název | Účinek | |
---|---|---|---|
CSI s | SCP, SCOSC | Uložit aktuální pozici kurzoru | Uloží pozici/stav kurzoru v režimu konzoly SCO. V režimu svislé rozdělené obrazovky se místo toho používá k nastavení (jako ) nebo resetování levého a pravého okraje.
CSI n ; n s |
CSI u | RCP, SCORC | Obnovte uloženou pozici kurzoru | Obnoví pozici/stav kurzoru v režimu konzoly SCO. |
CSI? 25 h | DECTCEM | Ukazuje kurzor z VT220 . | |
CSI? 25 l | DECTCEM | Skryje kurzor. | |
CSI? 1049 h | Povolit alternativní vyrovnávací paměť obrazovky z xterm | ||
CSI? 1049 l | Zakažte alternativní vyrovnávací paměť obrazovky z xterm | ||
CSI? 2004 h | Zapněte režim vložení v závorkách. Text vložený do terminálu bude obklopen znakem ESC [200~ a ESC [201~ a znaky v něm by neměly být považovány za příkazy (například ve Vimu). Z xterm
|
||
CSI? 2004 l | Vypněte režim vložení v závorkách. |
Parametry SGR (Select Graphic Rendition)
Select Graphic Rendition (SGR) nastavuje atributy zobrazení. Ve stejné sekvenci lze nastavit několik atributů oddělených středníkem. Každý atribut zobrazení zůstane v platnosti, dokud jej následující výskyt SGR nevynuluje. Pokud nejsou zadány žádné kódy, CSI m
považuje se za CSI 0 m
(reset / normální).
název | Poznámka | |
---|---|---|
0 | Reset nebo normální | Všechny atributy vypnuty |
1 | Tučná nebo zvýšená intenzita | Stejně jako u slabých je změna barvy vynálezem PC (SCO / CGA ). |
2 | Slabý, snížená intenzita nebo tlumený | Může být implementováno jako lehká váha písma, například tučně. |
3 | Kurzíva | Není široce podporováno. Někdy jsou považovány za inverzní nebo mrkající. |
4 | Zdůraznit | Stylová rozšíření existují pro Kitty, VTE, mintty a iTerm2. |
5 | Pomalé blikání | Méně než 150 za minutu |
6 | Rychlé blikání | MS-DOS ANSI.SYS, 150+ za minutu; není široce podporován |
7 | Převrátit video nebo převrátit | Vyměňte barvy popředí a pozadí; nekonzistentní emulace |
8 | Skrýt nebo skrýt | Není široce podporováno. |
9 | Přeškrtnutá , nebo stávky | Znaky čitelné, ale označené jako pro smazání. |
10 | Primární (výchozí) písmo | |
11–19 | Alternativní písmo | Vyberte alternativní písmo n - 10 |
20 | Fraktur (gotický) | Podporováno jen zřídka |
21 | Dvojitě podtrženo; nebo: není tučně | Double-underline za ECMA-48, ale zakáže tučné intenzitu na několika terminálů, a to i v linuxovém jádře je konzole před verze 4.17. |
22 | Normální intenzita | Ani tučné, ani slabé; barevné změny tam, kde je intenzita implementována jako taková. |
23 | Ani kurzívou, ani blackletterem | |
24 | Není podtrženo | Ani jednotlivě, ani dvakrát podtrženo |
25 | Nebliká | |
26 | Proporcionální rozteč | ITU T.61 a T.416, není známo, že by měly být použity na terminálech |
27 | Není obrácen | |
28 | Odhalit | Neskrýváno |
29 | Neškrtnuto | |
30–37 | Nastavte barvu popředí | |
38 | Nastavte barvu popředí |
Další argumenty jsou 5;n nebo2;r;g;b
|
39 | Výchozí barva popředí | Definovaná implementace (podle standardu) |
40–47 | Nastavit barvu pozadí | |
48 | Nastavit barvu pozadí |
Další argumenty jsou 5;n nebo2;r;g;b
|
49 | Výchozí barva pozadí | Definovaná implementace (podle standardu) |
50 | Zakázat proporcionální mezery | T.61 a T.416 |
51 | Zarámovaný | Implementováno jako „ volič variací emodži “ v mintty. |
52 | Obkroužený | |
53 | Podtrženo | |
54 | Ani zarámovaný, ani obklopený | |
55 | Není podtrženo | |
58 | Nastavit barvu podtržení | Není ve standardu; implementováno v Kitty, VTE, mintty a iTerm2. Další argumenty jsou 5;n nebo2;r;g;b .
|
59 | Výchozí barva podtržení | Není ve standardu; implementováno v Kitty, VTE, mintty a iTerm2. |
60 | Ideogram podtržený nebo pravá boční čára | Podporováno jen zřídka |
61 | Ideogram dvojité podtržení nebo dvojitá čára na pravé straně | |
62 | Ideogram nad čárou nebo čára na levé straně | |
63 | Ideogram s dvojitým překryvem nebo dvojitou čarou na levé straně | |
64 | Označení napětí ideogramem | |
65 | Žádné atributy ideogramu | Resetovat efekty všech 60 -64
|
73 | Horní index | Implementováno pouze v mintty |
74 | Dolní index | |
75 | Ani horní ani dolní index | |
90–97 | Nastavte jasnou barvu popředí | Není ve standardu; původně implementoval aixterm |
100–107 | Nastavte jasnou barvu pozadí |
Barvy
3bitové a 4bitové
Původní specifikace měla pouze 8 barev a pouze jim dala názvy. Parametry SGR 30–37 zvolily barvu popředí, zatímco 40–47 vybralo pozadí. Docela málo terminálů implementovalo „tučné“ (kód SGR 1) jako jasnější barvu než jiné písmo, což poskytuje 8 dalších barev v popředí. Obvykle je nemůžete získat jako barvy pozadí, i když to někdy umožňuje inverzní video (kód SGR 7). Příklady: použití černých písmen na bílém pozadí, použití ESC[30;47m
červené barvy, použití ESC[31m
jasně červené barvy ESC[1;31m
. Chcete -li resetovat barvy na jejich výchozí hodnoty, použijte ESC[39;49m
(na některých terminálech není podporováno) nebo resetujte všechny atributy pomocí ESC[0m
. Pozdější terminály přidaly možnost přímo specifikovat „jasné“ barvy s 90–97 a 100–107.
Když hardware začal používat 8bitové převodníky digitálního signálu na analogový (DAC), několik kusů softwaru těmto názvům přiřadilo 24bitová barevná čísla. Níže uvedený graf ukazuje výchozí hodnoty odeslané do DAC pro některý běžný hardware a software; ve většině případů jsou konfigurovatelné.
FG | BG | název | VGA |
Konzola Windows XP |
Windows PowerShell |
Kód Visual Studio |
Konzole Windows 10 |
Terminal.app | Tmel | mIRC | xterm | Ubuntu | Terminál Eclipse |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
30 | 40 | Černá | 0, 0, 0 | 12, 12, 12 | 0, 0, 0 | 1, 1, 1 | 0, 0, 0 | ||||||
31 | 41 | Červené | 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 | Zelená | 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 | Žlutá | 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 | Modrý | 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 | Purpurová | 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 | Tyrkysová | 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 | Bílý | 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 | Jasně černá (šedá) | 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 | Jasně červená | 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 | Světle zelená | 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 | Světle žlutá | 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 | Zářivě modrá | 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 | Světle purpurová | 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 | Světle azurová | 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 | Zářivě bíla | 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 |
8bitové
Jak 256 barevných vyhledávací tabulky se stal obyčejný na grafických kartách, escape sekvence byly přidány do vybrat z předem definované sady 256 barev:
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
Na ITU ‚S T.416 Informační technologie - Architektura otevřených dokumentů (ODA) a formát výměny: obsah Character architektury použití‚:‘jako oddělovač znaků namísto:
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
256barevný režim-popředí: ESC [38; 5; #m pozadí: ESC [48; 5; #m | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Standardní barvy | Barvy vysoké intenzity | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
216 barev | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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 | ||||||||||||||||||||||||
Barvy ve stupních šedi | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Došlo také k podobnému, ale nekompatibilnímu 88-barevnému kódování pomocí stejné únikové sekvence, viděné v rxvt
a xterm-88color
. Kromě barevných kódů se o schématu moc neví. Používá barevnou kostku 4 × 4 × 4.
24bitové
Protože grafické karty „skutečné barvy“ s 16 až 24 bity barev začaly být běžné, aplikace začaly podporovat 24bitové barvy. Mezi emulátory terminálu podporující nastavení 24bitových barev popředí a pozadí s únikovými sekvencemi patří Xterm, Konsole KDE a iTerm, stejně jako všechny terminály založené na libvte, včetně terminálu GNOME .
ESC[ 38;2;⟨r⟩;⟨g⟩;⟨b⟩ m Select RGB foreground color ESC[ 48;2;⟨r⟩;⟨g⟩;⟨b⟩ m Select RGB background color
ITU ‚s T.416 Informační technologie - Architektura otevřených dokumentů (ODA) a formát výměny: obsah Character architektury, která byla přijata jako ISO / IEC mezinárodní normy 8613-6 poskytuje alternativní verzi, která se zdá být méně podporovány. Parametry za '2', tj. I r, g, b jsou volitelné. Všimněte si, že nejde jen o výše uvedenou sekvenci se středníkem nahrazenou dvojtečkou, ale existuje úvodní „ID barevného prostoru“ (tuto skutečnost mnoho terminálových emulátorů postrádalo, zdá se, že toto opomenutí pochází z KDE Konsole). Definice ID barevného prostoru není v tomto dokumentu zahrnuta, takže může představovat prázdné místo, které představuje nespecifikované výchozí nastavení. Kromě hodnoty '2' pro specifikaci červeno-zeleného-modrého formátu (a '5' výše pro indexovanou barvu 0-255) existují alternativy '0' pro definovanou implementaci a '1' pro transparentní-ani toho, co má nějaké další parametry; '3' určuje barvy pomocí schématu azurová-purpurová-žlutá a '4' pro azurová-purpurová-žlutá-černá, přičemž druhá používá pozici označenou jako "nepoužitou" pro černou komponentu:
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
Sekvence OSC (Operating System Command)
Většinou je definoval Xterm. Z historických důvodů může xterm ukončit příkaz BEL
stejně jako ST
.
Xterm umožňuje nastavit název okna ESC ]0;this is the window title BEL
.
Non-xterm extension is the hyperlink, ESC ]8;;link ST
from 2017, used by VTE, iTerm2, and mintty.
Konzole Linux používá ESC ] P n rr gg bb
ke změně palety, která, pokud je pevně zakódována do aplikace, může viset na jiných terminálech. ST
Linux však bude připojování ignorovat a bude tvořit správnou, ignorovatelnou sekvenci pro ostatní terminály.
Fs Únikové sekvence
Pokud za ESC
ním následuje bajt v rozsahu 0x60—0x7E , je tohoto typu. Používá se pro řídicí funkce jednotlivě registrované v registru ISO-IR, a proto je k dispozici i v kontextech, kde se používá jiná sada řídicích kódů C1. Konkrétně odpovídají jednotlivým řídicím funkcím schváleným ISO/IEC JTC 1/SC 2 a standardizovanými ISO nebo orgánem uznaným ISO. Některé z nich jsou specifikovány v ECMA-35 (ISO 2022 / ANSI X3.41), jiné v ECMA-48 (ISO 6429 / ANSI X3.64). ECMA-48 je označuje jako „nezávislé řídicí funkce“.
Zkr | název | Účinek | |
---|---|---|---|
ESC c | RIS | Obnovit výchozí stav | Spustí úplný reset terminálu do původního stavu. To může zahrnovat (je -li to relevantní): resetování grafického ztvárnění, vymazání tabulátorových zastávek, reset na výchozí písmo a další. |
Fp Únikové sekvence
Pokud za ESC
ním následuje bajt v rozsahu 0x30—0x3F , je to tento typ. Oddělené pro funkce ovládání soukromého použití.
Zkr | název | Účinek | |
---|---|---|---|
ESC 7 | DECSC | Uložit kurzor DEC | Uloží pozici kurzoru, stav posunu kódování a atributy formátování. |
ESC 8 | DECRC | Kurzor DEC Restore | Obnoví pozici kurzoru, stav posunu kódování a atributy formátování z předchozího DECSC, pokud existují, jinak resetuje všechny tyto na jejich výchozí hodnoty. |
nF Únikové sekvence
Pokud za ESC
znakem následuje bajt v rozsahu 0x20—0x2F,
jedná se o tento typ. Následuje libovolný počet dalších bajtů v tomto rozsahu a pak bajt v rozsahu 0x30-0x7E . Jsou dále subkategorizovány nízkými čtyřmi bity prvního bajtu, např. "Typ 2F
" pro sekvence, kde první bajt je 0x22 ; a podle toho, zda je konečný bajt v rozsahu soukromého použití
0x30—0x3F (např. „typ 2Fp
“) nebo ne (např. „typ
2Ft
“). Většinou se používají pro mechanismy přepínání kódů ANSI/ISO, jako jsou ty, které používá ISO-2022-JP , s výjimkou typových
3F
sekvencí (těch, kde je první mezibajt 0x23
), které se používají pro jednotlivé řídicí funkce. Typové 3Ft
sekvence jsou vyhrazeny pro další individuální řídicí funkce registrované ISO-IR, zatímco typové 3Fp
sekvence jsou k dispozici pro kontrolní funkce pro soukromé použití.
Zkr | název | Účinek | |
---|---|---|---|
ESC SP F | Definováno v ECMA-35 (ANSI X3.41 / ISO 2022). Umožňuje funkčním klávesám odesílat ESC + písmeno namísto kódů C1. | ||
ESC SP G | Definováno v ECMA-35. Umožňuje funkčním klávesám odesílat kódy C1. |
Zkr | název | Účinek | |
---|---|---|---|
ESC # 3 | DECDHL | DEC Dopisy s dvojitou výškou, horní polovina | Nastaví, aby aktuální řádek používal znaky dvakrát tak vysoké. Tento kód je pro horní polovinu. |
ESC # 4 | DECDHL | Písmena DEC s dvojitou výškou, spodní polovina | Nastaví, aby aktuální řádek používal znaky dvakrát tak vysoké. Tento kód je pro spodní polovinu. |
ESC # 5 | DECSWL | DEC Single-Width Line | Nastaví, aby aktuální řádek používal znaky s jednoduchou šířkou podle výchozího chování. |
ESC # 6 | DECDWL | DEC Double-Width Line | Nastaví, aby aktuální řádek používal znaky s dvojnásobnou šířkou a zahodil všechny znaky ve druhé polovině řádku. |
Příklady
CSI 2 J
- Tím se vymaže obrazovka a na některých zařízeních se kurzor umístí do polohy y, x 1,1 (levý horní roh).
CSI 32 m
- Díky tomu je text zelený. Zelená může být tmavá, matně zelená, takže můžete chtít povolit tučné sekvence, díky CSI 1 m
nimž bude jasně zelená, nebo jako kombinace CSI 32 ; 1 m
. Některé implementace používají k zvýraznění postavy Tučný stav.
CSI 0 ; 6 8 ; "DIR" ; 13 p
- Tím se znovu přiřadí klávesě F10, aby se do vyrovnávací paměti klávesnice odeslal řetězec „DIR“ a ENTER, který by v příkazovém řádku systému DOS zobrazoval obsah aktuálního adresáře. (Pouze MS-DOS ANSI.SYS) Toto se někdy používalo pro bomby ANSI . Jedná se o kód pro soukromé použití (jak naznačuje písmeno p) s použitím nestandardního rozšíření, které obsahuje parametr s hodnotou řetězce. Po písmenu normy by se uvažovalo, že sekvence končí písmenem D.
CSI s
- Tím se poloha kurzoru uloží. Pomocí sekvence CSI u
ji obnovíte do polohy. Řekněme, že aktuální pozice kurzoru je 7 (y) a 10 (x). Sekvence CSI s
uloží tato dvě čísla. Nyní se můžete přesunout na jinou pozici kurzoru, například 20 (y) a 3 (x), pomocí sekvence CSI 20 ; 3 H
nebo CSI 20 ; 3 f
. Pokud použijete sekvenci CSI u, pozice kurzoru se vrátí na 7 (y) a 10 (x). Některé terminály vyžadují sekvence DEC ESC 7
/, ESC 8
které jsou více podporovány.
V shell skriptování
Únikové kódy ANSI se často používají v terminálech UNIX a UNIX k zajištění zvýraznění syntaxe . Například na kompatibilních terminálech následující seznam zadává názvy souborů a adresářů barevných kódů podle typu.
ls --color
Uživatelé mohou ve svých skriptech používat únikové kódy tak, že je zahrnou jako součást standardního výstupu nebo standardní chyby . Například následující příkaz GNU sed zkrášluje výstup příkazu make zobrazením řádků obsahujících slova začínající „WARN“ v obráceném videu a slova začínající „ERR“ jasně žlutou barvou na tmavě červeném pozadí ( velká a malá písmena jsou ignorována). Znázornění kódů je zvýrazněno.
make 2>&1 | sed -e 's/.*\bWARN.*/\x1b[7m&\x1b[0m/i' -e 's/.*\bERR.*/\x1b[93;41m&\x1b[0m/i'
Následující funkce Bash bliká na terminálu (střídavým odesíláním kódů zpětného a normálního režimu videa), dokud uživatel nestiskne klávesu.
flasher () { while true; do printf \\e[?5h; sleep 0.1; printf \\e[?5l; read -s -n1 -t1 && break; done; }
Toho lze použít k upozornění programátora na ukončení dlouhého příkazu, například pomocí make ; flasher
.
printf \\033c
Tím se resetuje konzola, podobně jako příkaz reset
na moderních systémech Linux; mělo by to však fungovat i na starších systémech Linux a na jiných (ne Linuxových) UNIXových variantách.
V C.
#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;
}
Terminální vstupní sekvence
Stisknutím speciálních kláves na klávesnici a výstupem mnoha sekvencí xterm CSI, DCS nebo OSC se často vytvoří sekvence CSI, DCS nebo OSC odeslané z terminálu do počítače, jako by je uživatel zadal.
Při psaní vstupu na terminál lze stisknout klávesy mimo normální hlavní alfanumerickou oblast klávesnice jako sekvenci ANSI. U klíčů, které mají ekvivalentní výstupní funkci, jako jsou například kurzorové klávesy, často tyto zrcadlí výstupní sekvence. Pro většinu stisknutí kláves však neexistuje ekvivalentní výstupní sekvence k použití.
Existuje několik kódovacích schémat a bohužel většina terminálů mísí sekvence z různých schémat, takže hostitelský software musí být schopen zvládnout vstupní sekvence pomocí libovolného schématu. Aby to bylo komplikované, samotné terminály VT mají dvě schémata vstupu, normální režim a režim aplikace, které lze přepínat aplikací.
(část návrhu)
<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
Pokud je ukončovací znak '~', musí být přítomno první číslo a jde o číslo klíčového kódu, druhé číslo je volitelná hodnota modifikátoru. Pokud je koncovým znakem písmeno, je písmeno hodnotou keycode a volitelné číslo je hodnotou modifikátoru.
Výchozí hodnota modifikátoru je 1 a po odečtení 1 je stisknuta bitmapa modifikačních kláves: Meta-Ctrl-Alt-Shift. Například <esc> [4; 2 ~ je Shift-End, <esc> [20 ~ je funkční klávesa 9, <esc> [5C je Ctrl-Right.
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 až <esc> [D jsou stejné jako výstupní sekvence ANSI. Pokud není stisknuto žádné tlačítko modifikátoru, <num> se obvykle vynechá, ale většina implementací vždy vydá <num> pro F1-F4. (část návrhu)
Xterm má komplexní dokumentační stránku o různých schématech sekvencí vstupu funkčních kláves a myší z terminálů VT DEC a různých dalších terminálů, které emuluje. Thomas Dickey tomu postupem času přidal spoustu podpory; také udržuje seznam výchozích klíčů používaných jinými emulátory terminálu pro srovnání.
- Na konzole Linux generují určité funkční klávesy sekvence formuláře . Sekvence CSI by měla končit na .
CSI [ char
[
- Staré verze Terminátoru se generují po stisknutí F1 – F4 pomocí modifikátorů. Chybné chování bylo zkopírováno z terminálu GNOME .
SS3 1; modifiers char
- xterm odpoví, pokud je požádán o pozici kurzoru a pokud je stisknuta klávesa F3 s modifikátory, které se střetávají v případě řádku == 1. Tomu lze zabránit použitím ? private modifier as , což se projeví v odpovědi jako .
CSI row ; column R
CSI 1 ; modifiers R
CSI ? 6 n
CSI ? row ; column R
- mnoho terminálů se připojuje
ESC
k libovolnému znaku, který je napsán klávesou alt dolů. To vytváří nejednoznačnost velkých písmen a symbolů@[\]^_
, které by tvořily kódy C1. -
Konsole generuje, když jsou pomocí modifikátorů stisknuty klávesy F1 – F4.
SS3 modifiers char
Viz také
- Umění ANSI
- Kontrolní postava
- Advanced Video Attribute Terminal Assembler and Recreator (AVATAR)
- ISO/IEC JTC 1/SC 2
- Řídicí kódy C0 a C1
Poznámky
Reference
externí odkazy
- Standardní ECMA-48, kontrolní funkce pro sady kódovaných znaků . ( 5. vydání, červen 1991 ), European Computer Manufacturers Association, Ženeva 1991 (vydáno také ISO a IEC jako standard ISO/IEC 6429)
- Dokumenty DEC vt100.net
- "ANSI.SYS - únikové sekvence terminace emulace terminálu" . Archivovány od originálu dne 6. února 2006 . Citováno 22. února 2007 .
- Sekvence Xterm / Escape
- Sekvence AIXterm / Escape
- Kolekce únikových sekvencí pro terminály, které jsou vágně kompatibilní s ECMA-48 a přáteli.
- „Únikové sekvence ANSI“ . Archivovány od originálu dne 25. května 2011.
- ITU-T Rec. T.416 (03/93) Informační technologie - Open Document Architecture (ODA) a formát pro výměnu: Architektury obsahu znaků