oeasy教您玩轉(zhuǎn)vim - 80 - # 宏macro
宏 macro
回憶
這次我們了解了編碼格式
屏幕顯示的encoding
文件保存的fileencoding
不能搞亂了
一般用什么編的就用什么解
解鈴還須系鈴人
打開不正確的話,就要切到正確的上面
保存成任何自己想要的編碼方式
vim還有什么能幫助我們快速操作的方法么???
建立環(huán)境
vi oeasy.c
輸入以下內(nèi)容

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

這個記錄中 @a 就錄制進了vim的宏庫
可以隨時調(diào)用錄制完成的宏
比如
I#include "<esc>
在本行前面插入內(nèi)容
q
結(jié)束錄制
劃重點
qa 開始錄制宏
q 結(jié)束錄制宏
錄制了宏之后怎么應(yīng)用呢?
應(yīng)用宏macro @
@a
在本行應(yīng)用這個宏
2@a
應(yīng)用這個macro宏a兩次
uuuu
撤銷4次
4@a
應(yīng)用這個marcro宏a4次
劃重點
qa 開始錄制宏
q 結(jié)束錄制宏
@a 應(yīng)用宏
我們做一個復(fù)雜點的
復(fù)雜的宏
I#inclcude "^[A"^[j
I#include " 在行頭插入引用頭
^[
就是esc從插入模式到正常模式A" 在結(jié)尾處插入引號
^[
就是esc從插入模式到正常模式j跳轉(zhuǎn)到下一行
然后來兩行.h的庫

2@a
執(zhí)行兩次a宏
執(zhí)行結(jié)果如下

我可以看看宏長什么樣子么?
查看宏macro
:reg

"a寄存器里面就是macro宏a的內(nèi)容
^[
就是esc不過好像這里面可以進行修改
修改宏macro
到最底下找一個空地
"ap把a寄存器里面的東西粘貼出來
進行修改

"byy
再把本行復(fù)制到b寄存器
一路u撤銷到一個合適的位置
@b
執(zhí)行宏b一次
好像仍然是好使的
3@b
執(zhí)行b宏3次
宏的直接賦值
:let @z = @a
這樣就可以直接把a寄存器里面的東西直接給z寄存器
也就相當(dāng)于宏的賦值
:reg
也可以看到宏z賦值之后的狀態(tài)
追加寄存器

qA
追加錄制a宏
kA//this is lib.^[jq
k 向上一行
A 在本行尾部追加
//this is lib 寫下注釋
^[ 退出插入模式
j 向下一行
q結(jié)束錄制
追加的內(nèi)容會追加到a宏里面

優(yōu)化宏
這里有個jk先向下再向上

可以先粘貼出來然后修改
最后再復(fù)制到a寄存器
"ayy
相當(dāng)于優(yōu)化了宏
總結(jié)
關(guān)于宏,這次有4個要點
qa 開始錄制宏
q 結(jié)束錄制宏
@a 應(yīng)用宏
qA 追加錄制宏
甚至可以編輯宏
"ap 把宏作為文本粘貼出來
編輯之后
"ayy把新的宏裝在進入a寄存器reg
這個宏還可以怎么玩呢???
下次再說!
[Github地址] (https://github.com/overmind1980/oeasyvim)
[Gitee地址] (https://gitee.com/overmind1980/oeasyvim)
[藍橋?qū)嶒灅?邀請碼FJWYIMGB] (https://www.lanqiao.cn/courses/2840)