我正在尝试给一款由libedit驱动的应用程序着色,但是颜色似乎没有显示出来。您有什么想法,我在这里做错了什么吗?
#include <iostream>
#include <histedit.h>
char* prompt(EditLine *e)
{
static char p[] = "\1\033[36m\1:::\1\033[0m\1 ";
return p;
}
int main(int argc, char* argv[])
{
EditLine* el = el_init(argv[0], stdin, stdout, stderr);
el_set(el, EL_PROMPT_ESC, &prompt, '\1');
el_set(el, EL_EDITOR, "vi");
while (1)
{
int count;
char const* line = el_gets(el, &count);
if (count > 0)
std::cout << line;
}
el_end(el);
return 0;
}
编译使用
clang++ editline.cc -ledit && ./a.out
并且很不幸,它只显示了未着色的提示符:
:::