欢迎光临散文网 会员登陆 & 注册

oeasy教您玩转vim - 65 - # 批处理操作

2021-11-18 10:47 作者:oeasy  | 我要投稿

批处理操作

回忆上次

  • 我们上次参数列表 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/goeasy替换为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

  • 分别对应的windowbuffersarguments

  • 各有各自的列表、切换、删除、增加的方式

  • 多文件多窗口还有什么可玩的么?🤔

  • 下次再说 *
    [Github地址] (https://github.com/overmind1980/oeasyvim)
    [Gitee地址] (https://gitee.com/overmind1980/oeasyvim)
    [蓝桥实验楼 邀请码FJWYIMGB] (https://www.lanqiao.cn/courses/2840)


oeasy教您玩转vim - 65 - # 批处理操作的评论 (共 条)

分享到微博请遵守国家法律