Como posso excluir no VIM todo o texto da linha atual até o final do arquivo?

213

Eu tenho arquivos muito grandes (mais de 10 GB). Eu preciso apenas de algumas linhas da parte superior do arquivo. É possível (no vim) excluir o restante do arquivo (da linha atual até o final do arquivo)?

user810430
fonte
12
Eu sei que você quer usar Vim, mas eu faria um comando como: head -n <number_of_lines> <filename> > <truncated_filename> Onde -né o parâmetro para o número de linhas que você quiser a partir do topo
EhevuTov

Respostas:

365

dG excluirá da linha atual até o final do arquivo

dCtrl+ Endexcluirá do cursor até o final do arquivo

Mas se esse arquivo for tão grande quanto você diz, é melhor ler as primeiras linhas com, em headvez de editar e salvar o arquivo.

head hugefile > firstlines

(Se você estiver no Windows, poderá usar a porta Win32 de head)

Ed Guiness
fonte
17
você pode especificar quantas linhas são headfornecidas, por exemplo: head -n20 hugefilepara as primeiras 20 linhas. o padrão de n é 10.
drevicko 30/10/12
3
Precisa de uma motivação para head? O uso de dG em um arquivo grande (1G +) leva muito tempo (por exemplo, 5 minutos).
BurninLeo 23/09
3
Para quem procura o inverso, dggserá excluído da linha atual até o início do arquivo.
Steveliva
d Ctrl + End não funcionou para mim. d Shift + End fez para excluir do cursor até o final da linha.
Lightwing
68

Vá para a primeira linha da qual você deseja excluir e pressione as teclas dG

James Mathew
fonte
39
Não pressione ":" antes de digitar dG
James Mathew
30

:.,$d

Isso excluirá todo o conteúdo da linha atual até o final do arquivo. Isso é muito útil quando você está lidando com geração ou remoção de vetores de teste.

Chakravarthi
fonte
2
Eu prefiro ter mais controle da linha de partida, então uso: :<line number>,$dpor exemplo: :3,$dexcluirá da linha 3 até o final do arquivo
emont01 28/11/17
0

Basta adicionar outra maneira, no modo normal, digite ctrl+ventão G, selecione o resto e, em seguida D, não acho que seja eficaz, você deve fazer como @Ed Guiness, head -n 20> filename no linux.

frank.lin
fonte