bash提示中的真实颜色?


4

是否可以在bash提示符中使用真彩色?我在MacOS上使用iTerm2,它支持真彩色。但不确定我如何使用真正的颜色为我的bash提示。

目前我正在使用tput af <number>bash提示获取颜色。


它可能取决于iTerm2声称要模拟的终端,以及这些终端是否可以处理24位颜色。它还可能取决于termcap或terminfo数据库对这些终端所说的内容。
Spiff

Answers:


1

这似乎是可能的。例如:

export PS1="\[$(printf "\x1b[48;2;15;100;50m\]A nice dark green [rgb(15,100,50)]:\[\x1b[0m")\] "

export PS1="\[$(printf "\x1b[38;2;255;100;250m\]A lovely shade of pink [rgb(255,100,250)]:\[\x1b[0m")\] "

可能有一种比召唤$(printf ...)更好的方法。我希望有,但我不知道。关键是要包装所有'meta'内容(但不包括实际内容)\[\]保持shell不会将其作为提示长度的一部分进行计数,以便在重绘时(例如,在历史记录中循环时)它可以很好地运行。

每个\x1b[...m表达式中的最后三个数字表示所需的红色,绿色和蓝色值(从0到255)。

第一个数字设置背景(48)或前景(38)。我不知道其他数字是做什么的,但是玩它添加一个额外的\x1b[38;4m似乎将文本设置为下划线。

您可以从这个要点中收集更多信息:https//gist.github.com/XVilka/8346728

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.