一年前从Vim转过来,我正在使用
evil-mode。我已经做了很多定制,但还没有解决如何保存vim风格的键盘宏。
我可以使用与Vim完全相同的键定义并运行它们的恶意模式。
> qa字母开始记录一个宏。
q停止录音。
> @a来运行宏。
我想将其中的一些保存到我的init.el文件中以在会话之间使用,但是我没有找到任何对这个在线的引用,也没有找到正确的语法。
邪恶模式的宏不是特殊的,它们只是普通的Emacs宏,并且以相同的方式保存它们,但是你需要做一些特别的工作来将它们变成恶意的寄存器。
我们来看一个例子:
在缓冲区中,做qfifoobarESCq。这将把一个宏保存到f寄存器中,将foobar插入缓冲区。
现在运行M-xname-last-kbd-macroRETmemacroRET。
转到你的init.el文件,并做M-xinsert-kbd-macroRETmymacroRET。
这将把您的宏转储成一个fset调用。
(fset 'mymacro [?i ?f ?o ?o ?b ?a ?r escape])
如果将其放在init.el中,您将可以从M-x访问命令mymacro。
但是,我们将其保存到寄存器f中,我们希望它在每个启动时都在那里。您需要从上述代码中提取宏向量,并将其保存到init.el中的注册表中,如下所示:
;; make sure this is done after evil-mode has been loaded (evil-set-register ?f [?i ?f ?o ?o ?b ?a ?r escape])
现在你可以从@访问它了!