我希望能够使用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维基页面令人困惑。
编辑:
该顶级代码不起作用。出于某种原因,我认为它在正常模式下工作,但我得到了同样的错误。所以我可以使用邪恶的领导者,但这在运动状态下不起作用
答案 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)