Wie kann ich in VIM den gesamten Text von der aktuellen Zeile bis zum Ende der Datei löschen?

213

Ich habe sehr große Dateien (mehr als 10 GB). Ich brauche nur einige Zeilen vom Anfang der Datei. Ist es möglich (in vim), den Rest der Datei (von der aktuellen Zeile bis zum Ende der Datei) zu löschen?

user810430
quelle
12
Ich weiß, dass Sie Vim verwenden möchten, aber ich würde einen Shell-Befehl head -n <number_of_lines> <filename> > <truncated_filename>-n
ausführen

Antworten:

365

dG wird aus der aktuellen Zeile bis zum Ende der Datei gelöscht

dCtrl+ Endwird vom Cursor bis zum Ende der Datei gelöscht

Wenn diese Datei jedoch so groß ist, wie Sie sagen, ist es möglicherweise besser, die ersten Zeilen mit zu lesen, headals die Datei zu bearbeiten und zu speichern.

head hugefile > firstlines

(Wenn Sie unter Windows arbeiten, können Sie den Win32-Port von verwenden. head)

Ed Guiness
quelle
17
Sie können angeben, wie viele Zeilen headgeliefert werden, z. B.: head -n20 hugefilefür die ersten 20 Zeilen. n standardmäßig 10.
drevicko
3
Benötigen Sie eine Motivation für head? Die Verwendung von dG für eine große Datei (1G +) nimmt viel Zeit in Anspruch (z. B. 5 Minuten).
BurninLeo
3
Für diejenigen, die das Gegenteil suchen, dggwird von der aktuellen Zeile bis zum Anfang der Datei gelöscht.
stevesliva
d Strg + Ende hat bei mir nicht funktioniert. d Umschalt + Ende wurde jedoch vom Cursor bis zum Zeilenende gelöscht.
Lightwing
68

Gehen Sie zur ersten Zeile, aus der Sie löschen möchten, und drücken Sie die Tasten dG

James Mathew
quelle
39
Drücken Sie nicht ":", bevor Sie dG
James Mathew
30

:.,$d

Dadurch wird der gesamte Inhalt von der aktuellen Zeile bis zum Ende der Datei gelöscht. Dies ist sehr nützlich, wenn Sie sich mit der Erzeugung oder dem Strippen von Testvektoren befassen.

Chakravarthi
quelle
2
Ich bevorzuge mehr Kontrolle über die Startzeile, also benutze ich: :<line number>,$dzum Beispiel: :3,$dlöscht von Zeile 3 bis zum Ende der Datei
emont01
0

Fügen Sie einfach eine andere Möglichkeit hinzu, geben Sie im normalen Modus ctrl+vdann ein G, wählen Sie den Rest aus, dann D, ich glaube nicht, dass es effektiv ist, sollten Sie @Ed Guiness, head -n 20> Dateiname unter Linux mögen.

Franklin
quelle