我试过:
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