在大约一年前从Vim移走之后,我正在使用evil-mode。我进行了许多自定义,但是还没有弄清楚如何保存vim风格的键盘宏。

我可以使用与Vim中完全相同的键在 evil-mode 下定义和运行它们。

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

  • 我想将其中的一些保存到我的init.el文件中,以在 session 之间使用,但是我无法在线找到对此的任何引用,也没有找到正确的语法。

    如何将这些 evil-mode 的键盘宏保存到文件中?我是否应该使用本地Emacs键盘宏代替某些原因,是否可以通过@a键运行这些宏?

    最佳答案

    evil-mode 宏不是特别的,它们只是普通的Emacs宏,您可以用相同的方式保存它们,但是您需要做一些特殊的工作才能将它们放入邪恶的寄存器中。

    让我们来看一个例子:

    在缓冲区中,执行qfi foobar ESCq。这会将宏保存到f寄存器中,该寄存器将foobar插入缓冲区。

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

    转到您的init.el文件,然后执行M-x insert-kbd-macro RET mymacro RET。

    这会将您的宏转储到fset调用中。

    (fset 'mymacro [?i ?f ?o ?o ?b ?a ?r escape])
    

    如果将其放在init.el中,则可以从M-x访问mymacro命令。

    但是,我们将其保存到了f寄存器中,并且希望每次启动时都可以在其中。您需要从上面的代码中提取宏 vector ,并将其保存到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

    关于emacs - 如何将 evil-mode (vim样式)宏保存到init.el?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22817120/

    10-11 22:51
    查看更多