oeasy教您玩转vim - 80 - # 宏macro
宏 macro
回忆
这次我们了解了编码格式
屏幕显示的encoding
文件保存的fileencoding
不能搞乱了
一般用什么编的就用什么解
解铃还须系铃人
打开不正确的话,就要切到正确的上面
保存成任何自己想要的编码方式
vim还有什么能帮助我们快速操作的方法么?🤔
建立环境
vi oeasy.c
输入以下内容

录制宏macro
qa
录制叫做
a
的宏

这个记录中 @a 就录制进了vim的宏库
可以随时调用录制完成的宏
比如
I#include "<esc>
在本行前面插入内容
q
结束录制
划重点
qa 开始录制宏
q 结束录制宏
录制了宏之后怎么应用呢?
应用宏macro @
@a
在本行应用这个宏
2@a
应用这个macro宏a两次
uuuu
撤销4次
4@a
应用这个marcro宏a4次
划重点
qa 开始录制宏
q 结束录制宏
@a 应用宏
我们做一个复杂点的
复杂的宏
I#inclcude "^[A"^[j
I#include " 在行头插入引用头
^[
就是esc从插入模式到正常模式A" 在结尾处插入引号
^[
就是esc从插入模式到正常模式j跳转到下一行
然后来两行.h的库

2@a
执行两次a宏
执行结果如下

我可以看看宏长什么样子么?
查看宏macro
:reg

"a寄存器里面就是macro宏a的内容
^[
就是esc不过好像这里面可以进行修改
修改宏macro
到最底下找一个空地
"ap把a寄存器里面的东西粘贴出来
进行修改

"byy
再把本行复制到b寄存器
一路u撤销到一个合适的位置
@b
执行宏b一次
好像仍然是好使的
3@b
执行b宏3次
宏的直接赋值
:let @z = @a
这样就可以直接把a寄存器里面的东西直接给z寄存器
也就相当于宏的赋值
:reg
也可以看到宏z赋值之后的状态
追加寄存器

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

优化宏
这里有个jk先向下再向上

可以先粘贴出来然后修改
最后再复制到a寄存器
"ayy
相当于优化了宏
总结
关于宏,这次有4个要点
qa 开始录制宏
q 结束录制宏
@a 应用宏
qA 追加录制宏
甚至可以编辑宏
"ap 把宏作为文本粘贴出来
编辑之后
"ayy把新的宏装在进入a寄存器reg
这个宏还可以怎么玩呢?🤔
下次再说!
[Github地址] (https://github.com/overmind1980/oeasyvim)
[Gitee地址] (https://gitee.com/overmind1980/oeasyvim)
[蓝桥实验楼 邀请码FJWYIMGB] (https://www.lanqiao.cn/courses/2840)