批处理操作
回忆上次
- 我们上次参数列表
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 oeasywindo所有窗口都执行normal进入普通模式I oeasy插入oeasy
-
:windo normal owindo所有窗口都执行normal进入普通模式o换行
-
:windo normal "%pwindo所有窗口都执行normal进入普通模式"%p粘贴各自文件名
批量替换
-
:windo %s/oeasy/o2z/gwindo所有窗口都进行%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地址] (
浙公网安备 33010602011771号