如何在 Vim / Vi 中删除行
评论 0
浏览 0
2020-07-20
Vim 或其前身 Vi 预装在大多数 Linux 发行版和 macOS 上。如果您是系统管理员或普通 Linux 用户,了解 Vim 的基础知识非常重要。
很多时候,在处理文本文件时,您需要删除一行或多行。
本文介绍如何在 Vim/Vi 中删除行。
删除一行
Vim 中删除一行的命令是dd
。
以下是删除行的分步说明:
- 按
Esc
键进入正常模式。 - 将光标置于要删除的行上。
- 输入
dd
并按 Enter 键删除该行。
多次按dd
将删除多行。
删除多行
要一次删除多行,请在 dd
命令前面加上要删除的行数。例如,要删除五行,您将执行以下操作:
- 按
Esc
键进入正常模式。 - 将光标放在要删除的第一行上。
- 输入
5dd
并按 Enter 键删除接下来的五行。
删除一系列行
删除一系列行的语法如下:
:[start],[end]d
例如,要删除从 3 到 5 的行,您可以执行以下操作:
- 按
Esc
键进入正常模式。 - 输入
:3,5d
并按 Enter 键删除这些行。
您还可以使用以下字符来指定范围:
.
(点)- 当前行。$
- 最后一行。%
- 所有行。
这里有一些例子:
:.,$d
- 从当前行到文件末尾。:.,1d
- 从当前行到文件开头。10,$d
- 从第 10 行到文件末尾。
删除所有行
要删除所有行,您可以使用代表所有行的%
符号或1,$
范围:
- 按
Esc
键进入正常模式。 - 输入
%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 的网站。
如果您有任何疑问,请随时发表评论。
0 个评论