在vim中,除了最后100行之外,如何删除文件中的所有行?

时间:2009-08-10 00:37:36

标签: vim

在vim当我的光标在第一行时,我可以按:

100dd

删除前100行。

但是如何删除所有除了 最后 100行?

3 个答案:

答案 0 :(得分:53)

在正常模式下:

G100kdgg

换句话说:

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

答案 1 :(得分:49)

在ex模式中:

:1,$-100d

说明:“:”将编辑器置于“ex模式”。 ex模式的d命令删除指定为单行号或行范围的行。 $是最后一行,算术可以应用于行号。

答案 2 :(得分:11)

另一种通用解决方案:

:%!tail -100

您可以在!之后使用任何shell命令来任意修改当前缓冲区。 Vim启动命令并将当前文件提供给stdin,并从stdout读取新缓冲区。