Mettez de la couleur dans votre terminal

Quand on débugge, parfois, on préfère utiliser des printf un peu partout que des vrais outils comme gdb. Simplement parce que parfois, gdb est inutile, ou insuffisant. Mais, à force de mettre des traces partout, la sortie devient vite illisible. Une solution pour éviter ça est d’utiliser de la couleur.[0]

Pour ça, on peut utiliser les caractères d’échappement d’xterm, c’est très facile et ça marche à peu près partout (en tout cas, là où c’est utile). Voici un petit exemple qui compile :

#include <stdio.h> int main() {    int i;    for (i = 30; i <= 37; i++)       printf("\e[%dmforeground %d\n", i, i);    printf("\e[m"); /* Raz */    for (i = 40; i <= 47; i++)       printf("\e[%dmbackground %d\n", i, i);    printf("\e[1;4;34;41mTexte bleu sur fond rouge en gras souligné\n");    printf("\e[0;39;49m\n"); /* Raz */    return 0; } 

Pour avoir la liste complète, c’est sur cette page. Attention, ça se lit comme une grammaire, c’est pas forcément évident au début.

[0] Il y a des gens qui, pour débugger, utilisent le son. C’est assez pratique pour repérer des patrons dans le comportement des programmes, l’oreille est très douée pour ça. Désolé, je ne trouve plus la référence… Si qqun connait…

Update : sur le meme sujet, un article de Linux Journal.

5 thoughts on “Mettez de la couleur dans votre terminal

  1. Meuh non, Lucas, c’est intéressant comme idée (même si le titre aurait été mieux si ça avait été "Mettez de la couleur dans vos traces").

    Pour les fanatiques des niveaux de trace, on pourrait imaginer les macros du preprocesseur qui vont bien (pour les langages qui ont des macros et des préprocesseurs) pour mettre les trucs fatals en rouge, les warnings en orange, etc.. Faudra que j’essaye quand j’aurais du temps..

  2. effectivement car pour le terminal en lui meme moi perso j’ai deja pas mal de couleur…. voici mon prompt actuel :

    BIGPROMPT=’._.·¯·._.·¯·-> \e[0;`$HOME/bin/random 31 36`m\d\e[0;39m – \e[0;`$HOME/bin/random 31 36`m\t\e[0;39m <-._.·¯·._.·¯\n\e[0;`$HOME/bin/random 31 36`m\u\e[0;39m@\e[0;`$HOME/bin/random 31 36`m\h\e[0;39m:\e[0;`$HOME/bin/random 31 36`m`if [ "\`pwd |grep public_html\`" ]; then echo -n " michoux.born2frag.org&quo… -n "\w"|sed "s/.*public_html//";else echo -n "\w"; fi`\e[0;39m ]’

  3. Un autre endroit où trouver de la doc à ce sujet : man 4 console_codes, dans le paragraphe sur les séquences ECMA-48 (pour ceux qui sont plus habitués aux pages de man qu’aux grammaires).

Comments are closed.