我将一系列键定义为一个宏,并将其插入我的.emacs,如:
(fset 'xxx [keys])
有没有办法在defun函数中调用kbd宏xxx? 我试图将它称为常规函数,但它有一个错误“xxx的定义是无效的”
提前谢谢你。
答案 0 :(得分:2)
选项1:
(execute-kbd-macro 'foo)
选项2 ......
有两种方法可以为宏生成代码:
name-last-kbd-macro
和kmacro-name-last-macro
前者倾向于生成像你一样的代码。
后者,方便地绑定到 Cx Ck n ,为宏生成 lambda形式 - 即一个函数 - 这意味着你可以用代码调用它。
所以:
foo
RET foo
insert-kbd-macro
RET foo
RET (foo)
。答案 1 :(得分:0)
从Elisp运行命令的方法是调用execute-command
。这适用于交互式功能以及键盘宏。