0

我正在尝试使用带有彩色提示的 GNU Readline。归结为一个最小的测试用例,我的readline()调用如下所示:

readline("\x1b[34m" "prompt>" "\x1b[m");

我希望看到这样的提示(想象一下它是蓝色的):

prompt>

但相反,我看到:

[34mprompt>[m

我在文档中阅读了有关提示扩展的信息,并认为那里可能会发生一些奇怪的事情。但是扩展的提示很好,这可以按预期工作:

rl_set_prompt("\x1b[34m" "prompt>" "\x1b[m");
printf("%s", rl_prompt); // Prints "prompt>" in blue

这发生在 Gnome Terminal 和 Xterm 中。我在 Ubuntu 18.04 上使用 libreadline 7。我一生都无法弄清楚这里发生了什么,而且似乎没有人在网上遇到这个问题。

4

1 回答 1

0

我可能永远不知道出了什么问题。在测试这个(重新生成整个 CMake 构建树等)时,我已经多次完全清理了我的项目上的构建,但只需删除并重新下载我自己的 repo 就可以解决这个问题。

于 2019-05-11T00:02:32.843 回答