vim宏录制操作

平常开发过程中我们会有处理文本的需求,比如后端就要根据excel生成sql语句,运维需要处理各种日志转化成特定的格式。这些本质上都是批量处理文本内容。一般情况下我们会编写php,go,shell等脚本或者用awk这样的命令去处理。这里介绍下vim的宏录制功能 非常适合处理这样的情况。

vim宏的适应分为录制和回放两个操作
录制操作以q{register}开始, q表示开启/关闭宏录制,{register}表自定义的寄存器,用来存储批量操作命令。录制完成后用q关闭宏录制
宏的回放。录制完宏操作之后,选择需要变动的文本内容。输入:normal @{register}来进行回放。

实际操作
下图excel的字段,以扩展属性为条件 去更新手机号

setp1 筛选无效数据后 复制A,B两列的内容
step2 终端下新建demo.sql 并将粘贴内容复制到文件下(使用 "+p粘贴会更快 且没有代码格式问题不会自动换行异常)生成一下数据

step3 开启宏录制 qe 然后一次输入Iupdate user set phone='ea where id=A; 以上就是这次宏录制的全部内容 最后输入 q完成宏录制
Ivim命令表示在行首进行编辑(插入)模式
update user set phone='输入修改内容
ea电脑Esc按键退出编辑(插入)模式。e表示光标移动到下一个单词尾部,a表示在当前光标后进入编辑(插入模式)
where id=输入修改内容
A;推出编辑(插入)模式,A在行尾进入编辑(插入模式),输入;mysql语句的结束符,退出编辑模式
step4 jVG选中其他所有文本内容 输入:normal @e即可对所有剩余内容完成或放

就能完成了一次 vim宏操作。比起写脚本相对比较简单。不过需要注意的是vim有插件的命令是不支持宏操作的,并且对文件有格式检测。就像上面的sql文件 建议改成demo.txt处理完后在重命名成 demo.sql 。

还有一种简单的批量操作,如果上面的操作 忘记输入最后的分号只需输入ggVG选中全部内容:normal A;行尾补全分号

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

the ache

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值