emacs evil-mode中ex命令的关键映射

在emacs evil-mode中,如何绑定一个键序列,以便它预先填充evil-mode ex命令行并定位光标?在 vim中,我可以这样做:

nnoremap g/r :%s//g<left><left>

在emacs中,我试过这个(和几个变种):

(define-key evil-normal-state-map "g/" nil)
(define-key evil-normal-state-map (kbd "g/r")
    (lambda () (interactive) (kbd ":%s/")))

它没有任何效果,我在尝试键映射后看不到任何消息.

看起来像emacs曾经有一个有用的函数evil-ex-read-command,它将输入发送到evil-mode命令行:

https://github.com/magnars/.emacs.d/blob/master/site-lisp/evil/evil-ex.el#L554

但是这个功能似乎不再可用了.

如果您的意思是绑定组合键

>按下并释放g
>按下并释放/
>按下并释放r

你在kdb中的字符串应该是“g / r”.

Emacs并不像vim那样基于击键,但击键只是执行函数的一种方法.因此,在正常模式下按k不会执行函数k(如在vim中),而是执行self-insert-char.这意味着你不要将组合g / r绑定到等于其他一些键击,而是调用任意函数.而且邪恶定义了一个evil-ex函数,它完全符合您的要求(实际上它是确切的函数,当您按下时,在正常模式下调用).

未经测试但它应该工作

(define-key evil-normal-state-map(kbd“g / r”)(lambda()(evil-ex“%s /”)))

相关文章
相关标签/搜索