1. 什么是宏
   “宏”是一组被录制下来的按键动作,可以反复多次使用。

2. 如何定义一个宏

  • 定义宏的步骤:
    1. "C-x ("开始录制宏,状态栏上会出现"Def"字样
    2. ……(待执行的操作)
    3. "C-x )"结束宏的录制
    4. "C-x e"组合键可以把刚刚录制的宏重复执行一遍。(命令名是"call-last-kbd-macro")

  • 注意事项:
    1. "C-g"可以随时中止宏编辑命令的录制工作。
    2.  由于Emacs会严格按照录制下的击键动作来执行,所以必须避免各种假设,如“这个宏总是在行首开始执行”,“粘贴的内容一定是xxxx”。
    3. 良好的宏必须在任何场合都能正确工作,因此尽可能使用绝对命令(如"C-a"移动到行首),避免使用相对命令(如"C-f"向后移动一个字符)。
    4. 好的宏通常由3个部分组成:
      - 找到准备开始的地方(通常利用查找操作来实现)
      - 对文本进行预定的编辑处理
      - 做好下次循环的准备工作

  • 向现有的宏里增加编辑命令:
       虽然宏不能编辑,但可以用"C-u C-x ("组合键在宏的尾部添加一些编辑命令。这个命令先执行完已经录制好的宏,然后会等待添加更多的击键动作。最后按下"C-x )"组合键结束宏的录制。


3. 暂停宏的执行以等待键盘输入(递归编辑)
   在宏的定义过程中,如果在某个地方按下了"C-u C-x q"组合键,就表示想在那里插入一个递归编辑:状态栏上会出现一对方括号,递归编辑期间的任何东西都不会录制到宏里。结束时必须用"ESC C-c"退出递归编辑模式。