Emacs evil:空格作为运动状态的前缀键

时间:2015-10-11 05:40:29

标签: emacs evil-mode

我希望能够使用SPC h / j / k / l导航窗口。我可以放(错误,请参阅编辑

(define-key evil-normal-state-map (kbd "SPC h") 'evil-window-left)

表示正常状态(或者我可以使用evil-leader ...),但这些都不能用于在运动状态下做同样的事情。如果我把

(define-key evil-motion-state-map (kbd "SPC h") 'evil-window-left)

然后我收到错误

error: Key sequence SPC h starts with non-prefix key SPC

然后我试图在运动状态中取消定义SPC

(define-key evil-motion-state-map "SPC" nil)

但这并没有消除错误。

我该怎么做?我更喜欢只改变运动状态下SPC行为的解决方案。我怀疑答案在define-prefix-command,但emacs维基页面令人困惑。

编辑:

该顶级代码不起作用。出于某种原因,我认为它在正常模式下工作,但我得到了同样的错误。所以我可以使用邪恶的领导者,但这在运动状态下不起作用

1 个答案:

答案 0 :(得分:1)

你在正确的轨道上,试图取消设置空格键,但define-key将读取“SPC”为 S P C < / kbd>,而不是空格键。

必须是(kbd "SPC")" "(它们是等价的;前者评估后者):

(define-key evil-motion-state-map " " nil)

然后这些应该有效:

(define-key evil-motion-state-map (kbd "SPC h") 'evil-window-left)
(define-key evil-motion-state-map (kbd "SPC j") 'evil-window-down)
(define-key evil-motion-state-map (kbd "SPC k") 'evil-window-up)
(define-key evil-motion-state-map (kbd "SPC l") 'evil-window-right)