比如想实现这种功能:
(define-key evil-normal-state-map "ds" 'sp-kill-sexp)
但是报错了:
Debugger entered--Lisp error: (error "Key sequence d s starts with non-prefix key d")
该怎么写才对呢?
比如想实现这种功能:
(define-key evil-normal-state-map "ds" 'sp-kill-sexp)
但是报错了:
Debugger entered--Lisp error: (error "Key sequence d s starts with non-prefix key d")
该怎么写才对呢?
(define-key evil-normal-state-map (kbd "ds") 'sp-kill-sexp)
试了一下不行哦
首先这个错误是因为d
是evil-delete
,本身有定义就不能当做prefix key来用。
按下d
/y
/c
等等之后是在operator-state,我的配置里有
;; evilmi=evil-matchit
(define-key evil-operator-state-map (kbd "M") 'evilmi-jump-items)
和你的情况有点不同的是evilmi-jump-items
只是跳转,而sp-kill-sexp
本身会kill,不过我试了一下
(define-key evil-operator-state-map (kbd "M") 'paredit-kill)
也是能按预期的工作的,所以你这样搞就行了。注意这样会对d
/y
/c
等等全部生效。
另外不建议用s,evil-surround用的s,我觉得它还是很常用的,不知道你这个kill-sexp的频率如何。
evil-operator-state-map
的d
/y
/c
可以区分开来吗?想了下ds确实有点不妥。
那就是正常找个没被占用的键,evil的g
/z
开头有少量没用到的键,SPC
开头也不错(spacemacs的SPC o ...
是预留的),major mode spesific的就,
开头。当然evil下也可以用C-a
。