共计 1994 个字符,预计需要花费 5 分钟才能阅读完成。
批量替换
回顾上次
- 咱们能够用 vimdiff 疾速的比拟文件
- 这很实用!!!
- 实用的一些跳转形式
遍历所有的批改 change
]c
下一条批改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/overmind19…)
[Gitee 地址] (https://gitee.com/overmind198…)
[蓝桥实验楼 邀请码 FJWYIMGB] (https://www.lanqiao.cn/course…)