emacs,在defun函数中调用kbd宏

时间:2015-01-20 07:38:21

标签: emacs elisp

我将一系列键定义为一个宏,并将其插入我的.emacs,如:

(fset 'xxx [keys]) 

有没有办法在defun函数中调用kbd宏xxx? 我试图将它称为常规函数,但它有一个错误“xxx的定义是无效的”

提前谢谢你。

2 个答案:

答案 0 :(得分:2)

选项1:

(execute-kbd-macro 'foo)

选项2 ......

有两种方法可以为宏生成代码:

name-last-kbd-macrokmacro-name-last-macro

前者倾向于生成像你一样的代码。

后者,方便地绑定到 Cx Ck n ,为宏生成 lambda形式 - 即一个函数 - 这意味着你可以用代码调用它。

所以:

  • 定义宏。
  • C-x C-k n foo RET
  • 您现在可以使用 M-x foo
  • M-x insert-kbd-macro RET foo RET
  • 您现在可以编写调用(foo)
  • 的代码

答案 1 :(得分:0)

从Elisp运行命令的方法是调用execute-command。这适用于交互式功能以及键盘宏。