使用单个命令从 vi 编辑器中删除 100 行

使用单个命令从 vi 编辑器中删除 100 行

我正在使用 Ubuntu 并尝试从vi编辑器中删除所有 100 行,但我遇到了用一个命令执行此操作的面试问题。

答案1

在正常模式下,执行

100dd

dd删除当前行。该命令前面加上100会使其重复 100 次。

如果从当前行开始文件中的行数少于 100 行,则根据实现方式vi,它要么无法删除任何行,要么删除所有行。在 的情况下vim,这取决于cpakacompatible选项是否打开。

答案2

  1. 删除当前行(含)向前 100 行

    • 重复 dd (删除当前行)100 次:

      100dd
      
    • 删除从当前行到前 99 行

      d99j
      
  2. 删除当前行(含)向后 100 行

    d99k
    
  3. 按行号删除特定范围内的行

    :1,100d
    
  4. 删除从当前行开始的范围内的行

    :.,.+99d
    

等等等等

答案3

如果全部要删除文件中的行,此 vi 命令指定删除范围:

:1,$d

1表示第一行 $表示最后一行

答案4

无论您在文件中的哪个位置,都可以执行以下操作ggdG

:%d减少按键次数会做得更好。好吧,数一下shiftenter键,实际上比上面多了两次按键。

做类似的事情100dd只会删除取决于距您所在位置 100 行,并且可能不会从文件中删除所有行,具体取决于您当前的行位置。

相关内容