在emacs evil中执行特定的宏

时间:2013-10-09 18:52:56

标签: emacs macros elisp evil-mode

现在我正在尝试使用emacs中的邪恶插件,这样我就可以拥有具有emacs可扩展性的vim编辑功能。现在我正试图移植我最喜欢的.vimrc部分之一:无论我最后执行的宏是什么,都要重复空间。在我的.vimrc中它只是

nore <Space> @@

我正在尝试使用

在我的.emacs文件中执行相同的操作
(define-key evil-normal-state-map " " (lambda () (interactive) (evil-execute-macro 1 "@")))

@@重复最后一个宏,但击中空格会给我错误

After 0 kbd macro iterations: No previous macro

我对lisp和邪恶相当新,所以我确信我做错了什么,我会感激任何帮助。

1 个答案:

答案 0 :(得分:2)

你可以像vim一样绑定它:

(define-key evil-normal-state-map " " (kbd "@@"))

关于您的代码:evil-execute-macro的第二个参数应该是一个字符,即?@。但这仅适用于交互式调用evil-execute-macro的情况,因为相应寄存器的内容仅以interactive形式检索。

归结为:正确的呼叫是(evil-execute-macro 1 last-kbd-macro)