批处理操作
回忆上次
- 我们上次参数列表
arguments list
- 所谓参数列表指的是
vim
打开的参数列表
- 参数会加载到内存中成为
buffer
-
参数的控制
:arga filename
添加参数
- 此操作支持*可以打开多个文件
:argd filename
来删除参数
:args
查询参数列表
-
缓冲的控制
:bd filename
来删除缓存
:e filename
来打开缓存
ls
可以列出缓存列表
-
可以在
terminal
中配合find
来找到文件- 然后作为参数给
vim
sudo find / -mindepth 3 -maxdepth 4 -name passwd | xargs vi
- 然后作为参数给
- 精准地控制了参数列表或者缓冲列表
- 这两个列表可以怎么用呢?🤔
同时打开2个文件
vi -o o1 o2
-
:windo normal I oeasy
windo
所有窗口都执行normal
进入普通模式I oeasy
插入oeasy
-
:windo normal o
windo
所有窗口都执行normal
进入普通模式o
换行
-
:windo normal "%p
windo
所有窗口都执行normal
进入普通模式"%p
粘贴各自文件名
批量替换
-
:windo %s/oeasy/o2z/g
windo
所有窗口都进行%s/oeasy/o2z/g
把oeasy
替换为o2z
- 然后可以
:wall
全部保存
批量细节
-
可以设置
range
- 这个指的是
window
编号 :1,3windo normal Ioeasy
- 这个指的是
-
可以执行批处理序列,用
|
隔开各个命令:windo %s/oeasy/o2z/g| %s/o2z/o3z/g
- 这样就可以执行两条替换命令了
:windo set nolist nofoldcolumn | normal zn
: windo set fileencoding=utf-8 | update
自动更新
bufdo
- 除了
windo
-
我们还可以对每一个
buffer
执行命令:bufdo %s/oeasy/o2z/g
- 在当前
window
遍历每个buffer
- 可以设置
hidden
隐藏 修改后的buffer
- 或
autowrite
自动保存
-
可
:ls
、:buffers
- 查看当前的
buffers
列表
- 查看当前的
-
可删除
buffers
缓冲文件:bd1
:bd o2z.txt
-
可打开新的
buffer
缓冲文件e .
-
可以选择缓冲文件
:b1
argdo
-
我们还有一种批量执行命令的方式
:argdo %s/oeasy/o2z/g
-
打开.c文件,设置文件格式并更新
:args *.c
:argdo set ff=unix | update
-
打开
.c
或.h
文件,批量替换并更新:args *.[ch]
:argdo %s/\<my_foo\>/My_Foo/ge | update
-
查看相应的参数文件列表
- 可以用
:args
- 可以用
-
删除参数文件
- 可以用
:argd
- 可以用
-
添加参数文件
- 可以用
:arga
- 可以用
总结
-
这次有三种批量替换,分别是
:windo
:bufdo
:argdo
-
执行的
{cmd}
可以用|
按顺序增加update
自动更新:set autowrite
自动写入:set hidden
可以隐藏未保存buffer
- 分别对应的
window
、buffers
、arguments
- 各有各自的列表、切换、删除、增加的方式
- 多文件多窗口还有什么可玩的么?🤔
- 下次再说 👋
[Github地址] (GitHub - overmind1980/oeasyvim: 这是oeasy制作的的一套关于vim的教程 可以在 https://www.lanqiao.cn/teacher/courses/2840 做实验 邀请码FJWYIMGB 本教程从0基础开始,到精通vim配置,和高级命令。希望能让vim是你的开发更高效。)
[Gitee地址] (overmind1980/oeasyvim)
[蓝桥实验楼 邀请码FJWYIMGB] (oeasy 教您零基础玩转编辑神器 vim_Linux - 蓝桥云课)