在VIM中使用宏macro

宏是一组命令的集合,应用及其广泛,包括MS Office中的word编辑器,excel编辑器和各种文本编辑器,Linux系统中最强大的文本编辑器之一的VIM同样支持宏操作,本节内容简要说明一下宏在VIM中使用,首先看下面几个宏的命令

  • q* 开始录制宏
  • q 停止录制宏
  • @* 执行宏
  • @@ 重复执行上次的@*命令一次

以上命令均是在VIM的一般模式(Normal)下使用的,其中*代表一个数字和单词字符,正则表达式规则是:[0-9a-zA-Z]

  • :help recording 查看宏帮助

比如在一般模式下输入qq会看到vim下方的状态栏出现recording,此时表示已经开始录制宏到寄存器q中,也可以把q作为宏的id,此时进行的命令都会被录制到宏中,再次在一般模式下按q即停止宏的录制,后面即可通过@q来调用该宏了

举个简单的例子,下面有这样一段代码:

function(name,value,count)
{
    ...
}
function(dc,mel)
{
    ...
}
function(op,ts,n)
{
    ...
}

现在想要修改函数的声明格式,使多个参数之间增加一个空格

1. 首先qq开始一段宏的录制, 命令模式中输入:s/,/,\ /g

2. q结束宏的录制

3. 移动到下一个函数声明位置@q执行宏命令

时间: 2024-10-28 08:50:12

在VIM中使用宏macro的相关文章

vim中的加密文件

用vim编辑程序. 要连续输入几个宏名,将键盘改为了大写输入. 存盘退出,本该用:x,结果写成了:X.接着,要求输入密码,再确认一次.按要求做了,心中还在纳闷. 接着用gcc编译程序,一大堆错误.根据提示,源文件中有大量非法的符号. 用vim打开,需要输入密码. 用gedit打开,里面不少怪符号. 想到误将源文件加密了. 查资料,知道了:x和:X的区别.知道了在命令状态下,用:set key=解密. 第一次解密,没有注意到=后面该有个空格. gcc还是一堆错误,再vim,还要密码. 第二次解密,

zabbix上的宏(macro)介绍

宏:macro,预设的文本替换模式: 宏是一种抽象概念(Abstraction),它根据一些列预定义的规则替换一定的文本模式,而解释或编译器在遇到宏时会自动进行这一模式替换.类似地,zabbix基于宏保存预设文本模式,并且在调用时将其替换为其中的文本. 内置{MACRO}    不需要加$就可以引用: zabbix有许多内置的宏,如{HOST.NAME}.{HOST.IP}.{TRIGGER.DESCRIPTION}.{TRIGGER.NAME}.{TRIGGER.EVENTS.ACK}等. 关

vim重复操作的宏录制

在编辑某个文件的时候,可能会出现需要对某种特定的操作进行许多次的情况,以编辑下面的文件为例: ;===================================================================================== ;This is a sample configuration file when upgrading XXX using InstallShield. ;Author: ini_always ;Date: 8/24/2011 ;L

vim中多标签和多窗口的使用

1.打开多个窗口 打开多个窗口的命令以下几个: 横向切割窗口 :new+窗口名(保存后就是文件名) :split+窗口名,也可以简写为:sp+窗口名 纵向切割窗口名 :vsplit+窗口名,也可以简写为:vsp+窗口名 vim -o file1 file2 ...  #水平打开多窗口, vim -O file1 file2 ...  #垂直打开多窗口, vim -d file1 file2 ...  #垂直打开多窗口,并且进行比较 vimdiff file1 file2 ..  #等同于上一句

sas宏(2),运行中创建宏与使用宏,proc sql创建宏, scl中宏处理(暂缺)

1:在程序运行中进行宏定义 CALL routines that enable you to transfer information between an executing DATA step and the macro processor. You can use the SYMPUT routine to create a macro variable and to assign to that variable any value that is available in the DA

vim中ctags应用

ctags(Generate tag files for source code)是vim下方便代码阅读的工具.尽管ctags也可以支持其它编辑器,但是它正式支持的只有VIM.并且VIM中已经默认安装了Ctags,它可以帮助程序员很容易地浏览源代码. ctags能够定位如下内容: 1)用#define定义的宏 2)枚举型变量的值 3)函数的定义.原型和声明 4)名字空间(namespace) 5)类型定义(typedefs) 6)变量(包括定义和声明) 7)类(class).结构(struct)

Flask基础(14)-->模板代码的复用【宏(Macro)、继承(Block)、包含(include)】

宏 对宏(macro)的理解: 把它看作 Jinja2 中的一个函数,它会返回一个模板或者 HTML 字符串 为了避免反复地编写同样的模板代码,出现代码冗余,可以把他们写成函数以进行重用 需要在多处重复使用的模板代码片段可以写入单独的文件,再包含在所有模板中,以避免重复 定义宏 {% macro input(name,value='',type='text') %} <input type="{{type}}" name="{{name}}" value=&q

12_关于flask中的宏

关于Flask中的 宏 类似于python中的函数,宏的作用就是在模板中重复利用代码,避免代码冗余. Jinja2支持宏,还可以导入宏,需要在多处重复使用的模板代码片段可以写入单独的文件,再包含在所有模板中,以避免重复. 宏的定义和使用 不带参数宏的定义和使用 <!-- 定义, 相当于定义一个函数一样 --> {% macro input() %} <input type="text" name='username' value=''> {% endmacro

iOS 中 #error宏 的使用的一个例子

头文件中如下定义宏: /** * @brief 默认空间名(必填项) */ #error 必填项 #define DEFAULT_BUCKET @"" /** * @brief 默认表单API功能密钥 (必填项) */ #error 必填项 #define DEFAULT_PASSCODE @"" 类的实现中使用: self.bucket = DEFAULT_BUCKET; self.passcode = DEFAULT_PASSCODE; 这样,如果没有初始化这两