查找细节

回忆上节课内容

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

    • /正向,?反向
    • 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. Vue状态管理模式---Vuex

    1. Vuex是做什么的? 官方解释: Vuex 是一个专为Vue.js 应用程序开发的 状态管理模式 它采用 集中式存储管理 应用的所有组件的状态, 并以相应的规则保证状态以一种可预测的方式发生变化 ...

  2. 笔记:如何使用postgresql做顺序扣减库存

    如何使用postgresql做顺序扣减库存 Ⅰ.废话在前面 首先这篇笔记源自于最近的一次需求,这个临时性需求是根据两份数据(库存数据以及出库数据) 算出实际库存给到业务,至于库存为什么不等于剩余库存, ...

  3. Spring笔记(3)

    一.JDBC Template基本使用 1.开发步骤 1.1直接使用template 导入spring-jdbc和spring-tx坐标 <!-- JDBC--> <dependen ...

  4. GUI容器之Panel

    Panel //panel可以看成是一个空间,但不能单独存在 public class MyPanel { public static void main(String[] args) { Frame ...

  5. Redis核心原理与实践--字符串实现原理

    Redis是一个键值对数据库(key-value DB),下面是一个简单的Redis的命令: > SET msg "hello wolrd" 该命令将键"msg&q ...

  6. Geode member发现机制

    Geode member发现机制 Apache Geode 为集群和客户端服务器间提供了多种member 发现机制,具体如下: Peer Member Discovery Standalone Mem ...

  7. Jenkins(6)- 新建用户

    如果想从头学起Jenkins的话,可以看看这一系列的文章哦 https://www.cnblogs.com/poloyy/category/1645399.html 进入用户管理 点击新建用户 填写新 ...

  8. python轻量级orm框架 peewee常用功能速查

    peewee常用功能速查 peewee 简介 Peewee是一种简单而小的ORM.它有很少的(但富有表现力的)概念,使它易于学习和直观的使用. 常见orm数据库框架 Django ORM peewee ...

  9. redis 主从复制详解

    引言 我们之前操作 Redis 都是单机版,但是实际应用中没人使用单机版,都是搭建集群的方式.这篇文章要介绍的主从复制,是指将一台 Redis 服务器的数据,复制到其他 Redis 服务器,我们将前者 ...

  10. PPPoE技术白皮书(H3C)

    PPPoE技术白皮书 关键词:PPP,Ethernet,PPPoE 摘要:PPPoE是一种通过一个远端接入设备为以太网上的主机提供接入服务,并可以对接入的每个主机实现控制和计费的技术.本文介绍了PPP ...