Zsh:更改 vared -p 命令的颜色

Zsh:更改 vared -p 命令的颜色

我试过:

vared -p '"$(print \"\e[1;31test\")" something' -c tmp

输出回波"$(print \"\e[1;31test\")" something

但我想改变test这里单词的颜色。如何实现?

答案1

理解迅速扩展的论点-p,所以它只是:

var=; vared -p '%B%F{red}something%f: ' var
  • %B:(bold停止%b粗体)
  • %F{red}:红色前景(%K用于背景)。
  • %f:恢复默认前景色。

正在做:

vared -p $'\e[1;31msomething: ' var

这相当于vared -p "$(printf '\e[1;31msomething: ')"(从您问题中的版本中更正)将是一个坏主意,因为它会zle通过让它认为提示是 18 列宽而实际上只有 11 列宽(因为\e[1;31m不可见)来愚弄光标定位。

答案2

可以通过在zsh 的-p加载模块后使用双引号来实现这一点。colors

相关内容