Unir linhas entre um determinado padrão de texto no Vim

8

Eu tenho um arquivo de texto com esta aparência:

A.
text
text
text


A.
more text

more text

A.
more text

Eu quero juntar todas as linhas entre os "marcadores" A. para que pareça:

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

Como posso fazer isso no Vim?

    
por vim noob 04.05.2012 / 14:22

2 respostas

4
:%s/\n\(\(A\.$\)\@!.*\)//

Substitua um padrão correspondente:

  1. nova linha,
  2. um grupo contendo

    1. não a string A. seguida diretamente pelo fim de linha e
    2. qualquer caractere até o final da linha

com:

  • tudo combinado, exceto a nova linha inicial (ou seja, o grupo acima),

e faça isso globalmente.

    
por 04.05.2012 / 15:25
7

Isso também funciona (quando a primeira linha começa com A. )

:v/^A/-1j!
    
por 14.03.2013 / 00:33

Tags