UNIX中终端应用程序中的彩色文本

我开始编写终端文本编辑器,类似于第一个UNIX文本编辑器,例如vi。我唯一的目标是度过美好的时光,但我希望能够以彩色显示文本,因此可以突出显示语法以编辑源代码。

我该如何实现?为此有一些特殊的POSIX API,还是我必须使用ncurses?(我宁愿不)

有什么建议吗?也许一些关于UNIX API的教科书?


呼如林
浏览 483回答 3
3回答

萧十郎

我觉得更优雅的不同解决方案这是另一种方法。某些人会喜欢此代码,因为它的代码更简洁一些。没有%s和RESET颜色可以结束着色。#include <stdio.h>#define RED&nbsp; &nbsp;"\x1B[31m"#define GRN&nbsp; &nbsp;"\x1B[32m"#define YEL&nbsp; &nbsp;"\x1B[33m"#define BLU&nbsp; &nbsp;"\x1B[34m"#define MAG&nbsp; &nbsp;"\x1B[35m"#define CYN&nbsp; &nbsp;"\x1B[36m"#define WHT&nbsp; &nbsp;"\x1B[37m"#define RESET "\x1B[0m"int main() {&nbsp; printf(RED "red\n"&nbsp; &nbsp; &nbsp;RESET);&nbsp; printf(GRN "green\n"&nbsp; &nbsp;RESET);&nbsp; printf(YEL "yellow\n"&nbsp; RESET);&nbsp; printf(BLU "blue\n"&nbsp; &nbsp; RESET);&nbsp; printf(MAG "magenta\n" RESET);&nbsp; printf(CYN "cyan\n"&nbsp; &nbsp; RESET);&nbsp; printf(WHT "white\n"&nbsp; &nbsp;RESET);&nbsp; return 0;}该程序提供以下输出:具有多种颜色的简单示例这样,很容易执行以下操作:printf("This is " RED "red" RESET " and this is " BLU "blue" RESET "\n");该行产生以下输出:

侃侃尔雅

您可能需要ANSI颜色代码。大多数* nix终端都支持它们。
打开App,查看更多内容
随时随地看视频慕课网APP