我正在定制我的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 --版本16.12.0(键盘:XFree 4)
ZSH --版本5.3
3条答案
按热度按时间ltqd579y1#
您需要更改字符串,以便zsh正确地计算它们。
尝试更改:
第一个月
收件人:
PS1=$'%{\e[38;0;255;0;255m%}%M >:%{\e[0m%}'
个请注意,从
"
到'
的引号沿着前置的$
的更改参见http://zsh.sourceforge.net/Guide/zshguide05.html了解更多关于替换的信息。
mlnl4t2r2#
我可能有点晚了,但在ZSH上,你的答案将是:
字符串
您的原始代码使用ANSI转义序列进行颜色格式化,这可能无法在所有Zsh终端中正确工作。此更新的代码使用Zsh特定的提示符转义序列(%F{color_code}和%K{color_code})分别设置Foreground和bacK底色。
要应用此设置,您必须在位于~/. zshrc的.zshrc文件中进行设置。
运行此命令以自动设置它(它不会覆盖任何现有设置):
型
Here是一个StackOverflow问题,它回答了zsh中的颜色是如何工作的。
uujelgoq3#
您可以使用RGB三元组使用
%F
指定任意24位颜色。字符串
(You我必须想象出合适的颜色,因为我不能单独使用文本来重现它。