8

我正在自定义我的 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 风滚草 KDE

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

ZSH——版本 5.3

4

1 回答 1

4

您需要更改字符串,以便 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

于 2017-03-09T22:02:17.563 回答