【问题标题】:Executing a specific macro in emacs evil在 emacs evil 中执行特定的宏
【发布时间】:2013-10-09 18:52:55
【问题描述】:

现在我正在尝试在 emacs 中使用 evil 插件,以便我可以拥有 vim 的编辑能力和 emacs 的可扩展性。现在,我正在尝试移植 .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 和 evil 还很陌生,所以我确定我做错了什么,我将不胜感激。

【问题讨论】:

    标签: emacs macros elisp evil-mode


    【解决方案1】:

    你可以和vim类似地绑定它:

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

    关于您的代码:evil-execute-macro 的第二个参数应该是一个字符,即?@。但这仅在 evil-execute-macro 被交互调用时才成立,因为相应寄存器的内容仅在 interactive 表单中检索。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-29
      • 2014-12-18
      • 1970-01-01
      • 1970-01-01
      • 2014-06-10
      • 1970-01-01
      • 1970-01-01
      • 2017-01-24
      相关资源
      最近更新 更多