Come posso eliminare in VIM tutto il testo dalla riga corrente alla fine del file?


213

Ho file di dimensioni molto grandi (più di 10 GB). Ho solo bisogno di alcune righe dalla cima del file. È possibile (in vim) eliminare il resto del file (dalla riga corrente alla fine del file)?


12
So che vuoi usare Vim, ma farei un comando shell come: head -n <number_of_lines> <filename> > <truncated_filename> Dov'è -nil parametro per il numero di righe che vuoi dall'alto
EhevuTov

Risposte:


365

dG eliminerà dalla riga corrente alla fine del file

dCtrl+ Endeliminerà dal cursore alla fine del file

Ma se questo file è grande come dici, è meglio leggere le prime righe headpiuttosto che modificarlo e salvarlo.

head hugefile > firstlines

(Se sei su Windows puoi usare la porta Win32 di head)


17
puoi specificare quante linee headfornisce con es: head -n20 hugefileper le prime 20 linee. Il valore predefinito è 10.
drevicko,

3
Hai bisogno di una motivazione per head? L'uso di dG su un file di grandi dimensioni (1G +) richiede molto tempo (ad es. 5 minuti).
BurninLeo,

3
Per coloro che cercano il contrario, dggverranno eliminati dalla riga corrente all'inizio del file.
stevesliva,

d Ctrl + Fine non ha funzionato per me. d Maiusc + Fine ha comunque eliminato dal cursore alla fine della riga.
lampo


30

:.,$d

Ciò eliminerà tutto il contenuto dalla riga corrente alla fine del file. Questo è molto utile quando hai a che fare con la generazione o lo stripping di test di vettore.


2
Preferisco avere un maggiore controllo della linea di partenza, quindi uso: :<line number>,$dad esempio: :3,$deliminerò dalla riga 3 alla fine del file
emont01

0

Basta aggiungere un altro modo, in modalità normale, digitare ctrl+vquindi G, selezionare il resto, quindi D, non credo sia efficace, dovresti fare come @Ed Guiness, head -n 20> nomefile in Linux.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.