В vim, когда мой курсор находится на первой строке, я могу нажать:
100dd
чтобы удалить первые 100 строк.
Но как мне удалить все строк , за исключением последних 100 строк?
В обычном режиме:
G100kdgg
Другими словами:
G -> go to last line 100k -> go up 100 lines dgg -> delete to top of file
В режиме ex:
:1,$-100d
Объяснение: ":" переводит редактор в режим "ex". Команда d в режиме ex удаляет строки, указанные в виде одного номера строки или диапазона строк. $ - последняя строка, и арифметику можно применять к номерам строк.
Альтернативное решение общего назначения:
:%!tail -100
Вы можете использовать любую команду оболочки после ! для произвольного изменения текущего буфера. Vim запускает команду и передает текущий файл в stdin и читает новый буфер из stdout.
!
stdin
stdout