我正在使用 Ubuntu 并尝试从vi
编辑器中删除所有 100 行,但我遇到了用一个命令执行此操作的面试问题。
答案1
在正常模式下,执行
100dd
dd
删除当前行。该命令前面加上100
会使其重复 100 次。
如果从当前行开始文件中的行数少于 100 行,则根据实现方式vi
,它要么无法删除任何行,要么删除所有行。在 的情况下vim
,这取决于cp
akacompatible
选项是否打开。
答案2
删除当前行(含)向前 100 行
重复 dd (删除当前行)100 次:
100dd
删除从当前行到前 99 行
d99j
删除当前行(含)向后 100 行
d99k
按行号删除特定范围内的行
:1,100d
删除从当前行开始的范围内的行
:.,.+99d
等等等等
答案3
如果全部要删除文件中的行,此 vi 命令指定删除范围:
:1,$d
1
表示第一行
$
表示最后一行
答案4
无论您在文件中的哪个位置,都可以执行以下操作ggdG
:%d
减少按键次数会做得更好。好吧,数一下shift
和enter
键,实际上比上面多了两次按键。
做类似的事情100dd
只会删除取决于距您所在位置 100 行,并且可能不会从文件中删除所有行,具体取决于您当前的行位置。