Vim 宏macro详解

回忆

建立环境

  • vi oeasy.c
  • 输入以下内容

图片描述

录制宏macro

  • qa
    • 录制叫做a的宏

图片描述

  • 这个记录中 @a 一直存在

  • I#include "

    • 在本行头部插入内容
  • A"

    • 在本行尾部插入内容
  • j

    • 跳转到下一行
  • q

    • 结束录制
  • 划重点

    • qa 开始录制宏
    • q 结束录制宏
    • @a 应用宏

应用宏macro

  • @a

    • 在本行应用这个宏
  • 2@a

    • 应用这个macro宏a两次
  • uuuu

    • 撤销4次
  • 4@a

    • 应用这个marcro宏a4次
  • 划重点

    • qa 开始录制宏
    • q 结束录制宏
    • @a 应用宏

查看宏macro

  • :reg

图片描述

  • "a寄存器里面就是macro宏a的内容
    • ^[就是esc
  • 不过好像这里面可以进行修改

修改宏macro

  • 到最底下找一个空地
  • "ap把a寄存器里面的东西粘贴出来
  • 进行修改

图片描述

  • "byy
    • 再把本行复制到b寄存器
  • 一路撤销u到一个合适的位置
  • @b
    • 执行b宏1次
    • 好像仍然是好使的
  • 3@b
    • 执行b宏3次

宏的直接赋值

  • :let @z = @a
  • 这样就可以直接把a寄存器里面的东西直接给z寄存器
  • 也就相当于宏的赋值

追加寄存器

  • qA
    • 追加录制a宏
  • kA//this is lib.^[jq
    • k 向上一行
    • A 在本行尾部追加
    • //this is lib 写下注释
    • ^[ 退出插入模式
    • j 向下一行
    • q结束录制
  • 追加的内容会追加到a宏里面

图片描述

  • 其中ctrl+cesc等价

    优化宏

  • 这里有个jk先向下再向上

图片描述

  • 可以先粘贴出来然后修改
  • 最后再复制到a寄存器
  • 相当于优化了宏

总结

  • 关于宏,我们这次有4个要点
    • qa 开始录制宏
    • q 结束录制宏
    • @a 应用宏
    • qA 追加录制宏
  • 这个宏还可以怎么玩呢?🤔
  • 下次再说!

教程来源于Github,感谢overmind1980大佬的无私奉献,致敬!

技术教程推荐

MySQL实战45讲 -〔林晓斌〕

零基础学Java -〔臧萌〕

人人都能学会的编程入门课 -〔胡光〕

软件设计之美 -〔郑晔〕

OAuth 2.0实战课 -〔王新栋〕

Go 并发编程实战课 -〔晁岳攀(鸟窝)〕

零基础实战机器学习 -〔黄佳〕

手把手带你搭建秒杀系统 -〔佘志东〕

徐昊 · TDD项目实战70讲 -〔徐昊〕