Подтвердить что ты не робот

В vim, как я могу удалить все строки в файле, кроме последних 100 строк?

В vim, когда мой курсор находится в первой строке, я могу нажать:

100dd

чтобы удалить первые 100 строк.

Но как удалить все строки, кроме последних 100 строк?

4b9b3361

Ответ 1

В нормальном режиме:

G100kdgg

Другими словами:

G     -> go to last line
100k  -> go up 100 lines
dgg   -> delete to top of file

Ответ 2

В режиме ex:

:1,$-100d

Объяснение: ":" помещает редактор в "ex mode". Команда d в ​​режиме ex удаляет строки, указанные как номер одной строки, или диапазон строк. $- последняя строка, а арифметика может быть применена к номерам строк.

Ответ 3

Альтернативное решение общего назначения:

:%!tail -100

Вы можете использовать любую команду оболочки после ! для произвольного изменения текущего буфера. Vim запускает команду и передает текущий файл в stdin и считывает новый буфер из stdout.