Как я могу удалить в VIM весь текст от текущей строки до конца файла?


213

У меня очень большие файлы (более 10 Гб). Мне нужно только несколько строк в верхней части файла. Можно ли (в 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удалят с текущей строки до начала файла.
стевеслива

d Ctrl + End не работает для меня. d Shift + End сделал хотя для удаления от курсора до конца строки.
Lightwing


30

:.,$d

Это удалит весь контент от текущей строки до конца файла. Это очень полезно, когда вы имеете дело с генерацией или разбором тестового вектора.


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

0

Просто добавьте другой способ, в обычном режиме введите, ctrl+vзатем Gвыберите остальные, тогда D, я не думаю, что это эффективно, вы должны сделать как @Ed Guiness, head -n 20> filename в linux.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.