linux宏命令编辑,linux-vim宏定义(三)
什么是宏
计算机科学里的宏(Macro),是一种批量批处理的称谓。一般说来,宏是一种规则或模式,或称语法替换 ,用于说明某一特定输入(通常是字符串)如何根据预定义的规则转换成对应的输出(通常也是字符串)。这种替换在预编译时进行,称作宏展开。
在vim中,也有宏功能,低调而强大,今天给大家详细介绍一下。
vim中宏定义
宏定义使用非常简单,一共以下几个步骤即可完成宏定义:
1. 在命令模式下,按下键盘q,开启宏模式。
2. 再次按下任意一个你想定义的按键,该键被宏定义。
3. 录制你想要操作了一系列指令。
4. 再次回到命令模式下,再次按下q,结束录制。
5. 以后每次在命令模式下,按下@符号,再按下之前设置的宏定义按键,即可自动完成所有宏操作。
这里以字母h为例,我想对h进行宏定义,对每行内容进行php的var_dump输出,那么具体操作如下。
1. 将光标移到某一行开头,并按下q,开启宏定义,切记不要双击q,不然就变成了对q的宏定义了。
2. 按下h,对h进行宏定义,此时左下角会显示recording提示。
3. 在recording下,所有按键都会被记录到宏定义中。按下i,进入插入模式。
4. 输入字符串var_dump("。
5. 按下esc,回到命令模式,按下$符号,将光标移动到行尾。
6. 按下a,进入插入模式,输入字符串");,按下esc,所有操作完成,并回到命令模式。
7. 再次按下q,完成宏定义录入。
8. 选中下一行内容,按下@,再按下h,神奇一幕出现,自动完成了var_dump函数的编写。
酷炫的demo
1. 打开一个空文件,即将展示一个自动写入序列
root@localhost [~] vim demo.txt
2. 进入插入模式,按下数字1
root@localhost [~] vim demo.txt
1
3. 开启recording模式,并使用字符a进行宏定义
esc --> q --> a
4. copy当前行,并复制到下一行
yy copy当前行
p 复制到下一行
root@localhost [~] vim demo.txt
1
1
5. 将复制的那行数字自增加一
光标下移
Control + a,数字增加1
root@localhost [~] vim demo.txt
1
2
6. 退出recording
按q键
7. 神奇的增长
在当前行,按下 98@a
屏幕如下,是不是很棒,正好100行:
至此,你已经学会了vim的recording功能,在学习工作中去使用吧!
linux宏命令编辑,linux-vim宏定义(三)相关推荐
- 如何在Linux kernel Makefile中添加宏定义
如何在Linux kernel Makefile中添加宏定义: CFLAGS_object.o += -DMACRO_NAME 在编译object.o时定义宏MACRO_NAME,在kernel中添加 ...
- linux中offsetof与container_of宏定义
linux内核中offsetof与container_of的宏定义 #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->M ...
- linux下查看系统自身宏定义
跨平台程序,经常要用到区分系统的宏定义,比如windows中的WIN32, WIN64, Linux中的 unix, linux等等系统自定义宏 那么在linux下面,怎么查看系统有哪些自定义宏咧,用 ...
- linux驱动 打印变量,linux驱动 内核函数 变量 宏定义
insmod modprobe(自动检测 模块加载时需要的别的模块) rmmod 用户空间工具, 加载模块到运行中的内核以及去除它们. #include module_init(init_functi ...
- java宏定义三目运算define_宏定义的正确写法,三目运算的宏定义
摘要: 宏,分为两类: 1.对象宏(object-like macro) 对于对象宏来说确实相对简单,但却也不是那么简单 的查找替换 2.函数宏(function-like macro) 函数宏顾名思 ...
- linux 宏的作用域,Linux 系统编程:几个宏定义
__init宏使内建模块中的init函数在执行完成后释放掉,仅用于初始化.编译器将所有代码存储到特殊的内存段中,初始化结束就释放这段内存. __initdata,和__init的作用基本上一样,不过它 ...
- linux 内核 LINUX_VERSION_CODE 和 KERNEL_VERSION 宏定义 版本信息
由于Linux版本的在不断更新,当设备驱动去兼容不同版本的内核时,需要知道当前使用的内核源码版本,以此来调用对应版本的内核API,这两个宏定义在文件 /usr/include/linux/versio ...
- linux保存编辑信息,linux系统编辑神器 -vim用法大全
vim编辑器 文本编辑器,字处理器 ASCIInano, sed vi: Visual Interface vim: VI iMproved 全屏编辑器,模式化编辑器 vim模式: 编辑模式(命令模式 ...
- Linux 开发环境搭建与使用——Linux 常用编辑器之vim
1)使用 vi 打开文件 vi filename:打开或新建文件,并将光标置于第一行行首 如果文件不存在,则会新建文件,如下: 如果文件存在,即为打开文件,打开文件后,按 "i" ...
最新文章
- 四元数姿态解算及多传感器融合详细解析
- 旺财速啃H5框架之Bootstrap(六)
- ubuntu 下pip3 与pipenv 安装使用错误
- abb机器人离线编程软件叫做_滨州abb机器人离线编程软件
- PS大神最全脑洞合集
- ARM 开发板修改MAC地址
- 2019年六项扣除 个税计算器
- 尾行4攻略女仆计算机密码,【尾行4攻略女仆不动】尾行2,攻略(共10篇)
- 网盘翻车不断,我是如何低价自建一个自用网盘
- 泰克mdo3014使用手册_泰克示波器MDO3014故障维修案例分享
- 教你如何有效防止DDos攻击?
- 贪心问题(Python代码实现)——磁带最优存储问题
- IDEA搭建一个SpringBoot项目——十分详细(web+mysql)
- 【编译原理】 实验三 LL(1)分析法(LL1分析表的自动生成)
- linux节点状态 slurm,linux – 为什么slurm中的作业在TensorFlow脚本中无限期冻结?
- Java中你最擅长什么_你最擅长的领域是什么
- js 写一个简单的搜索关键字
- Charles 抓包工具 报You may need to configure your browser or application to trust the Ch......错误
- 无线通讯 - 5G芯片和5G模组区别
- 如何防止数据泄密和丢失?22项安全策略,守护企业数据安全
热门文章
- SpringCloud教程 | 第二篇: 服务消费者(rest+ribbon)
- TensorFLow 常用错误总结
- python科学计算笔记(八)pandas大数据HDF5硬盘操作方式
- 【leetcode】1001. Grid Illumination
- 专家支招:如何利用Plesk搭建完美全能开发环境
- iOS - AsyncSocket 的使用
- 跟我一起数据挖掘(10)——HP Vertica
- Java安全编码之用户输入
- http介绍(3)http1.0 和http1.1 区别
- vlc框架流程解析(转)