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地址] (GitHub - overmind1980/oeasyvim: 这是oeasy制作的的一套关于vim的教程 可以在 https://www.lanqiao.cn/teacher/courses/2840 做实验 邀请码FJWYIMGB 本教程从0基础开始,到精通vim配置,和高级命令。希望能让vim是你的开发更高效。)
[Gitee地址] (overmind1980/oeasyvim)
[蓝桥实验楼 邀请码FJWYIMGB] (oeasy 教您零基础玩转编辑神器 vim_Linux - 蓝桥云课)
oeasy教您玩转vim - 80 - # 宏macro的更多相关文章
- oeasy教您玩转vim - 56 - # 字符可视化模式
可视化编辑 回忆上节课内容 我们学习了关于模式匹配中使用参数 单个参数 :%s/<h2>\(.*\)</h2>/ - \1/g 多个参数 :%s/<img src=\ ...
- oeasy教您玩转vim - 57 - # 行可视化
可视化编辑 回忆上节课内容 上次我们了解到可视模式 其实可视化对应三种子模式 字符可视模式 v 行可视模式 大写V 块可视模式ctrl+v 我们先来了解字符可视化模式 快捷键 v 可配合各种mot ...
- oeasy教您玩转vim - 53 - # 批量替换
查找细节 回忆上节课内容 我们温习了关于搜索的相关内容 /正向,?反向 n保持方向,N改变方向 可以设置 是否忽略大写小写 是否从头开始查找 是否高亮显示 还有一些正则表达式的使用方法 行头行尾 ^$ ...
- oeasy教您玩转linux010203显示logo
我们来回顾一下 上一部分我们都讲了什么?
- oeasy 教您玩转linux010101查看内核uname
linux([?l?n?ks]) 是什么????? 咱们这次讲点什么呢?这次咱们讲讲这个 linux([?l?n?ks]),什么是 linux([?l?n?ks])呢?这linux([?l?n?ks] ...
- oeasy教您玩转linux010202软件包管理apt
顾一下 上一部分我们都讲了什么?
- oeasy教您玩转linux010201持续输出yes
我们来回顾一下 上一部分我们都讲了什么?
- oeasy教您玩转linux010108到底哪个which
到底哪个which 回忆上次内容 我们上次讲了查找命令位置whereis 我想找到whereis的位置怎么办?
- oeasy教您玩转python - 006 - # hello world
Hello World! 回忆上次内容 python3 的程序是一个 5.3M 的可执行文件 python3 里面全都是 cpu 指令 可以执行的那种指令 我们可以把指令对应的汇编找到 objdu ...
- oeasy教您玩转linux-010110内容回顾
我们来回顾一下 我们都讲了什么?
随机推荐
- SCSS随笔-mixin与@extend
变量 定义变量 $color-white: white; 使用变量 body { background-color: $color-white; } @mixin 与 @include 定义mixin ...
- 使用Redis实现短信登陆
使用Redis实现发送验证码:验证码登陆.注册:登陆校验拦截.登陆状态刷新等一系列问题. 验证码发送和验证登陆注册 思路流程 整体的思路以及流程如题: 代码实现 实体类 User实体类 @Data @ ...
- starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
在线求解[已解决] 问题 D:\persioninto_exe\soft\jdk1.8.0_322\bin\java.exe -XX:TieredStopAtLevel=1 -noverify -Ds ...
- WPF DataGrid使用 自动显示行号、全选、三级联动、拖拽
1.DataGrid的使用自动显示行号(修复删除行时行号显示不正确) dgTool.LoadingRow += new EventHandler<DataGridRowEventArgs&g ...
- NOIP模拟59
T1 柱状图 解题思路 二分答案+线段树check 显然对于最后的限制,我们希望向上移的和向下移的柱子数尽量接近. 因此枚举每一个柱子当做最高的一个的时刻,二分找到一个当前最优解更新答案. 开两棵线段 ...
- linux使用过程中遇到的常见问题
1 xxxx is not in the sudoers file. This incident will be reported. 解决方式:https://www.cnblogs.com/xym4 ...
- vue绑定下拉框 vue修饰符
<select v-model="selected"> <option>请选择</option> <option>HTML</ ...
- 算法学习笔记(45): 快速沃尔什变换 FWT
遗憾的是 math 里面一直没有很好的讲这个东西--所以这次细致说说. FWT 的本质 类似于多项式卷积中,利用 ntt 变换使得卷积 \(\to\) 点乘,fwt 也是类似的应用. 定义某种位运算 ...
- C# .NET 云南农信国密签名(SM2)简要解析
BouncyCastle库(BC库)与云南农信最大的区别是 : BC库 SM2Signer.Init() 方法比云南农信多了最后3行代码: digest.Reset(); z = GetZ(user ...
- SQLite vs MySQL vs PostgreSQL对比总结
开发业务系统时,是绕不开RDBMS(关系型数据库)的.虽然现在诞生了各种NoSQL的数据库,RDBMS在业务系统中的严谨和优势依然无法取代. 近几年大大小小的项目中,常用的三种RDBMS(SQLite ...