我正在构建一个轻量级版本的ncurses库。到目前为止,它在VT100兼容终端上运行得非常好,但win32控制台无法识别\033
代码作为转义序列的开头:
# include <stdio.h>
# include "term.h"
int main(void) {
puts(BOLD COLOR(FG, RED) "Bold text" NOT_BOLD " is cool!" CLEAR);
return 0;
}
在C代码
层面上需要做什么,才能加载ANSI.SYS驱动程序并识别ANSI/VT100转义序列?
colorama
的模块:"在Windows上,Colorama从stdout中去除这些ANSI字符,并将它们转换为相应的win32调用,以显示带颜色的文本。在其他平台上,Colorama不会做任何处理。" - jfsHKCU\Console
中创建名为VirtualTerminalLevel
的DWORD
,并将其设置为0x1
;然后重新启动cmd.exe。-- 您可以使用以下PowerShell进行测试"?[1;31mele ?[32mct ?[33mroni ?[35mX ?[36mtar ?[m".Replace('?', [char]27);
。 - BrainSlugs83