반응형
UNIX 터미널 응용 프로그램의 컬러 텍스트
저는 UNIX용 최초의 텍스트 에디터인 vi와 같은 터미널 텍스트 에디터를 쓰기 시작했습니다.즐거운 시간을 보내는 것이 목표이지만, 텍스트는 컬러로 표시할 수 있기 때문에 소스 코드를 편집하기 위한 구문 강조 표시를 할 수 있도록 하고 싶습니다.
어떻게 하면 좋을까요?특별한 POSIX API가 있나요, 아니면 ncurses를 사용해야 하나요?(안하는 게 좋겠어)
조언 좀 해주시겠어요?UNIX API에 관한 교과서 같은 거?
보다 우아한 솔루션
다른 방법이 있어요.코드가 좀 더 깔끔해서 더 좋아하는 사람도 있을 거예요.없다%s
및 aRESET
color를 클릭하여 색칠을 종료합니다.
#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;
}
이 프로그램은 다음과 같은 출력을 제공합니다.
여러 색상의 간단한 예
이렇게 하면 다음과 같은 작업을 쉽게 수행할 수 있습니다.
printf("This is " RED "red" RESET " and this is " BLU "blue" RESET "\n");
이 행은, 다음의 출력을 생성합니다.
이것은 색상 코드를 사용하는 방법을 보여주는 작은 C 프로그램입니다.
#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;
}
ANSI 이스케이프 시퀀스를 사용합니다.이 기사에서는 그들에 대해 자세히 설명합니다.사용방법:printf
뿐만 아니라.
아마 ANSI 컬러 코드를 원할 겁니다.대부분의 *nix 단말기는 이러한 기능을 지원합니다.
언급URL : https://stackoverflow.com/questions/3585846/color-text-in-terminal-applications-in-unix
반응형
'programing' 카테고리의 다른 글
16진수의 printf() 포맷 (0) | 2022.08.13 |
---|---|
계산된 get에 대한 스파이 기능 (0) | 2022.08.13 |
memcpy 퍼포먼스 향상 방법 (0) | 2022.08.13 |
vuex 스토어에서 값이 변경된 경우 구성 요소의 상태를 업데이트하는 방법 (0) | 2022.08.13 |
와의 차이점 (0) | 2022.08.13 |