【问题标题】:Want to use Space Bar followed by a key instead of C-key in Normal State of Evil Mode in Emacs想要在 Emacs 的 Normal State of Evil Mode 中使用空格键后跟一个键而不是 C 键
【发布时间】:2013-01-10 23:32:03
【问题描述】:

我希望能够按空格键后跟另一个键作为按 Ctrl 的替代方法,而不是在 Normal State of Evil Mode 中按该键。

例如,这是我在 .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"

【问题讨论】:

    标签: emacs elisp evil-mode


    【解决方案1】:

    我对 Evil 的了解不够,无法给你一个具体的答案,但你可以试试

    (define-key function-key-map " " 'event-apply-control-modifier)
    (define-key evil-normal-state-map " " nil)
    

    function-key-map 绑定只有在所有其他地图中 SPC 为“未绑定”时才会生效,因此在 evil-normal-state-map 中将其绑定为 nil 可能还不够。否则,您可以使用key-translation-map 而不是function-key-map,因此重写将优先于正常的 SPC 绑定,但是您需要弄清楚在激活/离开 Evil 的正常状态时如何启用/禁用此绑定。

    【讨论】:

    • 试过了,只有key-translation-map 能解决问题,function-key-map 不行。我想我必须像你说的那样在进入和退出 Evil 的正常状态时找到一种方法来启用/禁用绑定,所以我仍然可以在需要时输入空格。另外,是否有一种方法可以在 Emacs 的初始化中首先绑定到 function-key-map,以便在任何其他绑定之前完成?
    猜你喜欢
    • 1970-01-01
    • 2013-12-24
    • 2014-10-21
    • 1970-01-01
    • 2014-09-29
    • 1970-01-01
    • 2014-11-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多