terça-feira, 10 de fevereiro de 2009

Invertendo a ordem das linhas de um arquivo

Para inverter as linhas de um arquivo (a 1ª linha se torna a última e vice-versa) use:
:g/^/m 0

O comando :global varre todo arquivo procurando início de linha e marcando-os. Desse modo, todo arquivo é marcado.
Agora em cada linha marcada é executado o comando :move. Ele move a linha para baixo da linha 0, se tornando a 1ª linha do buffer.
No final a última linha será a primeira.

Isto vale para um intervalo de linhas.

Mova o cursor para uma linha acima da 1ª linha do intervalo e marque-a com 't':
mt

Mova para a última linha do intervalo e use:
:'t+1,.g/^/m 't
no intervalo (marca + 1 linha até a linha corrente) localize e marque linhas com inicio de linha.
a cada linha marcada move-a para abaixo da marca 't'.

0 comentários:

Postar um comentário