Je remarque que la syntaxe regex standard pour la correspondance sur plusieurs lignes est d'utiliser/s, comme ceci:
This is\nsome text
/This.*text/s
Cela fonctionne par exemple en Perl mais ne semble pas être pris en charge dans Vim. Au lieu de cela, je dois être beaucoup plus précis:
/This[^\r\n]*[\r\n]*text/
Je ne trouve aucune raison pour laquelle cela devrait être, donc je pense que j'ai probablement raté les bits pertinents dans l'aide de Vim.
Quelqu'un peut-il confirmer ce comportement d'une manière ou d'une autre?
Oui, Perl's //s
Le modificateur n'est pas disponible sur les expressions régulières Vim. Voir :h Perl-patterns
pour plus de détails et une liste d'autres différences entre les expressions rationnelles Vim et Perl.
À la place, vous pouvez utiliser \_.
, ce qui signifie "faire correspondre n'importe quel caractère, y compris la nouvelle ligne". C'est un peu plus court que ce que vous avez. Voir :h /\_.
.
/This\_.*text/