批量替换

回忆上次

  • 我们可以用vimdiff快速的比较文件
  • 这很实用!!!
  • 实用的一些跳转方式
  • 遍历所有的修改change
    • ]c 下一条修改
    • [c 上一条修改
  • 遍历所有的函数method
    • ]m 下一条修改
    • [m 上一条修改
  • 面对不同点
    • 把当前的改成对比的 - do - diff obtain
    • 把对比的改成当前的 - dp - diff put
  • 关于多窗口
  • 还有什么好玩的吗?????

回忆同时打开2个文件执行windo

  • vi -o o1 o2
  • :windo normal Ioeasy
    • windo 所有窗口都执行
    • normal 进入普通模式
    • Ioeasy 插入oeasy
  • :windo normal o
    • windo 所有窗口都执行
    • normal 进入普通模式
    • o 换行
  • :windo normal "%p
    • windo 所有窗口都执行
    • normal 进入普通模式
    • "%p 粘贴各自文件名

批量替换

  • :windo %s/oeasy/o2z/g
    • windo 所有window窗口都进行
    • %s/oeasy/o2z/goeasy 替换为 o2z
    • 然后可以:wqall 全部保存

批量细节

  • 可以设置range,这个指的是window编号
    • :1,3windo normal Ioeasy
  • 可以执行批处理序列,用|隔开各个命令
    • :windo %s/oeasy/o2z/g| %s/o2z/o3z/g
    • 这样就可以执行两条替换命令了
    • :windo set nolist nofoldcolumn | colorscheme blue

bufdo

  • 除了windo
  • 我们还可以对每一个buffer执行命令
    • :bufdo %s/oeasy/o2z/g| %s/o2z/o3z/g
    • 可以设置 autowrite 自动保存
    • 也可以设置 hidden 支持未修改buffer隐藏
    • 还可以 :bufdo %s/oeasy/o2z/g| %s/o2z/o3z/g|update 自动更新
  • :ls:buffers 查看当前的buffers列表
  • :bd1:bd o2z.txt 可删除buffers
  • e .可打开新的buffer缓冲
  • 可以用:b1选择缓存

argdo

  • 我们还有一种批量执行命令的方式
  • :argdo %s/oeasy/o2z/g| %s/o2z/o3z/g
  • 打开.c文件,设置文件格式并更新
    • :args *.c
    • :argdo set ff=unix | update
  • 打开.c.h文件,批量替换并更新
    • :args *.[ch]
    • :argdo %s///My_Foo/ge | update
  • 可以用:args查看相应的参数列表
  • 可以用:argd删除参数
  • 可以用:arga添加参数

把网页文件批量替换md文件

之前 - zs

多文件替换

之后 - ze

综合应用

总结

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