我使用 zsh shell,参数%1~
位于提示符内。显示不再/home/username
显示~
,而是/home/username/Desktop
更改为 just Desktop
。
我需要以编程方式获取提示显示路径的长度,即~
只有 1 个字符,而/home/username
需要 14 个字符。有没有办法在不使事情变得过于复杂的情况下做到这一点?
答案1
要在提示符之外进行提示扩展,有
print -rP %1~
或者:
print -rPv expanded %1~
存储在扩展变量中。
或者使用%
参数扩展标志:
var=%1~
print -r -- ${(%)var}
或者存储在变量中:
expanded=${(%)var}
要获取字符数的长度:
length=${#${(%)var}}
但请注意,如果有 coloring/bold/italic... 指令,长度还将包括着色转义序列中的字符数,您将无法获得提示扩展的显示宽度。