emacs,在defun函数中调用kbd宏
我在宏中定义了一系列键,并将其插入my.emacs,如下所示:emacs,在defun函数中调用kbd宏,emacs,elisp,Emacs,Elisp,我在宏中定义了一系列键,并将其插入my.emacs,如下所示: (fset 'xxx [keys]) 有没有办法在defun函数中调用kbd宏xxx? 我试图将其作为常规函数调用,但它有一个错误“xxx的定义是无效的” 先谢谢你 选项1: (execute-kbd-macro 'foo) 选择2 有两种方法可以为宏生成代码: name last kbd宏和kmacro name last宏 前者倾向于生成如您所示的代码 后者方便地绑定到C-xC-kn,为宏生成lambda形式——即函数——
(fset 'xxx [keys])
有没有办法在defun函数中调用kbd宏xxx?
我试图将其作为常规函数调用,但它有一个错误“xxx的定义是无效的”
先谢谢你 选项1:
(execute-kbd-macro 'foo)
选择2
有两种方法可以为宏生成代码:
name last kbd宏
和kmacro name last宏
前者倾向于生成如您所示的代码
后者方便地绑定到C-xC-kn,为宏生成lambda形式——即函数——这意味着您可以在代码中调用它
因此:
- 定义宏
- C-xC-kn
RETfoo
- 您现在可以使用M-x
foo
- M-x
RET插入kbd宏
RETfoo
- 您现在可以编写调用
的代码(foo)
- 从Elisp运行命令的方法是调用
executecommand
。这不仅适用于交互式函数,也适用于键盘宏。谢谢,我认为(执行kbd宏(符号函数'foo'))应该是不必要的。如果参数是符号,execute kbd macro
使用其函数槽(如文档所示)。