programing

UNIX 터미널 응용 프로그램의 컬러 텍스트

projobs 2022. 8. 13. 11:42
반응형

UNIX 터미널 응용 프로그램의 컬러 텍스트

저는 UNIX용 최초의 텍스트 에디터인 vi와 같은 터미널 텍스트 에디터를 쓰기 시작했습니다.즐거운 시간을 보내는 것이 목표이지만, 텍스트는 컬러로 표시할 수 있기 때문에 소스 코드를 편집하기 위한 구문 강조 표시를 할 수 있도록 하고 싶습니다.

어떻게 하면 좋을까요?특별한 POSIX API가 있나요, 아니면 ncurses를 사용해야 하나요?(안하는 게 좋겠어)

조언 좀 해주시겠어요?UNIX API에 관한 교과서 같은 거?

보다 우아한 솔루션

다른 방법이 있어요.코드가 좀 더 깔끔해서 더 좋아하는 사람도 있을 거예요.없다%s및 aRESETcolor를 클릭하여 색칠을 종료합니다.

#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

반응형