Como mesclar linhas específicas e remover novas linhas específicas de um texto que está na forma de um changelog, usando o vim?

0

Eu tenho um changelog que é assim:

version 1.90
(1 newline)
Released on 27 April 2014
(2 consequent newlines)

Added feature x ---> (first entry for 1.90)
(1 newline between each entry)
Fixed bug y

Removed element z

Updated file z ----> (last entry for 1.90)
(3 consequent newlines)

version 1.89

E eu quero:

  1. Para mesclar a cada duas linhas:

    version 1.90

    Released on 27 April 2014

    para:

    version 1.90 (27 April 2014)

    e

  2. para remover as seguintes novas linhas:
    • todas as novas linhas entre as entradas,
      ou seja, todas as novas linhas entre 2 novas linhas consequentes e 3 linhas conseqüentes
    • 1 de 2 novas linhas após a fusão "versão 1.90 (27 de abril de 2014)"

O texto é muito longo para ser convertido manualmente.
Obrigado.

    
por darkred 27.04.2014 / 13:18

1 resposta

2

Se eu te entendi bem:

g/^$/d
%s/\v^(version.*)\n(.*)/\r ()\r
    
por 27.04.2014 / 14:16