¿Cómo puedo eliminar en VIM todo el texto desde la línea actual hasta el final del archivo?

213

Tengo archivos muy grandes (más de 10 Gb). Solo necesito algunas líneas desde la parte superior del archivo. ¿Es posible (en vim) eliminar el resto del archivo (desde la línea actual hasta el final del archivo)?

usuario810430
fuente
12
Sé que quieres usar Vim, pero haría un comando de shell como: head -n <number_of_lines> <filename> > <truncated_filename> ¿Dónde -nestá el parámetro para la cantidad de líneas que deseas desde la parte superior?
EhevuTov

Respuestas:

365

dG se eliminará de la línea actual al final del archivo

dCtrl+ Endse eliminará del cursor al final del archivo

Pero si este archivo es tan grande como usted dice, es mejor que lea las primeras líneas en headlugar de editar y guardar el archivo.

head hugefile > firstlines

(Si está en Windows, puede usar el puerto Win32 de head)

Ed Guiness
fuente
17
puede especificar cuántas líneas headsuministra con, por ejemplo, head -n20 hugefilepara las primeras 20 líneas. n por defecto es 10.
drevicko
3
¿Necesitas una motivación para head? Usar dG en un archivo grande (1G +) lleva mucho tiempo (por ejemplo, 5 minutos).
BurninLeo
3
Para aquellos que buscan lo contrario, dggse eliminará de la línea actual al inicio del archivo.
stevesliva
d Ctrl + Fin no me funcionó. d Sin embargo, Mayús + Fin hizo para eliminar del cursor al final de la línea.
Lightwing
68

Vaya a la primera línea de la que desea eliminar y presione las teclas. dG

James Mathew
fuente
39
no presione ":" antes de escribir dG
James Mathew
30

:.,$d

Esto eliminará todo el contenido de la línea actual al final del archivo. Esto es muy útil cuando se trata de generar o eliminar vectores de prueba.

Chakravarthi
fuente
2
Prefiero tener más control de la línea de inicio, así que uso: :<line number>,$dpor ejemplo: :3,$dborrará de la línea 3 al final del archivo
emont01
0

Simplemente agregue otra forma, en modo normal, escriba ctrl+vluego G, seleccione el resto, luego D, no creo que sea efectivo, debe hacer clic en @Ed Guiness, head -n 20> filename en linux.

frank.lin
fuente