Vim Многострочный шаблон поиска - PullRequest
1 голос
/ 29 ноября 2011

У меня есть команда замены, которая захватывает и отображает значения submatch () в строке замены. Но у меня есть другая строка информации, которую я хочу проанализировать ниже этой строки. Эта строка всегда является первой строкой после пустой строки, хотя количество строк ДО этой пустой строки изменяется. Например:

The first important line I want to capture is here
Stuff I don't want.
A few more lines of stuff I don't want...

Second line I want to capture.

Этот шаблон повторяется около ста раз в документе. Я могу отлично заменить «Первая важная строка», но не должен ли этот шаблон поиска включать способ перехода вниз к первой пустой строке, а затем выбрать следующую «Вторую строку, которую я хочу захватить». ?? Затем я мог бы поместить содержимое этой второй строки в круглые скобки и заменить их там, где это необходимо (верно?).

Если это так, я не могу найти способ расширить первый шаблон поиска, чтобы отразить «вторую строку» Предложения или исправить мой подход, будет принята с благодарностью.

Ответы [ 2 ]

4 голосов
/ 29 ноября 2011

Кто-то уже имел дело с с подобной проблемой.

/^\nF\d\_.\{-}\_^\n\zs.*/+

Это означает «Найти блок строк, которые начинаются с F и цифры, затем отсканируйте вперед до следующей пустой строки и выберите строку после этого. "

Для получения более подробной информации перейдите по ссылке.

0 голосов
/ 29 ноября 2011

Я думаю, что читал о смещениях, но я не могу найти бит в справке, которая актуальна сейчас. Таким образом, мое другое решение будет записывать макрос, чтобы делать то, что вы хотите:

qa/[Your pattern]<CR>jddq

Затем вы можете выполнить этот макрос с @a и повторить с @@; или запускайте его много раз (например, 999@a).

...