💾 Archived View for unbon.cafe › lejun › posts › 20230223_ansiBold.gmi captured on 2023-09-08 at 16:28:01. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2023-03-20)

-=-=-=-=-=-=-

ANSI bold

2023-02-23

Les séquences d’échappement ANSI constituent un standard permettant, entre autres, de formater du texte de différentes manières au sein d’un terminal. Cela est notamment réalisé via la séquence `CSI n m`, dite « Select Graphic Rendition ».

Une des particularités est que la valeur de n 1, peut à la fois être interprété comme un texte en gras, ou d’intensité supérieure. Là où traditionnellement, en palette 8 ou 16 couleurs, les terminaux effectuaient les deux transformations à la fois, la généralisation des palettes 256 couleurs a encouragé à seulement mettre en gras sans toucher à la couleur. Le terminal XFCE en fait partie.

Couleurs « bright »

En utilisant l’éditeur de texte nano via le terminal XFCE, la coloration syntaxique mentionne des couleurs dites « bright ». Or, cela est retourné au format ANSI par la valeur 1 suivie de la couleur. En résulte du texte en gras, sans changement de couleur ce qui peut être problématique notamment aux limites des palettes lorsqu’on se rapproche de la couleur d’arrière-plan (ex : Solarized).

De fait, deux approches sont disponibles : modifier la palette de couleurs, ou l’interprétation des logiciels. La première solution peut être faite relativement aisément, à l’aide d’un script sed[1], par exemple en remplaçant le noir par du blanc (Thème clair) ou le blanc par du noir (Thème sombre) :

`sed --follow-symlinks -i -E -e '/^color/ s/black/white/g' .nano/*`

Références

[1] Stream EDitor, LeJun 2023