De :h E65
nous pouvons voir que Vim n'autorise pas plus de 9 groupes de capture dans une commande de substitution.
Par exemple, la commande suivante fonctionnera:
s/\v(a)(b)(c)(d)(e)(f)(g)(h)(i)/\9\8\7\6\5\4\3\2\1
Mais celui-ci avec un autre groupe de capture échouera:
s/\v(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)/\10\9\8\7\6\5\4\3\2\1
Ma question n'est pas de savoir pourquoi elle échoue (c'est une limite stricte de Vim), mais pourquoi Vim a-t-elle cette limite?
De plus, je suis conscient qu'un regex réel avec plus de 9 groupes de capture serait probablement assez monstrueux à lire et à entretenir, mais je suis toujours curieux.
sed
: s/.../.../3
ne remplacerait que la 3e occurrence du motif. C'est probablement la fonctionnalité qui me manque le plus dans Vim.
\%()
.