В Vim, как я могу удалить все строки в файле, кроме последних 100 строк? - PullRequest
20 голосов
/ 10 августа 2009

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

100dd

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

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

Ответы [ 3 ]

53 голосов
/ 10 августа 2009

В обычном режиме:

G100kdgg

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

G     -> go to last line
100k  -> go up 100 lines
dgg   -> delete to top of file
49 голосов
/ 10 августа 2009

В режиме ex:

:1,$-100d

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

11 голосов
/ 10 августа 2009

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

:%!tail -100

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...