如何在 Vim / Vi 中删除行

评论 0 浏览 0 2020-07-20

Vim 或其前身 Vi 预装在大多数 Linux 发行版和 macOS 上。如果您是系统管理员或普通 Linux 用户,了解 Vim 的基础知识非常重要。

很多时候,在处理文本文件时,您需要删除一行或多行。

本文介绍如何在 Vim/Vi 中删除行。

删除一行

Vim 中删除一行的命令是dd

以下是删除行的分步说明:

  1. Esc键进入正常模式。
  2. 将光标置于要删除的行上。
  3. 输入 dd 并按 Enter 键删除该行。

多次按dd将删除多行。

删除多行

要一次删除多行,请在 dd 命令前面加上要删除的行数。例如,要删除五行,您将执行以下操作:

  1. Esc键进入正常模式。
  2. 将光标放在要删除的第一行上。
  3. 输入 5dd 并按 Enter 键删除接下来的五行。

删除一系列行

删除一系列行的语法如下:

:[start],[end]d

例如,要删除从 3 到 5 的行,您可以执行以下操作:

  1. Esc键进入正常模式。
  2. 输入 :3,5d 并按 Enter 键删除这些行。

您还可以使用以下字符来指定范围:

  • .(点)- 当前行。
  • $ - 最后一行。
  • % - 所有行。

这里有一些例子:

  • :.,$d - 从当前行到文件末尾。
  • :.,1d - 从当前行到文件开头。
  • 10,$d - 从第 10 行到文件末尾。

删除所有行

要删除所有行,您可以使用代表所有行的%符号或1,$范围:

  1. Esc键进入正常模式。
  2. 输入 %d 并按 Enter 键删除所有行。

删除包含模式的行

根据特定模式删除多行的语法如下:

:g/<pattern>/d

全局命令(g)告诉删除命令(d)删除所有包含<pattern>的行。

要匹配与模式不匹配的行,请在模式前添加感叹号 (!):

:g!/<pattern>/d

该模式可以是文字匹配或正则表达式 。以下是一些示例:

  • :g/foo/d - 删除包含字符串“foo”的所有行。它还删除了“foo”嵌入较大单词(例如“football”)的行。
  • :g!/foo/d - 删除所有不包含字符串“foo”的行。
  • :g/^#/d - 从 Bash 脚本中删除所有注释。模式^# 表示以# 开头的每一行。
  • :g/^$/d - 删除所有空行。模式^$ 匹配所有空行。
  • :g/^\s*$/d - 删除所有空行。与上一个命令不同,这还会删除具有零个或多个空白字符 (\s*) 的空白行。

结论

我们已经向您展示了如何在 Vim 中删除行。

如果您是 Vim 新手,请访问 Open Vim 您可以通过交互式教程练习 Vim 的网站。

如果您有任何疑问,请随时发表评论。

最后更新2024-05-21
0 个评论
标签