Jak mogę usunąć w VIM cały tekst z bieżącego wiersza do końca pliku?

213

Mam bardzo duże pliki (ponad 10 Gb). Potrzebuję tylko kilku wierszy z góry pliku. Czy jest możliwe (w vimie) usunięcie reszty pliku (od bieżącej linii do końca pliku)?

użytkownik810430
źródło
12
Wiem, że chcesz użyć Vima, ale zrobiłbym polecenie powłoki, takie jak: head -n <number_of_lines> <filename> > <truncated_filename> gdzie -njest parametr liczby linii, które chcesz od góry
EhevuTov

Odpowiedzi:

365

dG usunie z bieżącego wiersza do końca pliku

dCtrl+ Endusunie od kursora do końca pliku

Ale jeśli ten plik jest tak duży, jak mówisz, lepiej jest przeczytać kilka pierwszych wierszy headzamiast edytować i zapisywać plik.

head hugefile > firstlines

(Jeśli korzystasz z systemu Windows, możesz użyć portu Win32 head)

Ed Guiness
źródło
17
możesz określić, ile linii headzasila np. head -n20 hugefiledla pierwszych 20 linii. n domyślnie
wynosi
3
Potrzebujesz motywacji head? Korzystanie z dG na dużym pliku (1G +) zajmuje dużo czasu (np. 5 minut).
BurninLeo,
3
Dla tych, którzy szukają konwersacji, dggusunie z bieżącego wiersza do początku pliku.
stevesliva
d Ctrl + End nie działał dla mnie. d Shift + End zrobił jednak, aby usunąć z kursora do końca linii.
błyskawica
68

Przejdź do pierwszego wiersza, z którego chcesz usunąć, i naciśnij klawisze dG

James Mathew
źródło
39
nie naciskaj „:”, zanim wpiszesz dG
James Mathew
30

:.,$d

Spowoduje to usunięcie całej zawartości z bieżącego wiersza do końca pliku. Jest to bardzo przydatne w przypadku generowania lub usuwania wektorów testowych.

Chakravarthi
źródło
2
Wolę mieć większą kontrolę nad linią początkową, więc używam: :<line number>,$dna przykład: :3,$dusunie z linii 3 do końca pliku
emont01
0

Po prostu dodaj inny sposób, w trybie normalnym wpisz, ctrl+va następnie Gwybierz resztę, a następnie D, nie sądzę, aby był skuteczny, powinieneś zrobić jak @Ed Guiness, head -n 20> nazwa pliku w systemie Linux.

frank.lin
źródło