I codici o sequenze di escape ANSI (o sequenze di uscita) sono uno standard di segnalazione per controllare la posizione del cursore, il colore, lo stile dei caratteri e altre opzioni sui terminali di testo video e sugli emulatori di terminale. Alcune sequenze di byte, la maggior parte delle quali inizia con un carattere di escape ASCII e un carattere parentesi, sono incorporate nel testo. Il terminale interpreta queste sequenze come comandi, anziché come testo da visualizzare alla lettera.

Le sequenze ANSI sono state introdotte negli anni 70 per sostituire le sequenze specifiche del fornitore e si sono diffuse nel mercato delle apparecchiature informatiche all'inizio degli anni 80. Sono utilizzati in applicazioni di sviluppo, scientifiche e commerciali basate su testo, nonché in sistemi di bulletin board system per offrire funzionalità standardizzate.

Sebbene i terminali hardware siano diventati sempre più rari nel XXI secolo, l'importanza dello standard ANSI persiste perché la grande maggioranza degli emulatori di terminale e delle console di comando interpreta almeno una parte dello standard ANSI.

Questa codifica di escape è standardizzata come ECMA-48, ISO/IEC 6429, FIPS 86, ANSI X3.64 e JIS X 0211.

Descrizione

Codici di controllo Sebbene non facciano tecnicamente parte dello standard, quasi tutti gli utenti assumono alcune funzioni di alcuni caratteri a byte singolo. Viene utilizzato per ridurre la quantità di dati trasmessi o per eseguire alcune funzioni che non sono disponibili dalle sequenze di escape:

+ Codici di controllo più popolari (elenco non esaustivo) ^ C0AbbrNomeEffetto ^G 7 BEL Bell Genera un segnale acustico ^H 8 BS Backspace Muove il cursore a sinistra (ma può "avvolgere all'indietro" se il cursore si trova all'inizio della riga). ^I 9 HT Tab Muove il cursore a destra sul multiplo successivo di 8. ^J 0x0A LF Line Feed Passa alla riga successiva, scorre il display verso l'alto se si trova nella parte inferiore dello schermo. Di solito non si sposta orizzontalmente, anche se i programmi non dovrebbero fare affidamento su questo. ^L 0x0C FF Form Feed Sposta una stampante all'inizio della pagina successiva. Di solito non si sposta orizzontalmente, anche se i programmi non dovrebbero fare affidamento su questo. L'effetto sui terminali video è variabile. ^M 0x0D CR Muove il cursore alla colonna zero ^[ 0x1B Escape Inizia tutte le sequenze di escape

Parametri SGR (Select Graphic Rendition) I Select Graphic Rendition (SGR) imposta gli attributi di visualizzazione. È possibile impostare più attributi nella stessa sequenza, separati da punto e virgola. Ciascun attributo di visualizzazione rimane attivo fino a quando una successiva occorrenza di SGR non lo ripristina.. Se nessun codice viene usato, è considerato come (reset / normale).

n Nome Note 0 Reset o normale Tutti gli attributi sono disattivi 1 Grassetto o maggiore intensità 2 Debole, intensità ridotta, o attenuato Può essere implementato come un carattere fine. 3 Corsivo Non ampiamente supportato. A volte trattato come inverso o lampeggiante. 4 Sottolineato Esistono estensioni per questo stile per Kitty, VTE, mintty e iTerm2. 5 Lampeggiamento lento Imposta il lampeggiamento a meno di 150 volte al minuto 6 Lampeggiamento veloce MS-DOS ANSI.SYS, 150+ al minuto. Non ampiamente supportato. 7 Invertito Scambia i colori di primo piano e di sfondo; emulazione incoerente 8 Occulta o nascondi Non ampiamente supportato. 9 Barrato Caratteri leggibili ma contrassegnati come per la cancellazione. Non supportato in Terminal.app 10 Font (predefinito) primario 11–19 Font alternativo Imposta un font alternativo 20 Fraktur (Gothic) Raramente supportato 21 Doppiamente sottolineato; oppure: non in grassetto Doppiamente sottolineato per ECMA-48,. mentre disabilita l'intensità in grassetto su diversi terminali, come nella console del kernal Linux prima della versione 4.17. 22 Intensità normale Né grassetto né tenue; il colore cambia dove l'intensità è implementata come tale. 23 Né corsivo, né stile gotico 24 Non sottolineato Né singolarmente né doppiamente sottolineato 25 Non lampeggiante Disattiva il lampeggiamento 26 Spaziatura proporzionale ITU T.61 e T.416, non noto per essere utilizzato sui terminali 27 Non invertito 28 Rivela Non nascosto 29 Non barrato 30–37 Imposta il colore di primo piano 38 Imposta il colore di primo piano a 8 bit Gli argomenti successivi sono o 39 Colore di primo piano predefinito Implementazione definita (secondo standard) 40–47 Imposta il colore di sfondo 48 Imposta il colore di sfondo a 8 bit Gli argomenti successivi sono o 49 Colore di sfondo predefinito Implementazione definita (secondo standard) 50 Disabilita la spaziatura proporzionale T.61 e T.416 51 Incorniciato Implementato come selettore di variazione delle emoji in mintty. 52 Circondato 53 Sovralineato Non supportato da Terminal.app 54 Né incorniciato o circondato 55 Non sovralineato 90–97 Imposta il colore di primo piano più chiaro Non standard; originariamente implementato da aixterm Imposta un colore di sfondo più chiaro

Colori La specifica originale aveva solo 8 colori e dava loro solo dei nomi. I parametri SGR 30–37 selezionavano il colore di primo piano, mentre 40–47 selezionavano lo sfondo. Molti terminali hanno implementato il "grassetto" (codice SGR 1) come un colore più luminoso piuttosto che un carattere diverso, fornendo così 8 colori di primo piano aggiuntivi. Di solito non è possibile ottenerli come colori di sfondo, anche se a volte il video inverso (codice SGR 7) lo consente. Esempi: per ottenere lettere nere su sfondo bianco utilizzare , per ottenere il rosso utilizzare , per ottenere un rosso brillante utilizzare . Per ripristinare i colori ai valori predefiniti, utilizzare (non supportato su alcuni terminali) o ripristinare tutti gli attributi con . I terminali più moderno hanno aggiunto la possibilità di specificare direttamente i colori "brillanti" con 90–97 e 100–107.

Quando l'hardware ha iniziato a utilizzare convertitori digitale-analogico (DAC) a 8 bit, diversi software hanno assegnato numeri di colore a 24 bit a questi nomi. La tabella seguente mostra i valori predefiniti inviati al DAC per alcuni hardware e software comuni

Nome VGA Windows XPConsole WindowsPowerShell Visual Studio Code Windows 10Console Terminal.app PuTTY mIRC xterm UbuntuTerminale di Eclipse 30 40 Nero 31 41 Rosso 32 42 Verde 33 43 Giallo 34 44 Blu Cambiato da a giugno 2004 35 45 Magenta 36 46 Ciano 37 47 Bianco 90 100 91 101 Rosso chiaro 92 102 Verde chiaro 93 103 Giallo chiaro 94 104 Blu chiaro 95 105 Magenta chiaro 96 106 Ciano chiaro 97 107 Bianco chiaro

Note

Note

Bibliografia

Collegamenti esterni

Categoria:Standard informatici 6429