如何在ZSH提示中使用转义序列为truecolor或粗体?

时间:2017-01-20 23:33:56

标签: shell terminal zsh zshrc konsole

我正在定制我的ZSH提示,但我似乎无法使用转义序列告诉Konsole使用粗体文本或特定的RGB颜色。

我知道ZSH中的内置格式化选项,如%F{000} %f,但据我所知,这些选项只允许访问默认值(红色,蓝色等)和256色调色板。虽然%B %b是粗体的内置选项,但它似乎仅限于一种颜色。

我希望能够使用所有RGB颜色为提示的特定部分着色和/或使其变为粗体。根据我的发现,这样的事情应该有效:

PS1="%{\e[38;0;255;0;255m%}%M >:%{\e[0m%}"

这应该给我一个像这样的粉红色提示:

HOSTNAME >:                  

但我得到的是:

\e[38;0;255;0;255mHOSTNAME >:\e[0m

我尝试了不同的转义序列,例如\033 \x1b,但似乎没有任何效果。

那么,如何在ZSH提示中正确使用转义序列?



具体细节:

OpenSUSE Tumbleweed KDE

Konsole --version 16.12.0(键盘:XFree 4)

ZSH - 版本5.3

1 个答案:

答案 0 :(得分:3)

您需要更改字符串,以便zsh正确评估它们。

尝试更改:

PS1="%{\e[38;0;255;0;255m%}%M >:%{\e[0m%}"

要:

PS1=$'%{\e[38;0;255;0;255m%}%M >:%{\e[0m%}'

请注意从"'引号的变化以及前缀$

有关替换的更多信息,请参阅http://zsh.sourceforge.net/Guide/zshguide05.html