Linux运维必备技能:如何在 Vim 中删除多行?

Linux运维必备技能:如何在 Vim 中删除多行?我们都会犯错,犯错是人之常情,改进它也很重要。如果你在Vim中出错,你可以dw在普通模式下使用删除一个单词。您键入dd它会删除当前行。如果要在Vim中删除多行,可以使用相同的ddVim命令,将行数添加到该命令中。因此,10dd将从光标底部删除10行(包括光标所在的行)。让我们详细了解如何在以效率着称的编辑器中删除一行或多行。删除单行以下是在Vim中删除单行文本的步骤:按Escape(Esc)键进入Normal模式确保光标位于要删除的行上。快速按下dd这

大家好,又见面了,我是你们的朋友全栈君。

我们都会犯错,犯错是人之常情,改进它也很重要。

如果你在 Vim 中出错,你可以dw在普通模式下使用删除一个单词。您键入dd它会删除当前行。

如果要在 Vim 中删除多行,可以使用相同的 dd Vim 命令,将行数添加到该命令中。

因此,10dd将从光标底部删除 10 行(包括光标所在的行)。

让我们详细了解如何在以效率着称的编辑器中删除一行或多行。

删除单行

以下是在 Vim 中删除单行文本的步骤:

  1. 按 Escape (Esc) 键进入 Normal 模式
  2. 确保光标位于要删除的行上。
  3. 快速按下dd

这将删除光标所在的整行。

Linux运维必备技能:如何在 Vim 中删除多行?

正如你在 gif 中看到的,我在第一行,运行dd命令只删除了第一行。

指定要删除的行数

在你使用dd命令删除一行之前,你可以在它前面指定一个数字,以便在 Vim 中一次删除几行。

下面是语法:

:[num]dd

当你指定数字代替 时num,Vim 将开始删除行,你可以认为这是 Vim 多次执行dd命令num。

指定要删除的行范围

无需指定从当前行到底部要删除多少行,您只需告诉 Vim 它应该从哪一行开始删除,一直到哪一行。

以下是删除一系列行的语法:

:[begin],[end]d

让我们分解一下这个语法…

  • :(冒号)表示它是一个 Vim 命令。
  • begin告诉 Vim 从哪一行开始
  • end告诉 Vim 要删除的最后一行是什么
  • dVim 中的删除命令

此外,以下是用于指定范围的字符(用于“开始”和“结束”):

  • .(当前行)
  • $(文件中的最后一行)
  • %(所有行)

为了从几个例子中学习,让我们来看看它们。

  • :10,45d- 从第 10 行删除到第 45 行
  • :.,$d- 从当前行删除到最后一行
  • :.,1d- 从当前行删除到文件开头
  • :dgg- 从当前行删除到文件开头

删除所有行

如前所述,该%符号用于指定从文件开头到结尾的范围,基本上是所有行。

这意味着,要删除 Vim 中文件的所有行,您需要使用:%d命令。

Linux运维必备技能:如何在 Vim 中删除多行?

删除与特定模式匹配的行

除了所有这些 Vim 魔法,你知道你可以删除匹配特定模式的行吗?

:g/PATTERN/d

要执行相反的操作,删除与指定模式不匹配的行,您可以使用下面指定的语法。

:g!/PATTERN/d

分解它,我们得到以下元素:

  • g- 全局搜索(即整个文件)
  • !- 反向匹配
  • PATTERN- 要匹配的模式
  • d- 删除命令

如果您在 Vim 中运行以下命令,它将删除行中所有具有“extern crate”模式的行。

:g/extern\ crate/d

Linux运维必备技能:如何在 Vim 中删除多行?

删除所有空行

要删除空行,需要使用正则表达式进行模式匹配。下面是执行删除空行的命令:

:g/^$/d

在正则表达式中,^$模式表示任何以换行符开头的行,本质上是一个空行。

Linux运维必备技能:如何在 Vim 中删除多行?

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/150196.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 目标检测百度百科_综述的提纲

    目标检测百度百科_综述的提纲目标检测目标检测要解决的核心问题目标检测最新进展目标检测应用

    2022年10月13日
    2
  • 微信企业号根据错误码返回错误信息类封装

    微信企业号根据错误码返回错误信息类封装微信企业号根据错误码返回错误信息类封装

    2022年5月1日
    78
  • 安卓反编译_反编译apk工具

    安卓反编译_反编译apk工具刚刷了自己的小U(下次分享刷机经验),准备美化一下系统,这时需要对framework-res.apk进行编译和反编译,我也是边学习边实践,这里仅作分享。1、安装Java环境JDK↑Android是基于Linux的,而要在安卓上开发,基本上依靠Java为主。因为我们接下来要用到apktool,因此必须安装JDK。注意,JDK和Java环境不同,JDK是开发工具,你可以直接在Java官网下载,并能找…

    2022年9月18日
    3
  • Prometheus TSDB存储原理

    Prometheus TSDB存储原理Python 微信订餐小程序课程视频 https blog csdn net m0 article details Python 实战量化交易理财系统 https blog csdn net m0 article details Prometheus 包含一个存储在本地磁盘的时间序列数据库 同时也支持与远程存储系统集成 比如 grafanacloud 提供的免费云存储 API 只需将 remote write 接口信息填写在 Prome

    2025年7月16日
    4
  • golang 激活码2021-激活码分享「建议收藏」

    (golang 激活码2021)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~4D…

    2022年3月30日
    1.7K
  • JVM类加载机制、双亲委派机制、自定义类加载器、打破双亲委派机制[通俗易懂]

    JVM类加载机制、双亲委派机制、自定义类加载器、打破双亲委派机制[通俗易懂]1、类加载器站在Java虚拟机的角度看,只有两种不同的类加载器:一种是启动类加载器(BootstrapClassLoader),这个类加载器使用C++语言实现(HotSpot虚拟机、JDK8中),是虚拟机自身的一部分;另外一种是其他所有类加载器,这些类加载器都由Java语言实现,独立存在于虚拟机外部,并且全部继承自抽象类java.lang.ClassLoaderJDK8及以前版本中绝大多数程序都会使用到以下3个系统提供的类加载器来进行加载启动类(引导类)加载器:负责加载支撑JVM运行的位于&l

    2025年9月2日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号