批处理操作

回忆上次

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

总结

oeasy教您玩转vim - 65 - # 批处理操作的更多相关文章

  1. oeasy教您玩转vim - 56 - # 字符可视化模式

    ​ 可视化编辑 回忆上节课内容 我们学习了关于模式匹配中使用参数 单个参数 :%s/<h2>\(.*\)</h2>/ - \1/g 多个参数 :%s/<img src=\ ...

  2. oeasy教您玩转vim - 57 - # 行可视化

    ​ 可视化编辑 回忆上节课内容 上次我们了解到可视模式 其实可视化对应三种子模式 字符可视模式 v 行可视模式 大写V 块可视模式ctrl+v 我们先来了解字符可视化模式 快捷键 v 可配合各种mot ...

  3. oeasy教您玩转vim - 53 - # 批量替换

    查找细节 回忆上节课内容 我们温习了关于搜索的相关内容 /正向,?反向 n保持方向,N改变方向 可以设置 是否忽略大写小写 是否从头开始查找 是否高亮显示 还有一些正则表达式的使用方法 行头行尾 ^$ ...

  4. oeasy教您玩转linux010203显示logo

    我们来回顾一下 上一部分我们都讲了什么?

  5. oeasy 教您玩转linux010101查看内核uname

    linux([?l?n?ks]) 是什么????? 咱们这次讲点什么呢?这次咱们讲讲这个 linux([?l?n?ks]),什么是 linux([?l?n?ks])呢?这linux([?l?n?ks] ...

  6. oeasy教您玩转linux010202软件包管理apt

    顾一下 上一部分我们都讲了什么?

  7. oeasy教您玩转linux010201持续输出yes

    我们来回顾一下 上一部分我们都讲了什么?

  8. oeasy教您玩转linux010108到底哪个which

    到底哪个which 回忆上次内容 我们上次讲了查找命令位置whereis 我想找到whereis的位置怎么办?

  9. oeasy教您玩转python - 006 - # hello world

    ​ Hello World! 回忆上次内容 python3 的程序是一个 5.3M 的可执行文件 python3 里面全都是 cpu 指令 可以执行的那种指令 我们可以把指令对应的汇编找到 objdu ...

  10. oeasy教您玩转linux-010110内容回顾

    我们来回顾一下 我们都讲了什么?

随机推荐

  1. Chart.js (v2.9.4)--如何像高版本一样支持skipNull

    项目开发中,用到Chart.js展示图表,用起来也非常方便,配置很灵活,很好用,给个数据集,设置一些配置值,实例化一个Chart出来,图表就非常丝滑地展现出来了. 但是作为开发人员都知道的一个真理,永 ...

  2. JS 实现鼠标框选(页面选择)时返回对应的代码或文本内容

    JS 实现鼠标框选(页面选择)时返回对应的代码或文案内容 一.需求背景 1.项目需求 当用户进行鼠标框选选择了页面上的内容时,把选择的内容进行上报. 2.需求解析 虽然这需求就一句话的事,但是很显然, ...

  3. .net程序员学习java篇一(搭建SSM)

    一.安装IDE 相比于.net环境的一气呵成,java可能麻烦一点,这里记录下来,避免萌新踩坑 1.1安装JDK,这里不要玩什么花哨,老老实实选个大众版(Oracle JDK1.8x),设置环境变量, ...

  4. 『手撕Vue-CLI』拉取模板名称

    前言 好,经过上篇文章的介绍,已经可以有处理不同指令的能力了,接下来我们就来处理 vue create 指令,这个指令的本质就是从网络上下载提前准备好的模板,然后再自动安装模板中相关依赖. 所以实现 ...

  5. go 有向简单图 十字链表

    package main import "fmt" type CrossEdgeNode struct { tailVex int // 尾顶点 headVex int // 头顶 ...

  6. ASP.NET Core替换Action实际执行方法

    RequestDelegate 上次,我们在<如何判断当前请求的API类型>中查看endpoints.MapControllers()实现时,最终定位到ActionEndpointFact ...

  7. SDWebImageCache缓存分析

      文字版本:  https://docs.qq.com/doc/DRVpPS3BBV3l0bEZ5  

  8. MQ的相关概念

    MQ的相关概念 什么是MQ ​ MQ(message queue),从字面意思上看,本质是个队列,FIFO 先入先出,只不过队列中存放的内容是 message 而已,还是一种跨进程的通信机制,用于上下 ...

  9. 7.17考试总结(NOIP模拟18)[导弹袭击·炼金术士的疑惑·老司机的狂欢]

    问灵十三载,等一不归人. 前言 这回考试全靠 T2 了,别的基本上没分(菜) 总感觉最近进度有亿点快,每天都在补坑,每天都在留坑.... T1 导弹袭击 解题思路 因为这个题的两种长度是不一定的,因此 ...

  10. 使用jasypt对springboot配置信息加密

    1.pom文件增加依赖 <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactI ...