2

我在 adam2 zsh 提示符中找到了这个,我不知道它是什么意思。显然它计算了“字符串”的长度,但它是如何做到的却超出了我的范围。

${#${(S%%)string//(\%([KF1]|)\{*\}|\%[Bbkf])}}
4

2 回答 2

4

您的模式在去除一些 ANSI 样式的字符格式后计算字符串的长度。

大约:

  • ${# }- 长度

  • ${ }- 嵌套

  • (S%%)- 从末尾开始搜索子字符串

  • //- 全局替换(在这种情况下删除,因为后面没有斜线)

  • ( )- 捕获组

  • \%- 文字百分号

  • [KF1]- 字符列表:K=开始背景色,F=开始前景色

  • [Bbkf]- 字符列表:B=开始粗体,b=结束粗体,k=结束背景,f=结束前景

然后我迷路了。

于 2010-02-15T20:07:16.880 回答
1

我用谷歌搜索了“zsh prompt regex”,发现了这个。它说 $# 计算内容的长度。该链接还包含比我找到的zsh 用户指南更多的信息。

于 2010-02-15T18:27:08.213 回答