我希望能够点击空格键,然后按另一个键作为击中Ctrl的替代方法,而不是正常状态的邪恶模式中的键。
例如,这是我在.emacs
文件中开始定义的内容:
(define-key evil-normal-state-map " ww" 'evil-window-next)
(define-key evil-normal-state-map " wr" 'evil-window-rotate-downwards)
(define-key evil-normal-state-map " wR" 'evil-window-rotate-upwards)
(define-key evil-normal-state-map " wo" 'delete-other-windows)
(define-key evil-normal-state-map " wn" 'evil-window-new)
(define-key evil-normal-state-map " wl" 'evil-window-right)
(define-key evil-normal-state-map " wh" 'evil-window-left)
(define-key evil-normal-state-map " wj" 'evil-window-down)
(define-key evil-normal-state-map " wk" 'evil-window-up)
据我所知,到目前为止,好像我只能将一个键序列定义为一个给定的函数,而不是像它本身那样不能用的东西,比如Ctrl。有没有一般的方法这样做,以便空格键后跟另一个键将等同于正常邪恶模式状态下的任何C-"that key"
?
答案 0 :(得分:2)
我不太了解Evil给你一个具体的答案,但你可以试试
(define-key function-key-map " " 'event-apply-control-modifier)
(define-key evil-normal-state-map " " nil)
如果SPC在所有其他地图中“未绑定”,则function-key-map
绑定只会启动,因此将其绑定到evil-normal-state-map
中的nil可能不够。否则你可以使用key-translation-map
而不是function-key-map
,所以重写将优先于普通的SPC绑定,但是你需要弄清楚如何在生成/离开Evil时启用/禁用此绑定正常状态。