ANSI escape kodovi
ANSI escape kod je kratka sekvenca znakova koju program ispisuje kako bi rekao terminalu da napravi nešto umjesto da prikaže te znakove — oboji sljedeće riječi crvenom, pomakni kursor gore dva reda, očisti ekran. Terminal progluta sekvencu i izvršava je, što je zašto log pun njih izgleda kao šum kad ga otvorite u editoru.
Svaki kod ispod počinje escape bajtom i, s jednom iznimkom, otvarajućom zagradnom zagradom. Stupac parametra daje dio između zagrade i završnog slova, što je ono što sastavite u kodu; prvi stupac prikazuje cijelu sekvencu kao što biste je napisali u shell-u.
Podrška se razlikuje između terminala i ova stranica to navodi gdje je važno. Osam osnovnih boja i masno funkcioniraju svugdje; blinkanje, dvostruko podvučeno i true color ne.
Anatomija sekvence
6Svaki kod na ovoj stranici ima isti oblik: escape bajt, otvarajuća zagrada, parametri i jedno slovo koje kaže što s njima.
| Sekvenca | Parametar | Učinak |
|---|---|---|
| \e | 0x1B | Escape bajt koji počinje svaku sekvencuNapisan \e u shell-u, \033 u C, \x1b u većini jezika i \u001b u JSON i Java. |
| \e[ | CSI | Control Sequence Introducer — otvara parametriziranu naredbu |
| \e[<n>m | m | Select Graphic Rendition: sve boje i stil završavaju s m |
| \e[1;4;31m | 1;4;31 | Nekoliko parametara odjednom, odvojenih točka-zarezimaMasno, podvučeno i crveno u jednoj sekvenci — kraće od tri odvojena i identičnog učinka. |
| \e[0m | 0 | Briše svaki atribut natrag na zadanu postavku terminalaIspišite to na kraju obojane izlaza. Program koji izlazi bez toga ostavi korisniku obojani prompt. |
| \e]8;;URL\e\\text\e]8;;\e\\ | OSC 8 | Klikljiva hiperveza, u terminalima koji je podržavajuOSC sekvenca, a ne CSI, i završna je s ESC \ umjesto slova. |
Atributi teksta
14Podrška je neravnomjerna ispod prva pet. Blinkanje se gotovo svugdje ignorira, a nekoliko terminala prikazuje dim i italic identično.
| Sekvenca | Parametar | Učinak |
|---|---|---|
| \e[1m | 1 | Masno ili sjajno |
| \e[2m | 2 | Prigušeno |
| \e[3m | 3 | Kurziv |
| \e[4m | 4 | Podvučeno |
| \e[5m | 5 | BlinkanjeČesto se ignorira; većina modernih terminala ga prikazuje kao obični tekst. |
| \e[7m | 7 | Obrnuto: zamjenjuje prednji plan i pozadinu |
| \e[8m | 8 | Skriveno: tekst je tamo ali se ne crta |
| \e[9m | 9 | Precrtano |
| \e[21m | 21 | Dvostruko podvučenoNeki terminali čitaju 21 kao „isključi masno”. |
| \e[22m | 22 | Normalna intenzitet: poništava masno i dim |
| \e[23m | 23 | Poništava italic |
| \e[24m | 24 | Poništava podvučeno |
| \e[27m | 27 | Poništava obrnuto |
| \e[29m | 29 | Poništava precrtano |
Boja teksta
17Osam standardnih boja i njihove sjajne kolege. Ono što čitač zapravo vidi je njegov terminal tema — „crvena” je slot u paleti, ne hex vrijednost.
| Sekvenca | Parametar | Učinak |
|---|---|---|
| \e[30m | 30 | Crni tekst |
| \e[31m | 31 | Crveni tekst |
| \e[32m | 32 | Zeleni tekst |
| \e[33m | 33 | Žuti tekst |
| \e[34m | 34 | Plavi tekst |
| \e[35m | 35 | Ljubičasti tekst |
| \e[36m | 36 | Azurni tekst |
| \e[37m | 37 | Bijeli tekst |
| \e[39m | 39 | Natrag na zadanu boju teksta |
| \e[90m | 90 | Sjajni crni tekst |
| \e[91m | 91 | Sjajni crveni tekst |
| \e[92m | 92 | Sjajni zeleni tekst |
| \e[93m | 93 | Sjajni žuti tekst |
| \e[94m | 94 | Sjajni plavi tekst |
| \e[95m | 95 | Sjajni ljubičasti tekst |
| \e[96m | 96 | Sjajni azurni tekst |
| \e[97m | 97 | Sjajni bijeli tekst |
Boja pozadine
17Ista paleta pomaknuta za deset. Kod pozadine postavlja ćeliju iza teksta i ostaje aktivna dok se ne resetira.
| Sekvenca | Parametar | Učinak |
|---|---|---|
| \e[40m | 40 | Crna pozadina |
| \e[41m | 41 | Crvena pozadina |
| \e[42m | 42 | Zelena pozadina |
| \e[43m | 43 | Žuta pozadina |
| \e[44m | 44 | Plava pozadina |
| \e[45m | 45 | Ljubičasta pozadina |
| \e[46m | 46 | Azurna pozadina |
| \e[47m | 47 | Bijela pozadina |
| \e[49m | 49 | Natrag na zadanu pozadinu |
| \e[100m | 100 | Sjajni crna pozadina |
| \e[101m | 101 | Sjajni crvena pozadina |
| \e[102m | 102 | Sjajni zelena pozadina |
| \e[103m | 103 | Sjajni žuta pozadina |
| \e[104m | 104 | Sjajni plava pozadina |
| \e[105m | 105 | Sjajni ljubičasta pozadina |
| \e[106m | 106 | Sjajni azurna pozadina |
| \e[107m | 107 | Sjajni bijela pozadina |
256 boja i true color
4Dva proširenja istog SGR mehanizma. Oboje su široko, ali ne univerzalno podržavana; terminal koji ih ne razumije obično ignora sekvencu umjesto da je ispis.
| Sekvenca | Parametar | Učinak |
|---|---|---|
| \e[38;5;<n>m | 38;5;n | Tekst u boji palete n, 0–2550–15 su šesnaestka gore, 16–231 6×6×6 boja kocka, 232–255 skala sive. |
| \e[48;5;<n>m | 48;5;n | Pozadina u boji palete n, 0–255 |
| \e[38;2;<r>;<g>;<b>m | 38;2;r;g;b | Tekst u točnoj 24-bitnoj boji |
| \e[48;2;<r>;<g>;<b>m | 48;2;r;g;b | Pozadina u točnoj 24-bitnoj boji |
Pomicanje kursora
11Pomaci se ne skroliraju i ne omotavaju: kursor koji je već na vrhu ekrana ignora zahtjev da ide gore.
| Sekvenca | Parametar | Učinak |
|---|---|---|
| \e[<n>A | A | Gore za n redaka |
| \e[<n>B | B | Dolje za n redaka |
| \e[<n>C | C | Desno za n stupaca |
| \e[<n>D | D | Lijevo za n stupaca |
| \e[<n>E | E | Dolje za n redaka, na početak reda |
| \e[<n>F | F | Gore za n redaka, na početak reda |
| \e[<n>G | G | Na stupac n trenutnog reda |
| \e[<row>;<col>H | H | Na apsolutni red i stupac, brojano od 1 |
| \e[s | s | Zapamti poziciju kursora |
| \e[u | u | Vrati se na zapamćenu poziciju |
| \e[6n | 6n | Pitaj terminal gdje je kursorTerminal odgovara na standardni unos kao \e[<red>;<stupac>R — jedina sekvenca ovdje koja daje odgovor. |
Brisanje
7Brisanje piše razmake s trenutnom bojom pozadine; ne pomiče kursor.
| Sekvenca | Parametar | Učinak |
|---|---|---|
| \e[0J | 0J | Obriši od kursora do kraja ekrana |
| \e[1J | 1J | Obriši od početka ekrana do kursora |
| \e[2J | 2J | Obriši cijeli ekranKursor ostaje gdje je bio — zato se obično kombinira s \e[H. |
| \e[3J | 3J | Obriši i buffer za nazad |
| \e[0K | 0K | Obriši od kursora do kraja reda |
| \e[1K | 1K | Obriši od početka reda do kursora |
| \e[2K | 2K | Obriši cijeli red\r\e[2K je uobičajeni način da se redira redak s napredkom na mjestu. |
Terminalni modovi
8Privatni modovi, označeni s upitnik. Mijenjaju kako terminal funkcionira umjesto kako jedan komad teksta izgleda, i svaki se od njih mora vratiti prije nego što se program završi.
| Sekvenca | Parametar | Učinak |
|---|---|---|
| \e[?25l | ?25l | Sakrij kursor |
| \e[?25h | ?25h | Prikaži kursor |
| \e[?1049h | ?1049h | Prebaci na alternativni ekranOno što koristi program u cijelom ekranu kako bi buffer shell-a ispod njega preživi. |
| \e[?1049l | ?1049l | Prebaci natrag na glavni ekran |
| \e[?7h | ?7h | Omotaj duge redake na desnom rubu |
| \e[?7l | ?7l | Neka dugi redaci padaju sa desnog ruba |
| \e[?2004h | ?2004h | Uključi bracketed pasteZalijepljeni tekst dolazi obmotan u \e[200~ i \e[201~, tako da shell može razlikovati pisanje od lijepljenja. |
| \e[?2004l | ?2004l | Isključi bracketed paste |