8

У меня есть текстовый файл, который выглядит так:

A.
text
text
text


A.
more text

more text

A.
more text

Я хочу соединить все строки между "маркерами" A. так, чтобы это выглядело так:

A.texttexttext
A.more textmore text
A.more text

Как я могу сделать это в Vim?

2 ответа2

7

Это также работает (когда первая строка начинается с A.)

:v/^A/-1j!
4
:%s/\n\(\(A\.$\)\@!.*\)/\1/

Подставим образец соответствия:

  1. новая линия,
  2. группа, содержащая

    1. не строка A. сразу после которой следует конец строки, затем
    2. любой символ до конца строки

с:

  • все соответствует, кроме начального перевода строки (то есть группы выше),

и сделать это глобально.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .