Je l'ai trouvé dans l'invite zam adam2 , et je n'ai aucune idée de ce que cela signifie. Apparemment, ça compte la longueur de la "ficelle", mais comment ça se fait c'est au-delà de moi.
${#${(S%%)string//(\%([KF1]|)\{*\}|\%[Bbkf])}}
Je l'ai trouvé dans l'invite zam adam2 , et je n'ai aucune idée de ce que cela signifie. Apparemment, ça compte la longueur de la "ficelle", mais comment ça se fait c'est au-delà de moi.
${#${(S%%)string//(\%([KF1]|)\{*\}|\%[Bbkf])}}
I googlé "regex rapide zsh" et trouvé this. Il dit $ # compte la longueur du contenu. Ce lien a aussi plus d'informations que le zsh user's guide que j'ai trouvé.
Votre motif compte la longueur de la chaîne après suppression d'un formatage de caractère de style ANSI.
Environ:
${# }
- longueur
${ }
- emboîtés
(S%%)
- recherche des sous-chaînes à partir de la fin
//
- remplacer globalement (dans ce cas supprimer e, car il n'y a pas de barre oblique plus tard)
()
- groupe capture
\%
- signe littéral pour cent
[KF1]
- Liste des caractères: K = begin couleur de fond, F = begin couleur de premier plan
[Bbkf]
- liste des caractères: B = début gras, b = fin gras, k = arrière-plan de fin, f = fin de premier plan
Et puis je me perds.
Vous avez une source pour la documentation? Ou est-ce tout de la mémoire? (Wow!) – PanCrit
Tout est à partir de mem^H^H^H la page man (s) et le fichier info et ayant joué avec l'invite zsh précédemment. –
Il s'agit de l'une des invites standard fournies avec zsh, 'prompt adam2' à activer, peut-être après' autochargement promptinit; promptinit' si vous n'avez pas Vraiment, c'est compter la longueur de l'invite rendue après avoir ignoré les séquences qui changeraient les attributs du terminal (par exemple, la couleur) sans déplacer le curseur. la ligne a ou non de la place pour la partie de droite, l'utilisateur @ host. Notez que dans (S %%) seul le 'S' sert à rechercher des sous-chaînes. Le '%%' active l'expansion rapide de la chaîne, de sorte que des éléments tels que% ~ correspondent à la chaîne de l'annuaire. –
S'il est vrai que ça compte la longueur de la chaîne, alors je jure plus souvent de compter les choses. @ # $% (* & $%. –
Cela signifie qu'il est tellement illisible que vous devez vous renseigner à ce sujet sur StackOverflow.Une variation sur un quine.Il est soit délibérément obfusqué ou ... Je ne sais pas quoi .. – Joe