如何删除Vi/Vim中的行?

Vi或vim为操作提供不同的命令。其中一个操作是删除行。Vi或vim提供不同的命令以不同的方式删除一行或多行。

null

删除当前行

删除Vi/Vim中当前行的命令是 dd 钥匙。当前行是光标的当前位置。但是dd命令应该在接受命令的正常模式下调用。在发出dd命令之前,按ESC键以确保处于正常模式。

dd

按dd命令将多次删除行。

删除多行

dd命令也可用于删除多行。应该在dd命令之前指定行数。在光标位置之后应用的删除操作。以下命令将删除光标当前位置后的3行。但在发行之前 三维显示 指令压力机 电子稳定控制系统 切换到正常模式。

3dd

删除指定的行或行范围

d命令可用于删除指定范围内的多行。范围将用行号指定,其中将提供删除的起始行号和结束行号。首先,我们将使用 电子稳定控制系统 钥匙。然后键入以下命令以删除从12到18的行。

:12,18d

下面的行说明符也可以用来根据行号设置起始行和结束行。

  • . 指定当前行。
  • $ 指定最后一行。
  • %% 指定所有行。

相关文章: 退出而不保存在Vim/Vi中

看看下面的例子。

命令 说明
:,20天 从当前行删除到第20行。
:40美元 从第40行删除到最后一行。
:,$天 从当前行删除到文件末尾。

删除所有行

可以使用 % 说明符。在这种情况下,您不需要知道行号、光标号等。只需使用以下命令,其中将提供一个行号说明符%%。

%d

删除包含指定字符串模式或正则表达式的行

在vi/vim中删除行的另一个有用的例子是删除包含指定字符串模式或regex的行。包含指定的字符串模式或正则表达式的每一行都会被从文件开头到文件结尾的search删除。语法如下所示,其中模式是字符串模式或regex。

:g/PATTERN/d

在下面的示例中,我们删除所有包含字符串“linuxtect”的行

:g/linuxtect/d

在下面的示例中,我们反转删除并删除不包含字符串“linuxtect”的行。这个 ! 符号用于反向匹配。

:g!/linuxtect/d

在下面的示例中,我们删除所有不包含IP地址的行。

:g!/d{1,3}.d{1,3}.d{1,3}.d{1,3}/d
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享