查找细节

回忆上节课内容

  • 我们温习了关于搜索的相关内容

    • /正向,?反向
    • n保持方向,N改变方向
    • 可以设置

      • 是否忽略大写小写
      • 是否从头开始查找
      • 是否高亮显示
  • 还有一些正则表达式的使用方法

    • 行头行尾 ^$
    • 词头词尾 \<\>
    • 字符列表[a-z][A-Za-z_]
    • 包含回车one\_stwo
  • 数量

    • 数量*?=
    • 具体数量 \{1,3}
    • 非贪婪 \{-}
  • 不以什么为开头结尾

    • 不以什么为开头 \@<!
    • 不以什么为结尾 \@!
  • 查找出来怎么替换呢?

查找手册

  • :h :s

  • :s命令 对应的是 substitude替换
  • 我们先做个实验环境
  • :r !ls -lah

具体操作

  • 3G跳转到第三行
  • :s/shiyanlou/oeasy

    • 把当前行的shiyanlou换成oeasy
  • 我想在同一行里面再换下一个

    • 就可以:️
    • 找到上一条命令
    • 然后再回车执行
  • 我想把下一行的2oeasy一把都换掉
  • 这就要加flag

添加flag

  • 哪个flag呢?
  • 我们可以在:h :s的时候,使用/flag
  • 也可以:h s_flags

  • 我们这次的flag是g

    • 换一行
    • :s/shiyanlou/oeasy/g
    • 可以把这一行所有的 shiyanlou 换成 oeasy
    • 我理解这个g指的是行内所有的
    • 如果我想默认g-flag就开着呢?

默认g-flag

  • 如果 :se gdefault

    • 可以设置g为默认
  • 但是这个只能替换一行
  • 我想在某些行的范围内替换怎么办呢?
  • range

添加range

  • 精准控制

    • :3,8s/shiyanlou/oeasy/g
    • 只替换3-8行的
    • 而且开了g flag
    • 3,8行
    • 每行的都全部替换
  • 全部替换

    • % 相当于 1,$
    • :%s/shiyanlou/oeasy/g
    • :1,$s/shiyanlou/oeasy/g
    • 就会把所有的都替换了
  • 但是这个一把都替换了
  • 有的时候我还是想具体一个个确认怎么办?

逐个确认

  • :h s_flags找到一个c

    • c的意思是confirm确认
  • :%s/shiyanlou/oeasy/gc

    • 行里的都替换
    • 每一个都需要确认
  • 每个逐个确认

    • y替换当前匹配
    • l替换当前匹配,并退出
    • n跳过当前匹配
    • esc直接退出
    • q直接退出
    • a全部替换
  • 体会一下 a 的快乐

小技巧

  • /let

    • 搜索let
  • cwconstesc

    • 把当前单词变成const
    • n跳过当前匹配
    • n再跳过当前匹配
    • n还跳过当前匹配
    • N往回跳
  • 重做

    • .

      • 需要替换的就替换
    • n

      • 需要跳过的就跳过
    • N

      • 跳错了就跳回来

总结

  • 我们学习了

    • 替换 substitude
  • 替换单行

    • :s/shiyanlou/oeasy
  • 加上range

    • :3,5s/shiyanlou/oeasy
    • :%s/shiyanlou/oeasy
  • 加上flag

    • :3,5s/shiyanlou/oeasy/g 多个替换
    • :3,5s/shiyanlou/oeasy/gc 多个替换且逐个确认
  • 替换还是很方便的
  • 但是我想替换中使用正则表达式
  • 可以么?
  • 下次再说

