oeasy教您玩转vim - 67 - # 批量替换
批量替换
回忆上次
- 我们可以用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/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
可删除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\>/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}
可以用|
按顺序增加
分别对应的
windows
buffers
arguments
- 各有各自的列表、切换、删除增加的方式
以什么开始、结束的模式
zs
ze
关于
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内容回顾
我们来回顾一下 我们都讲了什么?
随机推荐
- [chatGPT]unity中,我希望一个角色有一个链表能获取到场上所有“creature”的transform,当creature增加或减少时刷新这个链表,我该怎么做?
关键字:unity游戏对象管理,unity,unity实例管理,unity触发方法 我 unity中,我希望一个角色有一个链表能获取到场上所有"creature"的transfor ...
- 【c#】JavaScriptSerializer 不序列化null值
首先引用dll :System.Web.Extensions. 再自定义转换器代码如下: public class JavaScriptSerilizeConvert : JavaScriptConv ...
- Java8 Lambda表达式入门
可能很多人都听说过java8的新特性----Lambada表达式,但可能很多人都不知道Lambda表达式到底有什么用,下面我带大家理解一下Lambada表达式. 在平时的编程中,我们常常会用到匿名内部 ...
- HTML——table表格标签
一.table表格的完整写法 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...
- Android 12(S) MultiMedia(十四)ESQueue
之前看到在ATSParser::Pogram::Stream中会创建一个ESQueue,用于存储解析出来的ES data,这个ESQueue到底是用来做什么的呢?这节就来研究研究. 1.构造函数 ES ...
- 薄书的pytorch项目实战lesson49-情感分类+蹭免费GPU
项目来源 B站视频pytorch项目实战-情感分类问题 github lesson49-情感分类实战 1 实验环境 在这里和大家推荐一个学习ML和DL的一个实验运行平台,就是google的Colabo ...
- Java中编译异常与运行异常的区别
编译期异常和运行期异常的区别 编译期异常和运行期异常的区别如下 异常处理要求不同:编译期异常(也称为检测异常checked Exception)要求在代码中显式地处理(使用try-catch或者thr ...
- C# 利用Autofac批量接口注入依赖【学习记录】
背景: 本人在一位大佬的Colder框架中看到了这个接口注入,然后呢就想学习一下ioc思想与di设计模式.此写法给我的感觉就是 非常的 优雅 ,优雅永不过时.关于接口注入的概念和ioc和di具体是什么 ...
- 铭瑄 USB 供电不足
铭瑄 USB 供电不足 可能是USB固件开了节能,节能状态和某些设备会不兼容,更新固件试试固件链接:链接:https://pan.baidu.com/s/1RxHEddYe6TWMDlMJ3PQB1Q ...
- mongodb数据库连接格式
mongodb数据库连接格式 mongodb://账号:密码@mongodb服务器IP:27017/数据库名称