Bagaimana saya bisa menghapus dalam VIM semua teks dari baris saat ini ke akhir file?


213

Saya memiliki file yang sangat besar (lebih dari 10Gb). Saya hanya perlu beberapa baris dari bagian atas file. Apakah mungkin (dalam vim) untuk menghapus sisa file (dari baris saat ini ke akhir file)?


12
Saya tahu Anda ingin menggunakan Vim, tetapi saya akan melakukan perintah shell seperti: head -n <number_of_lines> <filename> > <truncated_filename> Di mana -nparameter untuk jumlah baris yang Anda inginkan dari atas
EhevuTov

Jawaban:


365

dG akan menghapus dari baris saat ini ke akhir file

dCtrl+ Endakan menghapus dari kursor ke akhir file

Tetapi jika file ini sebesar yang Anda katakan, Anda mungkin lebih baik membaca beberapa baris pertama dengan headdaripada mengedit dan menyimpan file.

head hugefile > firstlines

(Jika Anda menggunakan Windows, Anda dapat menggunakan port Win32 head)


17
Anda dapat menentukan berapa banyak saluran yang headmemasok misalnya: head -n20 hugefileuntuk 20 saluran pertama. n default ke 10.
drevicko

3
Butuh motivasi head? Menggunakan dG pada file besar (1G +) membutuhkan banyak waktu (mis. 5 menit).
BurninLeo

3
Bagi mereka yang mencari yang sebaliknya, dggakan menghapus dari baris saat ini ke awal file.
stevesliva

Ctrl + End tidak bekerja untuk saya. d Shift + End tidak menghapus dari kursor ke akhir baris.
lightwing


30

:.,$d

Ini akan menghapus semua konten dari baris saat ini hingga akhir file. Ini sangat berguna saat Anda berurusan dengan pembuatan vektor pengupasan atau stripping.


2
Saya lebih suka memiliki kontrol yang lebih besar dari baris awal, jadi saya menggunakan: :<line number>,$dmisalnya: :3,$dakan menghapus dari baris 3 hingga akhir file
emont01

0

Cukup tambahkan cara lain, dalam mode normal, ketik ctrl+vkemudian G, pilih sisanya, lalu D, saya rasa itu tidak efektif, Anda harus melakukan seperti @Ed Guiness, head -n 20> nama file di linux.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.