2

これはadam2zshプロンプトで見つかりましたが、それが何を意味するのかわかりません。どうやらそれは「文字列」の長さを数えます、しかしそれがどのようにそれをするかは私を超えています。

${#${(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

「zshpromptregex」をグーグルで検索したところ、これが見つかりまし。$#はコンテンツの長さをカウントすると書かれています。そのリンクには、私が見つけたzshユーザーガイドよりも多くの情報があります。

于 2010-02-15T18:27:08.213 に答える