如何将Unicode字符添加到Zsh提示符中?

15

我想在Zsh提示符中添加Unicode字符以自定义主题。

我已经阅读了像这篇文章(https://scriptingosx.com/2019/07/moving-to-zsh-06-customizing-the-zsh-prompt/)这样的文章,解释了需要更改PROMPT变量,我已经尝试过。但是,当在提示符中打印Unicode字符时,shell返回字符的文本(例如'U+1F600'),而不是字符图标本身()。

我想知道Zsh是否支持这个功能?

我受到了这个提示的启发:

enter image description here

1个回答

24

使用\U转义符,后面可以跟随1-8位十六进制值(尽管Unicode当前定义只需要6位数字,因为它仅允许代码点达到10FFFF)。

% print '\U1f600'

对于提示符,您需要使用$'...'引用以扩展转义(print命令会自动执行此操作):

% PS1=$'%m %1~ \U1f600 %# '
myhost ~  %

就像在其他情境下一样,不同类型的引号可以组合在单个赋值语句中。例如,

PS1='%m %1~ '$'\U1f600'' %# '
等价于上述内容。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接