반응형
UNIX에서 터미널 응용 프로그램의 색상 텍스트
이 질문에 이미 답변이 있습니다.
- C 7 답변의 stdlib 및 컬러 출력
저는 vi와 같은 최초의 UNIX 용 텍스트 편집기와 같은 터미널 텍스트 편집기를 작성하기 시작했습니다. 나의 유일한 목표는 즐거운 시간을 보내는 것이지만 텍스트를 컬러로 표시 할 수 있기를 원하므로 소스 코드 편집을 위해 구문 강조 표시를 할 수 있습니다.
이것을 어떻게 할 수 있습니까? 이를위한 특별한 POSIX API가 있습니까, 아니면 ncurses를 사용해야합니까? (차라리)
어떤 충고? 아마도 UNIX API에 대한 교과서일까요?
다음은 색상 코드를 사용하는 방법을 보여주는 작은 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;
}
여기에 다른 방법이 있습니다. 어떤 사람들은 코드가 조금 더 깨끗하기 때문에 이것을 선호 할 것입니다 ( 색상을 끝내기 %s
위한 RESET
색상 이 없습니다 ).
#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;
}
This way, it's easy to do something like:
printf("This is " RED "red" RESET " and this is " BLU "blue" RESET "\n");
You probably want ANSI color codes. Most *nix terminals support them.
Use ANSI escape sequences. This article goes into some detail about them. You can use them with printf
as well.
참고URL : https://stackoverflow.com/questions/3585846/color-text-in-terminal-applications-in-unix
반응형
'Programing' 카테고리의 다른 글
Vim / Emacs가 GUI 텍스트 편집기를 통해 제공하는 특정 생산성 향상은 무엇입니까? (0) | 2020.08.18 |
---|---|
JavaScript 함수 순서 : 왜 중요한가요? (0) | 2020.08.18 |
개인 키를 사용하여 .pfx 파일을 키 저장소로 변환하는 방법은 무엇입니까? (0) | 2020.08.18 |
laravel throwing MethodNotAllowedHttpException (0) | 2020.08.18 |
PostMan에서 특정 CURL 시뮬레이션 (0) | 2020.08.18 |