user810430
user810430

Reputation: 11499

How I can delete in VIM all text from current line to end of file?

I have very large files (more than 10Gb). I need only some lines from the top of the file. Is it possible (in vim) to delete the rest of the file (from current line to the end of file)?

Upvotes: 283

Views: 261084

Answers (6)

Chakravarthi
Chakravarthi

Reputation: 451

:.,$d

This will delete all content from current line to end of the file. This is very useful when you're dealing with test vector generation or stripping.

Upvotes: 45

Sandeep Sheshagiri
Sandeep Sheshagiri

Reputation: 1

In command mode (c), type:

:1,$d

Upvotes: -1

Prakhar de Anand
Prakhar de Anand

Reputation: 309

I use the following steps to do the same-

  1. Make sure you are in the normal mode by pressing Esc .
  2. Enter the Visual mode by pressing V .
  3. Press G i.e Shift + g to select the text from the cursor to the end of the file .
  4. Now press x to delete the selected text .

Upvotes: 9

James Mathew
James Mathew

Reputation: 1083

Go to the first line from which you would like to delete, and press the keys dG

Upvotes: 96

Ed Guiness
Ed Guiness

Reputation: 35287

dG will delete from the current line to the end of file

dCtrl+End will delete from the cursor to the end of the file

But if this file is as large as you say, you may be better off reading the first few lines with head rather than editing and saving the file.

head hugefile > firstlines

(If you are on Windows you can use the Win32 port of head)

Upvotes: 471

frank.lin
frank.lin

Reputation: 1692

Just add another way , in normal mode , type ctrl+v then G, select the rest, then D, I don't think it is effective , you should do like @Ed Guiness, head -n 20 > filename in linux.

Upvotes: 1

Related Questions