如何将邪恶模式(vim样式)宏保存到init.el中?

时间:2014-04-02 16:07:29

标签: emacs evil-mode vim-macros

我在使用evil-mode之后,大约一年前从Vim搬了过来。我已经做了很多自定义,但还没有找到如何保存vim风格的键盘宏。

我可以使用与Vim完全相同的键在邪恶模式下定义和运行它们。

  • q 一个字母开始录制宏。
  • q 停止录制。
  • @ 一个字母来运行宏。

我想将其中的一部分保存到我的init.el文件中,以便在会话之间使用,但我在网上找不到任何参考资料,并且还没有找到找到了正确的语法。

如何将这些邪恶模式键盘宏保存到文件中?是否有一些原因我应该使用原生的Emacs键盘宏,有没有办法通过 @ a 键来运行它们?

1 个答案:

答案 0 :(得分:33)

邪恶模式宏并不特殊,它们只是普通的Emacs宏,你可以用同样的方式保存它们,但是你需要做一些特别的工作才能让它们进入邪恶的寄存器。

让我们来看一个例子:

在缓冲区中,执行 q f i foobar ESC q < / KBD>。这会将宏保存到将{fompar插入缓冲区的f寄存器中。

现在运行 M-x name-last-kbd-macro RET mymacro RET

转到init.el文件并执行 Mx insert-kbd-macro RET mymacro RET 。< / p>

这会将您的宏转储到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])

现在您可以从 @ 访问它了!

See the docs about naming and inserting macros as text