我想在我的 Zsh 提示中添加 unicode 字符以自定义主题。
我读过这样的文章 ( https://scriptingosx.com/2019/07/moving-to-zsh-06-customizing-the-zsh-prompt/ ) 解释您需要更改 PROMPT 变量,其中我试过了。但是,在提示中打印 Unicode 字符时,shell 会返回该字符的文本(例如“U+1F600”),而不是字符图形图标本身 ()。
我想知道这在 Zsh 中是否可行?
我受到如下提示的启发:
使用\U转义符,后面可以跟 1-8 位的十六进制值(尽管目前定义的 Unicode 只需要 6 位数字,因为它只允许高达 10FFFF 的代码点)。
% print '\U1f600'
Run Code Online (Sandbox Code Playgroud)
对于提示,您需要使用$'...'引用来展开转义(print命令本身会这样做):
% PS1=$'%m %1~ \U1f600 %# '
myhost ~ %
Run Code Online (Sandbox Code Playgroud)
与在其他上下文中一样,不同类型的引用可以组合在一个赋值中。例如,
PS1='%m %1~ '$'\U1f600'' %# '
Run Code Online (Sandbox Code Playgroud)
相当于上面的。