我在adam2 zsh提示符中找到了这个,我不知道它意味着什么。显然它会计算“字符串”的长度,但它是如何做到的,超出了我的范围。
${#${(S%%)string//(\%([KF1]|)\{*\}|\%[Bbkf])}}
答案 0 :(得分:4)
您的模式在删除某些ANSI样式的字符格式后计算字符串的长度。
约:
${# }
- 篇
${ }
- 嵌套
(S%%)
- 从结尾开始搜索子字符串
//
- 全局替换(在这种情况下为删除,因为之后没有斜线)
( )
- 捕获组
\%
- 字面百分号
[KF1]
- 字符列表:K =开始背景色,F =开始前景色
[Bbkf]
- 字符列表:B =开始加粗,b =结束粗体,k =结束背景,f =结束前景
然后我迷路了。
答案 1 :(得分:1)
我用Google搜索“zsh prompt regex”,找到了this。它说$#计算内容的长度。该链接还有比我找到的zsh user's guide更多的信息。