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

How to add unicode characters to Zsh prompt?

我想在我的 Zsh 提示符中添加 unicode 字符来自定义主题。

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

我想知道这在 Zsh 中是否可行?

我受到如下提示的启发:

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

% print '\U1f600'

对于提示,您需要使用 $'...' 引号来扩展转义符(print 命令自行完成):

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

与其他情况一样,不同类型的引用可以组合在一个作业中。例如,

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

相当于上面的