evil-leader 同时绑定单键和多键的问题

新手折腾遇见的问题,求助一下。

直接上一下代码再说话,实验如下

(evil-leader/set-key
  "r" 'recentf-open-files
  "run" 'eval-last-sexp
  )

以及

(evil-leader/set-key
  "rf" 'recentf-open-files
  "run" 'eval-last-sexp
  )

现象就是前一种配置会报错,后一种没问题。也就是在evil-leader中不可以设置了一个单键同时又有以这个单键开头的多键。

报的错是

(error "Key sequence r u n starts with non-prefix key r")

Github上的Issue No multiple key keybindings possible. #18 提到了这个问题,也有解决方法貌似,在Issue 6里面有提(好丑话说。。。),但我并没有尝试。(它里面的例子是绑nt键的)

(evil-leader/set-key "n" (let ((map (make-sparse-keymap)))
                           (define-key map (kbd "t") 'nav-toggle)
                           map))

总的说来,我可能更想知道这里面的原因,以及是否有比较好的解决方法。

另外,我用的是Emacs 26.1,谢谢。

因為 r 已经被占用了。

要绑 run 首先要在 r 创建个 keymap。

为什麼要设计成这樣?逻辑很简單,就算能这樣绑定了以后,按 Leader r ,就直接执行 r 绑的鍵了,沒机会执行后面的 run 组合了。

1 个赞