2

我希望能够使用 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 wiki 页面令人困惑。

编辑:

最上面的代码行不起作用。出于某种原因,我认为它在正常模式下工作,但我遇到了同样的错误。所以我可以去使用邪恶领袖,但这在运动状态下不起作用

4

1 回答 1

2

您在正确的轨道上,试图取消设置空格键,但define-key会将“SPC”读为SPC,而不是空格键。

它必须是(kbd "SPC")or " "(它们是等价的;前者计算为后者):

(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)
于 2015-10-29T07:49:34.157 回答