zl程序教程

您现在的位置是:首页 >  工具

当前栏目

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

Vim 操作 玩转 批处理 65 oeasy
2023-09-27 14:22:10 时间

批处理操作

回忆上次

  • 我们上次参数列表 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

总结