分类: vim

  • vim编辑器宏的使用

    通过宏可以将一组操作指令以自动化的方式重复执行指定的次数,从而提高编辑效率。

    如果能够合理利用,这种批处理的方式在实际的编码过程中非常有用。

    下面介绍宏的基本使用方法:

    0)  定义宏

    命令格式    q<letter><commands>q

    q    标明开始录制宏;

    <letter>输入一个a到z的字母,设置将宏存储在哪个暂存器;

    <commands>输入要执行的操作;

    q   标明 结束录制宏;

    举例:qa0gUwjjq    定义个一个名称为a的宏,它的指令集是0gUwjj,这个操作会使隔行的字母全部转换为大写字母。

    vim宏定义

    1) 查看宏

    命令格式    :reg <letter>

    举例:要查看刚才定义的宏a,输入:reg a就可以查看宏a的命令序列。

    查看定义的宏
    查看定义的宏

    2)执行宏

    命令格式    <number>@<letter>

    <number> 调用宏的次数;

    @ 开始执行宏;

    <letter> 要执行的宏名称;

    举例:在命令模式下直接输入 5@a 将刚才录制的宏a重复执行5次。

    调用已经定义的宏
    调用已经定义的宏

    3)保存宏

    宏默认会临时保存到.viminfo文件,此文件一般位于目录~【家目录】如果指定的暂存器内容未被覆盖,即便退出vim, 下次打开也依然可以调用。

    如果想永久保存录制的宏,可以将宏的定义添加到~/.vimrc配置文件中。

    例如将刚才录制的宏永久保存,编辑.vimrc文件,添加下面的行

    let @a=’0gUwjj’

    这样任何时候使用@a就可以调用宏了。( 编辑模式下依次按键Ctrl-R Ctrl-R a可以快速输入暂存器里面的内容)

    vim宏保存

    4)编辑宏

    如果录制的宏需要做一些临时修改, 在当前文件中,输入

    :let @a=’

    再依次按键 Ctrl-R Ctrl-R a自动补全宏指令集

    :let @a=’0gUwjj

    做出对应的修改,然后补全最后面的单引号即可

    :let @a=’03xgUwjj’

    这样之前的宏就修改为,先删除行首3个字符,在转化大小写

    调用宏依然使用@a命令

    此时可以输入:reg a 发现宏的内容已经被修改了

    5)宏应用简单示例

    宏实现了编辑操作的模式接口,只要自己能抽象出操作的共同指令集,就可以实现快捷强大的编辑操作,从而提高工作效率。

    a) 给多个行末尾添加分号

    let @a=’0A;^[j0′

    b) 多行注释代码

    let @a=’0i#^[j’

    c) 删除不规则长度的字符串

    let @a=’0t)hdi’j0′