[Github地址] (https://github.com/overmind1980/oeasyvim)
[Gitee地址] (https://gitee.com/overmind1980/oeasyvim)
[蓝桥实验楼 邀请码FJWYIMGB] (https://www.lanqiao.cn/courses/2840)

oeasy教您玩转vim - 53 - # 批量替换的更多相关文章

  1. oeasy教您玩转vim - 56 - # 字符可视化模式

    ​ 可视化编辑 回忆上节课内容 我们学习了关于模式匹配中使用参数 单个参数 :%s/<h2>\(.*\)</h2>/ - \1/g 多个参数 :%s/<img src=\ ...

  2. oeasy教您玩转vim - 57 - # 行可视化

    ​ 可视化编辑 回忆上节课内容 上次我们了解到可视模式 其实可视化对应三种子模式 字符可视模式 v 行可视模式 大写V 块可视模式ctrl+v 我们先来了解字符可视化模式 快捷键 v 可配合各种mot ...

  3. oeasy教您玩转linux010203显示logo

    我们来回顾一下 上一部分我们都讲了什么?

  4. oeasy 教您玩转linux010101查看内核uname

    linux([?l?n?ks]) 是什么????? 咱们这次讲点什么呢?这次咱们讲讲这个 linux([?l?n?ks]),什么是 linux([?l?n?ks])呢?这linux([?l?n?ks] ...

  5. oeasy教您玩转linux010202软件包管理apt

    顾一下 上一部分我们都讲了什么?

  6. oeasy教您玩转linux010201持续输出yes

    我们来回顾一下 上一部分我们都讲了什么?

  7. oeasy教您玩转linux010108到底哪个which

    到底哪个which 回忆上次内容 我们上次讲了查找命令位置whereis 我想找到whereis的位置怎么办?

  8. oeasy教您玩转python - 006 - # hello world

    ​ Hello World! 回忆上次内容 python3 的程序是一个 5.3M 的可执行文件 python3 里面全都是 cpu 指令 可以执行的那种指令 我们可以把指令对应的汇编找到 objdu ...

  9. oeasy教您玩转linux-010110内容回顾

    我们来回顾一下 我们都讲了什么?

随机推荐

  1. Ubuntu的build-essential有什么作用

    Ubuntu缺省情况下,并没有提供C/C++的编译环境,因此还需要手动安装.但是如果单独安装gcc以及g++比较麻烦,幸运的是,Ubuntu提供了一个build-essential软件包.查看该软件包 ...

  2. C++泛型编程之类模板

    泛型语义 泛型(Generic Programming),即是指具有在多种数据类型上皆可操作的含意.泛型编程的代表作品 STL 是一种高效.泛型.可交互操作的软件组件. 泛型编程最初诞生于 C++中, ...

  3. java 捕获组与非捕获组

    非捕获组:格式:(?:xxxx), 如:(?:aaa)\\w+(bbb)\\1,\\1 代表重复捕获的第一组即是(bbb) public static void main(String[] args) ...

  4. ES6两种静态属性的书写方法

    1.这种可以不用实例化对象就能输出. class Car{ constructor(){ } } Car.tool=4 console.log(Car.tool);//4 2.必须实例化后才能输出.但 ...

  5. form表单中id与name的区别

    以前经常写form表单时,不写id和name,总觉得没有什么用.后来一看后台套完的页面发现,他们都补上name,不知道所以然,就查了一下资料,吓我一跳,要是照我那样写根本不会有数据传到服务器.原来表单 ...

  6. 虚拟机VMWare开机黑屏 无法进入系统

    参考了: https://blog.csdn.net/x534119219/article/details/79497264 可能方案一: 关闭VMware Workstation加速3D图形设置 可 ...

  7. 接口自动化-python+requests+pytest+csv+yaml

    本套代码和逻辑 是本人的劳动成果,如果有转载需要标注, 非常适合公司做项目的同学!!!小白也可以学哦! 1.项目目录  2.公共方法的封装 2.1如果不用配置文件 可以使用这个方法进行封装--但是有一 ...

  8. 从kratos分析BBR限流源码实现

    什么是自适应限流 自适应限流从整体维度对应用入口流量进行控制,结合应用的 Load.CPU 使用率.总体平均 RT.入口 QPS 和并发线程数等几个维度的监控指标,通过自适应的流控策略,让系统的入口流 ...

  9. 使用HttpRunner3+Allure+Jenkins实现Web接口自动化测试

    陆续给不同项目做了Web接口自动化测试,在尝试不同方法的同时会有新的体会.最近用到了HttpRunner3,本文将记录使用HttpRunner3+Allure+Jenkins在项目中快速实现Web接口 ...

  10. Typora代码块配色和标题自带序号的实现代码

    Typora代码块配色和标题自带序号的实现代码 先打开主题文件夹 文件>偏好设置>外观>打开主题文件夹 然后编辑base.user.css(如果没有就新建一个)文件 /*标题自动添加 ...