personalizar - como poner el color en unix
Texto de color en aplicaciones de terminal en UNIX (4)
Aquí hay otra manera de hacerlo. Algunas personas preferirán esto ya que el código es un poco más limpio (no hay %s
y un color RESET
para finalizar la coloración).
#include <stdio.h>
#define RED "/x1B[31m"
#define GRN "/x1B[32m"
#define YEL "/x1B[33m"
#define BLU "/x1B[34m"
#define MAG "/x1B[35m"
#define CYN "/x1B[36m"
#define WHT "/x1B[37m"
#define RESET "/x1B[0m"
int main()
{
printf(RED "red/n" RESET);
printf(GRN "green/n" RESET);
printf(YEL "yellow/n" RESET);
printf(BLU "blue/n" RESET);
printf(MAG "magenta/n" RESET);
printf(CYN "cyan/n" RESET);
printf(WHT "white/n" RESET);
return 0;
}
De esta manera, es fácil hacer algo como:
printf("This is " RED "red" RESET " and this is " BLU "blue" RESET "/n");
Esta pregunta ya tiene una respuesta aquí:
- stdlib y color de salida en C 6 respuestas
Empecé a escribir un editor de texto de terminal, algo así como los primeros editores de texto para UNIX, como vi. Mi único objetivo es pasar un buen rato, pero quiero poder mostrar el texto en color, para que pueda resaltar la sintaxis para editar el código fuente.
¿Cómo puedo conseguir esto? ¿Hay alguna API POSIX especial para esto, o tengo que usar ncurses? (Preferiría no)
¿Algún consejo? Tal vez algunos libros de texto en la API de UNIX?
Este es un pequeño programa de C que ilustra cómo podría usar los códigos de color:
#include <stdio.h>
#define KNRM "/x1B[0m"
#define KRED "/x1B[31m"
#define KGRN "/x1B[32m"
#define KYEL "/x1B[33m"
#define KBLU "/x1B[34m"
#define KMAG "/x1B[35m"
#define KCYN "/x1B[36m"
#define KWHT "/x1B[37m"
int main()
{
printf("%sred/n", KRED);
printf("%sgreen/n", KGRN);
printf("%syellow/n", KYEL);
printf("%sblue/n", KBLU);
printf("%smagenta/n", KMAG);
printf("%scyan/n", KCYN);
printf("%swhite/n", KWHT);
printf("%snormal/n", KNRM);
return 0;
}
Probablemente desee códigos de color ANSI . La mayoría de los terminales * nix los admiten.
Use secuencias de escape ANSI. Este artículo entra en detalles sobre ellos. Puedes usarlos con printf
también.