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

213

У меня очень большие файлы (более 10 Гб). Мне нужно только несколько строк в верхней части файла. Можно ли (в vim) удалить оставшуюся часть файла (от текущей строки до конца файла)?

user810430
источник
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
68

Перейдите к первой строке, которую вы хотите удалить, и нажмите клавиши dG

Джеймс Мэтью
источник
39
не нажимайте ":", прежде чем вводить dG
Джеймс Мэтью
30

:.,$d

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

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

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

Франклин
источник