如何解决Zsh 服装化
我正在为我的提示着色。我在 .zshrc 文件中做的 .zshrc
PROMPT=$'%B%{\e[38;2;224;108;117m('
PROMPT+=$'%{\e[38;2;229;192;123m%n'
PROMPT+=$'%{\e[38;2;97;175;239m%(#.?.@)'
PROMPT+=$'%{\e[38;2;152;195;121m%m'
PROMPT+=$'%{\e[38;2;224;108;117m)-['
PROMPT+=$'%{\e[38;2;198;120;221m%~'
PROMPT+=$'%{\e[38;2;224;108;117m]'
PROMPT+=$'%{\e[38;2;224;108;117m$:'
PROMPT+=$'%b%{$reset_color'
而且我得到了我想要的颜色,但是如果我输入一个像
这样的长命令
cd 桌面
我得到这个:
cd Desktopkali)-[~]$:cd
这是我想要的:
(enes-can@kali)-[~]$:cd Desktop
我该如何解决这个问题。
解决方法
你把这个问题复杂化了;为了计算提示长度和光标位置,您似乎没有关闭任何 %{
以将 ANSI 转义序列正确标记为零宽度项目,但您不需要原始 ANSI 转义序列第一名。
不过,这确实需要您首先以十六进制表示您的 RGB 三元组。
PROMPT='%B%F{#e06c75}(' # 224 == 0xe0,108 == 0x6c,117 == 0x75
PROMPT+='%F{...}%n'
PROMPT+='%F{...}%(#.?.@)'
PROMPT+='%F{...}%m'
PROMPT+='%F{...})-['
PROMPT+='%F{...}%~'
PROMPT+='%F{...}]'
PROMPT+='%F{...}$:'
PROMPT+='%b%f'
使用 %F
的好处是 zsh
已经知道它产生的字节序列不应影响提示长度,从而减轻您在任何地方使用 %{ ... %}
的负担。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。