zsh print -P 中颜色未扩展

zsh print -P 中颜色未扩展

我有一个 zsh 提示脚本,用于print -P执行提示扩展。该脚本在我通过 ssh 进入的特定远程系统上无法正常工作。提示打印命令中的颜色指令未扩展:

$ print -P '%F{blue}this should be blue'
{blue} this should be blue

有没有解决的办法?我不确定为什么使用远程系统很重要,因为显示是通过我的本地终端模拟器(iTerm2)进行的。

答案1

问题是版本zsh是4.3.6。根据发行说明%F提示的颜色扩展功能直到 5.0 才添加(尽管这里的发行说明不是 100% 清楚——无论如何,%F没有出现在zshmisc包含提示扩展文档的 4.3.6 联机帮助页中) 。令人困惑的是,%F仍然从格式字符串中删除(显然没有执行任何操作)——只是参数(大括号中的颜色名称或数字)未受影响。我能够通过将%F{color}提示格式字符串中的字符串替换为ANSI 转义码(例如,%F{blue}变为\e[34m%f,重置颜色,变为\e[0m)。

相关内容