Як я можу видалити у VIM весь текст із поточного рядка до кінця файлу?


213

У мене дуже великі файли (більше 10 Гбіт). Мені потрібні лише деякі рядки вгорі файлу. Чи можна (in vim) видалити решту файлу (з поточного рядка до кінця файлу)?


12
Я знаю, що ви хочете використовувати Vim, але я би зробив команду оболонки на зразок: head -n <number_of_lines> <filename> > <truncated_filename> Де -nпараметр для кількості рядків, які ви хочете зверху
EhevuTov

Відповіді:


365

dG видалить із поточного рядка до кінця файлу

dCtrl+ Endвидалить з курсору до кінця файлу

Але якщо цей файл настільки великий, як ви кажете, вам може бути краще прочитати перші кілька рядків, headа не редагувати та зберігати файл.

head hugefile > firstlines

(Якщо ви перебуваєте в ОС Windows, ви можете використовувати порт Win32 head)


17
Ви можете вказати, скільки ліній headпостачається, наприклад: head -n20 hugefileдля перших 20 рядків. n за замовчуванням до 10.
drevicko

3
Вам потрібна мотивація head? Використання dG у великому файлі (1G +) займає багато часу (наприклад, 5 хвилин).
BurninLeo

3
Для тих, хто шукає зворотну сторону, dggбуде видалено з поточного рядка до початку файлу.
stevesliva

d Ctrl + End не працював для мене. d Shift + End все-таки видалив з курсору до кінця рядка.
блискавка


30

:.,$d

Це видалить увесь вміст із поточного рядка до кінця файлу. Це дуже корисно, коли ви маєте справу з генерацією тестових векторів або зачисткою.


2
Я вважаю за краще мати більше контролю над початковим рядком, тому використовую: :<line number>,$dнаприклад: :3,$dвидалить з рядка 3 до кінця файлу
emont01

0

Просто додайте інший спосіб, у звичайному режимі введіть ctrl+vпотім G, виберіть інше, тоді Dя не думаю, що це ефективно, вам слід зробити так, як @Ed Guiness, head -n 20> ім'я файлу в Linux.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.