ANSI escape kode
ANSI escape koda je kratko zaporedje znakov, ki ga program izpiše, da terminalski veli narediti kaj drugega, kot le prikazati te znake — naslednjo besedilo obarvati rdeče, kurzor premakniti dve vrstici navzgor, počistiti zaslon. Terminal zaporedje požre in ga izvršit, zato se dnevnik poln njih v urejevalniku bere kot šum.
Vsaka koda spodaj se začne z escape bajtom in — z eno izjemo — z odpirajočo oglatim oklepajem. Stolpec parametrov daje del med oglatim oklepajem in zadnjim znakom, to je del, ki ga sestavljate v kodi; prvi stolpec prikazuje celotno zaporedje tako, kot bi ga napisali v lupini.
Podpora se med terminali razlikuje in ta stran to, kjer je pomembno, navaja. Osem osnovnih barv in krepko delujejo povsod; utripanje, dvojna podčrtanost in true color pa ne.
Anatomija zaporedja
6Vsaka koda na tej strani ima isto obliko: escape bajt, odpirajočo oglatim oklepajem, parametre in eno črko, ki pove kaj z njimi.
| Zaporedje | Parameter | Učinek |
|---|---|---|
| \e | 0x1B | Escape bajt, ki se vsakega zaporedja začneV lupini se piše \e, v C \033, v večini jezikov \x1b in v JSON ter Javi \u001b. |
| \e[ | CSI | Control Sequence Introducer — odpre parameteriziran ukaz |
| \e[<n>m | m | Select Graphic Rendition: vse barve in stil se končajo z m |
| \e[1;4;31m | 1;4;31 | Več parametrov naenkrat, ločenih z podpičjiKrepko, podčrtano in rdeče v enem zaporedju — krajše od treh ločenih in enak učinek. |
| \e[0m | 0 | Počisti vso nastavitev v privzeto terminalskoIzpišite ga na koncu obarvane rezultate. Program, ki ga izpusti, pusti uporabnika pozivko obarvano. |
| \e]8;;URL\e\\text\e]8;;\e\\ | OSC 8 | Klikljivi hiperpovezava v terminalih, ki jo podpirajoOSC zaporedje, ne CSI, in ga konča ESC \ namesto črke. |
Atributi besedila
14Podpora je neenakomerna pod prvimi petimi. Utripanje je skoraj povsod ignorirano in nekaj terminalov prikazuje zatemnitev in poševno enako.
| Zaporedje | Parameter | Učinek |
|---|---|---|
| \e[1m | 1 | Krepko ali svetlo |
| \e[2m | 2 | Zatemnjena |
| \e[3m | 3 | Poševna |
| \e[4m | 4 | Podčrtano |
| \e[5m | 5 | UtripanjeNavadno se ignorirano; moderni terminali ga prikažejo kot navadno besedilo. |
| \e[7m | 7 | Obratna: zamenja ospredje in ozadje |
| \e[8m | 8 | Skrito: besedilo je tam vendar se ne nariše |
| \e[9m | 9 | Prečrtano |
| \e[21m | 21 | Dvojna podčrtanostNekateri terminali berejo 21 kot »prekliči krepko«. |
| \e[22m | 22 | Običajna intenzivnost: prekliči krepko in zatemnitev |
| \e[23m | 23 | Prekliči poševno |
| \e[24m | 24 | Prekliči podčrtanost |
| \e[27m | 27 | Prekliči obratno |
| \e[29m | 29 | Prekliči prečrtanost |
Barva besedila
17Osem osnovnih barv in njihove svetle niti. To, kar bralec dejansko vidi, je interpretacija svojega teme terminalska — »rdeča« je položaj v paleti, ne heksadecimalna vrednost.
| Zaporedje | Parameter | Učinek |
|---|---|---|
| \e[30m | 30 | Črno besedilo |
| \e[31m | 31 | Rdeče besedilo |
| \e[32m | 32 | Zeleno besedilo |
| \e[33m | 33 | Rumeno besedilo |
| \e[34m | 34 | Modro besedilo |
| \e[35m | 35 | Magenčno besedilo |
| \e[36m | 36 | Ciansko besedilo |
| \e[37m | 37 | Belo besedilo |
| \e[39m | 39 | Nazaj na privzeto barvo besedila |
| \e[90m | 90 | Svetlo črno besedilo |
| \e[91m | 91 | Svetlo rdeče besedilo |
| \e[92m | 92 | Svetlo zeleno besedilo |
| \e[93m | 93 | Svetlo rumeno besedilo |
| \e[94m | 94 | Svetlo modro besedilo |
| \e[95m | 95 | Svetlo magenčno besedilo |
| \e[96m | 96 | Svetlo ciansko besedilo |
| \e[97m | 97 | Svetlo belo besedilo |
Barva ozadja
17Ista paleta premaknjena za deset. Koda ozadja postavi celico za besedilom in velja, dokler je ne resetiraš.
| Zaporedje | Parameter | Učinek |
|---|---|---|
| \e[40m | 40 | Črno ozadje |
| \e[41m | 41 | Rdeče ozadje |
| \e[42m | 42 | Zeleno ozadje |
| \e[43m | 43 | Rumeno ozadje |
| \e[44m | 44 | Modro ozadje |
| \e[45m | 45 | Magenčno ozadje |
| \e[46m | 46 | Ciansko ozadje |
| \e[47m | 47 | Belo ozadje |
| \e[49m | 49 | Nazaj na privzeto ozadje |
| \e[100m | 100 | Svetlo črno ozadje |
| \e[101m | 101 | Svetlo rdeče ozadje |
| \e[102m | 102 | Svetlo zeleno ozadje |
| \e[103m | 103 | Svetlo rumeno ozadje |
| \e[104m | 104 | Svetlo modro ozadje |
| \e[105m | 105 | Svetlo magenčno ozadje |
| \e[106m | 106 | Svetlo ciansko ozadje |
| \e[107m | 107 | Svetlo belo ozadje |
256 barv in true color
4Dve razširitvi istega SGR mehanizma. Obe sta široko vendar ne univerzalno podprti; terminal, ki ju ne razume, zaporedje navadno ignorirano namesto da ga izpiše.
| Zaporedje | Parameter | Učinek |
|---|---|---|
| \e[38;5;<n>m | 38;5;n | Besedilo v barvi palete n, 0–2550–15 je šestnajstica zgoraj, 16–231 barvna kocka 6×6×6, 232–255 lestvica sivega. |
| \e[48;5;<n>m | 48;5;n | Ozadje v barvi palete n, 0–255 |
| \e[38;2;<r>;<g>;<b>m | 38;2;r;g;b | Besedilo v natančni 24-bitni barvi |
| \e[48;2;<r>;<g>;<b>m | 48;2;r;g;b | Ozadje v natančni 24-bitni barvi |
Premikanje kurzorja
11Premiki se ne pomikajo niti se ne lomijo: kurzor že na vrhu zaslona ignorira zahtevo za gor.
| Zaporedje | Parameter | Učinek |
|---|---|---|
| \e[<n>A | A | Navzgor za n vrstic |
| \e[<n>B | B | Navzdol za n vrstic |
| \e[<n>C | C | Desno za n stolpcev |
| \e[<n>D | D | Levo za n stolpcev |
| \e[<n>E | E | Navzdol za n vrstic, na začetek vrstice |
| \e[<n>F | F | Navzgor za n vrstic, na začetek vrstice |
| \e[<n>G | G | Na stolpec n v trenutni vrstici |
| \e[<row>;<col>H | H | Na absolutno vrstico in stolpec, šteto od 1 |
| \e[s | s | Zapomni si položaj kurzorja |
| \e[u | u | Pojdi nazaj na zapomnjeni položaj |
| \e[6n | 6n | Vprašaj terminal, kje je kurzorTerminal odgovori na standardni vhod kot \e[<vrstica>;<stolpec>R — edino zaporedje tu, ki vrne odgovor. |
Brisanje
7Brisanje zapiše prostore s trenutno barvo ozadja; kurzor se ne premakne.
| Zaporedje | Parameter | Učinek |
|---|---|---|
| \e[0J | 0J | Obriši od kurzorja do konca zaslona |
| \e[1J | 1J | Obriši od začetka zaslona do kurzorja |
| \e[2J | 2J | Obriši celoten zaslonKurzor ostane, kjer je bil — zato se navadno kombinira s \e[H. |
| \e[3J | 3J | Obriši tudi pomnjenje drsenja |
| \e[0K | 0K | Obriši od kurzorja do konca vrstice |
| \e[1K | 1K | Obriši od začetka vrstice do kurzorja |
| \e[2K | 2K | Obriši celotno vrstico\r\e[2K je običajen način za risanje napredka na mestu. |
Terminalski načini
8Zasebni načini, označeni z vprašajem. Spremenijo kako se terminal obnaša, ne kako en kos besedila izgleda, in vsak ga je treba pred izidom programa izklopiti.
| Zaporedje | Parameter | Učinek |
|---|---|---|
| \e[?25l | ?25l | Skrij kurzor |
| \e[?25h | ?25h | Pokaži kurzor |
| \e[?1049h | ?1049h | Preklopi na nadomestni zaslonTo, kar polnozaslonski program uporabi, da zgodovina lupine pod njim preživi. |
| \e[?1049l | ?1049l | Preklopi nazaj na glavno zaslonskega |
| \e[?7h | ?7h | Lomi dolge vrstice na desnem robu |
| \e[?7l | ?7l | Pusti dolge vrstice, da tečejo čez desno robove |
| \e[?2004h | ?2004h | Preslišaj obriski lepkaPrilepljeno besedilo pride ovito v \e[200~ in \e[201~, tako da lupina razlikuje tipkanje od lepljenja. |
| \e[?2004l | ?2004l | Izključi obriski lepka |