gpt4 book ai didi

c - 将转义的颜色字符打印到 bash

转载 作者:太空狗 更新时间:2023-10-29 14:57:12 24 4
gpt4 key购买 nike

我正在使用 C 中的 readline 库在 bash 中创建类似 bash 的提示符。当我试图让提示变得丰富多彩时,颜色序列如 these ,着色效果很好,但光标间距搞砸了。输入太早环绕并且环绕在同一行所以它开始覆盖提示。我想我应该用 \[\] 来转义颜色序列

readline("\[\e[1;31m$\e[0m\] ")

但这会打印方括号,如果我转义反斜杠,它也会打印方括号。如何转义颜色代码以使光标仍然有效?

最佳答案

告诉 readline 提示字符串中的字符序列在输出到屏幕时实际上不会移动光标的方法是用标记 RL_PROMPT_START_IGNORE 包围它(目前,这是字符readline 的 C 头文件中的文字 '\001')和 RL_PROMPT_END_IGNORE(当前为 '\002')。

正如@Joachim 和@Alter 所说,为了可移植性,使用“\033”而不是“\e”。

关于c - 将转义的颜色字符打印到 bash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34251110/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com