Vim|笔记整理(4)——宏录制

宏录制

引言

我们知道.命令对重复小的修改确实有效,但想到重复更大规模的改动时,Vim的宏就派上用场了。

宏很适合对一系列相似的行、段落,甚至文件,进行重复性修改。

在录制命令序列的过程中难免会出错,不过用不着推翻重来,因为可以很方便地在原有宏的结尾附加新的命令。

就像黑白棋游戏一样,学习Vim的宏只需一分钟,但要穷其一生才能精通。

宏的读取与执行

把命令序列录制成宏

在普通模式下按
q + {register} + 一系列命令 + q

  • q键既是录制按钮,也是停止按钮
  • {register}是寄存器,可以是a-z A-Z的任何一个字符

通过执行宏来回放命令序列

可以用@{register}命令执行指定的寄存器内容

  • 例如:
    qa
    一系列命令序列
    q

  • 这个宏只记录了vim命令到寄存器a中,执行这个宏可以用命令:
    @a
    也可以加上执行次数:
    10@a 执行10次
    当你执行过一次@a之后,你可以用@@来重复执行@a

永久宏

  • 录制宏后,你的操作是保存在寄存器里的,如何将宏变成永久宏,我以寄存器r为例
    normal模式下按"rp可以把宏的内容显示出来
    编译宏内容:let @宏值=“指令”
    寄存器中的内容可读性比较低
    <80>kb 表示退格键
    ^[表示ESC键

  • mac的终端可以保存寄存器的内容(关机后仍存在),随意我会专门找个寄存器存编辑markdown格式的代码
    我的代码如下
    在这里插入图片描述
    每次我需要编辑时,只需按下@r,就可以变成我想要的格式

  • vim的宏应该是可以修改的,修改方式:普通模式下输入:let@a="写宏的具体代码"
    这样@a命令就可以使用你制作的宏了
    但是我复制上面代码保存后会出现乱码,暂时不知道原因

生成遗传从1到N的数列

  1. 左上角输入1
  2. record macro(a):q a yy p ctrl+a q
  3. run macro(a):99@a
  4. show macro(a):"ap
    这样生成的是一列,如果要在一行中显示,可以录制动作J这个宏
    在这里插入图片描述
    阅读更多文章,请看学习笔记汇总
发布了182 篇原创文章 · 获赞 71 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/qq_43827595/article/details/102299487