Spacemacs 允许在elisp中运行字符串作为相应的vim命令

Spacemacs 允许在elisp中运行字符串作为相应的vim命令,spacemacs,evil-mode,Spacemacs,Evil Mode,这个交互式调用列表实际上代表了一个非常简单的Vim宏:vk=o (define-key evil-normal-state-map (kbd "SPC dg") (lambda () (interactive) (call-interactively 'evil-visual-char) (call-interactively 'evil-previous-line) (call-interactively 'indent-region) (call-

这个交互式调用列表实际上代表了一个非常简单的Vim宏:
vk=o

(define-key evil-normal-state-map (kbd "SPC dg")
  (lambda ()
    (interactive)
    (call-interactively 'evil-visual-char)
    (call-interactively 'evil-previous-line)
    (call-interactively 'indent-region)
    (call-interactively 'evil-open-below)))
问题
有没有一种在elisp中执行vim命令的简单方法

注释
我发现可以使用
全局设置键
将vim宏绑定到键盘快捷键。 类似这样的内容:
(全局设置键(kbd“C-C-l”)“vk=o”)
但为了了解全局设置键是如何工作的,我从
define key
中编译了C代码,但这并没有多大帮助

我想写一些类似的东西:

(define-key evil-normal-state-map (kbd "SPC dg")
  (lambda ()
    (interactive)
    ;; some code
    (eval-vim-macro "vk=o")))

谢谢你的帮助

尝试将绑定定义为字符串而不是lambda:
(define key-evil-normal-state-map(kbd“Q”)“jjjo”)
。我已经可以做到这一点(尽管我使用了
全局设置键
)并将其和特定键组合绑定到表示vim命令的给定字符串。我要寻找的是一种绑定到我可以在函数定义中重用的东西的方法,这样我就可以在我的elisp代码中直接使用我当前定义的一些kbd宏!