oeasy教您玩转vim - 67 - # 批量替换
批量替换
回忆上次
- 我们可以用vimdiff快速的比较文件
- 这很实用!!!
- 实用的一些跳转方式
遍历所有的修改change
]c下一条修改[c上一条修改
遍历所有的函数method
]m下一条修改[m上一条修改
面对不同点
- 把当前的改成对比的 - do - diff obtain
- 把对比的改成当前的 - dp - diff put
- 关于多窗口
- 还有什么好玩的吗?
回忆同时打开2个文件执行windo
vi -o o1 o2:windo normal Ioeasywindo所有窗口都执行normal进入普通模式Ioeasy插入oeasy
:windo normal owindo所有窗口都执行normal进入普通模式o换行
:windo normal "%pwindo所有窗口都执行normal进入普通模式"%p粘贴各自文件名
批量替换
:windo %s/oeasy/o2z/gwindo所有window窗口都进行%s/oeasy/o2z/g把oeasy替换为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可删除bufferse .可打开新的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\>/My_Foo/ge | update
- 可以用
:args查看相应的参数列表 - 可以用
:argd删除参数 - 可以用
:arga添加参数
把网页文件批量替换md文件
vi **/*.html- 把2级目录下所有html用vim打开
:args- 观察所有参数
:argdo %s/<img src=\"\(.\{-}\)\" title=\"\(.\{-}\)\" \/>/[!\2]\1 | update- 替换img标签
:argdo %s/<a href=\"\(.\{-\})\">\(.\{-\}\)<\/a>/[\2]\1/g | update- 替换a标签
:%s/<h1>\(.*\)</h1>/- \1/gc- 替换h1标签
:%s/<h2>\(.*\)</h2>/ - \1/g- 替换h2标签
之前 - zs
要求
- 把
oeasy.org替换为oeasy.io - 但是
vim.org不替换
- 把

/oeasy\zs.org- 查找前面有
oeasy的.org
- 查找前面有
:%s/oeasy\zs.org/.io/g- 前面是
oeasy的.org换成.io
- 前面是
:%s/\<o.*\zs.org/.io/g- 以
o为单词开头的.org都替换
- 以

多文件替换
:argdo %s/\<o.*\zs.org/.io/g | update- 对所有的arguments参数
- 执行全文批量替换
- 并且更新

/^\s*\zsif- 开头只有空格和tab的if
/\(.\{-}\zsFab\)\{3}- 第三个
Fab
- 第三个
之后 - ze

end\ze\(if\|for\)endif和endfor中的end

综合应用
\<o.*\ze\.o.g- 以
o开头的 - 后面跟
o什么g的
- 以
:bufdo %s/\<o.*\ze\.o.g/ooo/g- 把以
o开头的、后面跟o什么g的单词都换成ooo - 对于所有的
buffers - 全文替换
- 把以
总结
这次有三种批量替换,分别是
:windo:bufdo:argdo- 执行的
{cmd}可以用|按顺序增加
分别对应的
windowsbuffersarguments
- 各有各自的列表、切换、删除增加的方式
以什么开始、结束的模式
zsze
关于
window窗口容器- 我们切得越细
- 可用的范围越小
- 总共
80*24的屏幕资源很快就用完了
- 我又想多线程访问
- 又想有足够的屏幕来编辑
- 那怎么办呢?
- 除了window之外还有容器吗?
- 下次再说
[Github地址] (https://github.com/overmind1980/oeasyvim)
[Gitee地址] (overmind1980/oeasyvim)
[蓝桥实验楼 邀请码FJWYIMGB] (oeasy 教您零基础玩转编辑神器 vim_Linux - 蓝桥云课)
oeasy教您玩转vim - 67 - # 批量替换的更多相关文章
- oeasy教您玩转vim - 53 - # 批量替换
查找细节 回忆上节课内容 我们温习了关于搜索的相关内容 /正向,?反向 n保持方向,N改变方向 可以设置 是否忽略大写小写 是否从头开始查找 是否高亮显示 还有一些正则表达式的使用方法 行头行尾 ^$ ...
- oeasy教您玩转vim - 56 - # 字符可视化模式
可视化编辑 回忆上节课内容 我们学习了关于模式匹配中使用参数 单个参数 :%s/<h2>\(.*\)</h2>/ - \1/g 多个参数 :%s/<img src=\ ...
- oeasy教您玩转vim - 57 - # 行可视化
可视化编辑 回忆上节课内容 上次我们了解到可视模式 其实可视化对应三种子模式 字符可视模式 v 行可视模式 大写V 块可视模式ctrl+v 我们先来了解字符可视化模式 快捷键 v 可配合各种mot ...
- oeasy教您玩转linux010203显示logo
我们来回顾一下 上一部分我们都讲了什么?
- oeasy 教您玩转linux010101查看内核uname
linux([?l?n?ks]) 是什么????? 咱们这次讲点什么呢?这次咱们讲讲这个 linux([?l?n?ks]),什么是 linux([?l?n?ks])呢?这linux([?l?n?ks] ...
- oeasy教您玩转linux010202软件包管理apt
顾一下 上一部分我们都讲了什么?
- oeasy教您玩转linux010201持续输出yes
我们来回顾一下 上一部分我们都讲了什么?
- oeasy教您玩转linux010108到底哪个which
到底哪个which 回忆上次内容 我们上次讲了查找命令位置whereis 我想找到whereis的位置怎么办?
- oeasy教您玩转python - 006 - # hello world
Hello World! 回忆上次内容 python3 的程序是一个 5.3M 的可执行文件 python3 里面全都是 cpu 指令 可以执行的那种指令 我们可以把指令对应的汇编找到 objdu ...
- oeasy教您玩转linux-010110内容回顾
我们来回顾一下 我们都讲了什么?
随机推荐
- es 排序突然很慢的原因
今天突然之间发现一个访问es的查询很慢.由刚上线之前测试的100ms直接到了5s左右.瞬间懵逼. 这个用户索引大概200w的数据. 查询语句如下 GET /user/_search{"fro ...
- 批量处理图片(resize;grayscale)以及重命名
批量处理图片(resize:grayscale)以及重命名 做深度学习,有大量图片需要做为训练集,为方便批量resize,rename,灰度化,制作python脚本. 先纪录一些函数: resize ...
- VALL-EX下载介绍:只需3秒录音,即可克隆你的声音
VALL-EX是一个强大和创新的多语言文本转语音模型,支持对中文.英文和日语的语音进行合成和克隆,使用者只需上传一段3-10秒的录音,就可以生成高质量的目标音频,同时保留了说话人的声音.情感和声学环境 ...
- 微信小程序学习随笔
scroll-view与view 要做出滚动视图的效果 <scroll-view> <view id="1">11</view> <vie ...
- OpenTelemetry agent 对 Spring Boot 应用的影响:一次 SPI 失效的案例
背景 前段时间公司领导让我排查一个关于在 JDK21 环境中使用 Spring Boot 配合一个 JDK18 新增的一个 SPI(java.net.spi.InetAddressResolverPr ...
- [SWPUCTF 2021 新生赛]easy_md5
打开靶场可以看到一串代码,进行代码审计我们可以知道这个网页包含了一个叫flag2.php的文件,如果想要得到这个文件就得进行GET传参和POST传参. 并且这里用到一个MD5绕过,传参的值不能相等,但 ...
- mysql备份实战
1.备份恢复演练(mysqldump+binlog) 知识储备 如下内容.. 全量备份 全量数据,指的是某一整个数据库(如kings)中所有的表.以及表数据,进行备份. 例如备份所有数据库.以及所有数 ...
- SonarQube代码质量扫描工具
1.什么是SonarQube 既然是学习devops 运维流水线构建 开发 ↓ 测试 ↓ 运维 华为devops软件开发流水线文档 https://support.huaweicloud.com/re ...
- Vue学习:1.V标签综合1
认识V标签 目录 认识V标签 v-text: v-html: v-bind (缩写为 :): v-if / v-else / v-else-if: v-show: v-for: v-model: Vu ...
- 抖音验证签名和接口含中文签名,需要在发送端加上utf8编码
抖音验证签名和接口含中文签名,需要在发送端加上utf8编码 抖音验签和抖音异步通知回调验签解决:是对整个接收的字符串做验签,而不是部分数据做验签解决中文参数问题,否则中文乱码报验签错误 签名算法htt ...