Vim中的多行正则expression式支持

我注意到跨多行匹配的标准正则expression式语法是使用/ s,如下所示:

This is\nsome text /This.*text/s 

这在Perl中可行,但在Vim中似乎不受支持。 相反,我必须更加具体:

 /This[^\r\n]*[\r\n]*text/ 

我找不到为什么这个应该是什么原因,所以我想我可能只是错过了在vim帮助相关的位。

任何人都可以确认这种行为吗?

是的,Perl的//s修饰符在Vim正则expression式中不可用。 有关详细信息,请参阅:h perl-patterns ,以及Vim和Perl正则expression式之间的其他差异列表。

相反,你可以使用\_. ,意思是“匹配包括换行符在内的任何单个字符”。 这比你有的短一点。 请参阅:h /\_.

 /This\_.*text/