Colorare testo e sfondo in Console o Terminale

Da Gambas-it.org - Wikipedia.

Come è noto, il testo stampato all'interno della console del'IDE di Gambas è dicolore nero, mentre quello stampato in Terminale è bianco.

Per poter cambiare il colore del testo oppure dello sfondo al testo, è necessario servirsi di speciali sequenze di codice escape. Tale sequenze escape vanno poste prima della/e lettera/e da colorare. [Nota 1]

La prima parte della sequenza escape è formata da "\E". Va immediatamente precisato che in Gambas la lettera "E" dovrà essere sostituita con la corrispondente sua minuscola. Pertanto questa parte della sequenza sarà:

\e

A seguire vi sarà il carattere "[" seguito da un numero di codice che specifica quale proprietà sarà interessata dalla modifica. In particolare il numero "3" è afferente al colore di un carattere testuale, mentre il numero "4" è afferente allo sfondo di un carattere testuale.

Bisognerà, poi, specificare il colore. I colori assegnabili sono 8:
0 -> Nero
1 -> Rosso
2 -> Verde
3 -> Giallo
4 -> Blu
5 -> Magenta
6 -> Ciano
7 -> Bianco

L'intera sequenza, infine, dovrà essere chiusa con il carattere corrispondente alla lettera "m".

Così, se per esempio vogliamo colorare il testo di rosso, imposteremo il seguente codice:

Print "\e[31mTesto qualsiasi"

Per annullare le modifiche, si imposterà la sequenza:

\e[0m

Nel seguente esempio pratico si scriveranno tre gruppi di caratteri: il primo sarà colorato di rosso; poi si annullerà la modifica portando così il secondo gruppo alla colorazione predefinita; il terzo gruppo sarà colorato di giallo con sfondo di color magenta.

Public Sub Main()
 
 Print "\e[31maaaa \e[0mbbbb \e[33m\e[45mcccc\e0m"
  
End


Uso di sequenze escape con 256 numeri di colori

Oltre agli otto colori sopra riportati, è possibile utilizzare sequenze escape con 256 numeri di colori.

La prima parte della sequenza è simile alla precedente:

\e[

poi va impostato il numero "38" per il colore del testo, mentre va usato il numero "48" per lo sfondo del testo. Si porrà appresso il simbolo del "punto e virgola" (;).
Quindi si porrà il numero "5" seguito dal "punto e virgola" (;).
Segue il numero del colore da impostare da 0 a 256. [Nota 2]
Chiude la sequenza la solita lettera "m".

Per annullare la sequenza escape impostata, si utilizzerà ancora una volta la sequenza:

\e[0m

Se, dunque, ad esempio vogliamo colorare il testo di arancione, utilizzando il colore numero 208, possimo scrivere così:

Print "\e[38;5;208m Testo qualsiasi"

Nel seguente esempio pratico si scriveranno tre gruppi di caratteri: il primo sarà colorato con il colore numero 160; poi si annullerà la modifica portando così il secondo gruppo alla colorazione predefinita; il terzo gruppo sarà colorato con il colore numero 160 con sfondo del colore numero 49.

Public Sub Main()
 
 Print "\e[38;5;208m aaaa \e[0mbbbb \e[38;5;160m\e[48;5;49mcccc\e0m"
  
End




Pagina in costruzione !



Note

[1] Vedi anche:
- https://wiki.archlinux.org/index.php/Bash/Prompt_customization#Colors
- https://en.wikipedia.org/wiki/ANSI_escape_code#Colors
- http://www.faqs.org/docs/Linux-HOWTO/Bash-Prompt-HOWTO.html#AEN341

[2] Per i numeri corrispondenti ai 256 colori, vedi la seguente tabella:
256-colors.sh.png