Поддержка многострочных регулярных выражений в Vim
Я заметил, что стандартный синтаксис регулярных выражений для сопоставления по нескольким строкам должен использовать /s, например:
This isnsome text
/This.*text/s
это работает, например, в Perl, но, похоже, не поддерживается в Vim. Вместо этого, я должен быть гораздо более конкретным:
/This[^rn]*[rn]*text/
Я не могу найти никаких причин, почему это должно быть, поэтому я думаю, что я, вероятно, просто пропустил соответствующие биты в справке vim.
может ли кто-нибудь подтвердить это поведение так или иначе?
1 ответ:
да, в Perl
//s
модификатор недоступен в регулярных выражениях Vim. Смотрите:h perl-patterns
для получения подробной информации и списка других различий между регулярными выражениями Vim и Perl.вместо этого вы можете использовать
\_.
, что означает "соответствует любому символу, включая новую строку". Это немного короче, чем у вас есть. Смотрите:h /\_.
./This\_.*text/