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)?


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)


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


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.


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.