【问题标题】:Unable to remap evil key bindings无法重新映射邪恶的键绑定
【发布时间】:2021-04-18 15:58:07
【问题描述】:

我是 emacs 的新手,我一直在尝试重新映射邪恶模式中的一些键。我一直在尝试重新映射用于在窗口之间切换的键,但到目前为止我没有运气。

(use-package evil
   :config 
   (evil-mode 1)

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

【问题讨论】:

    标签: emacs key-bindings evil-mode


    【解决方案1】:

    尝试绑定。

    (use-package evil
      :bind (:map evil-motion-state-map
                  ("C-j" . evil-window-down)
                  ("C-k" . evil-window-up)
                  ("C-l" . evil-window-right)
                  ("C-h" . evil-window-left)))
    

    更新:

    (use-package evil
    :bind ((:map evil-window-map
                 ("C-j" . evil-window-down)
                 ("C-k" . evil-window-up)
                 ("C-l" . evil-window-right)
                 ("C-h" . evil-window-left))
           (:map evil-normal-state-map
                 ("C-j" . evil-window-down)
                 ("C-k" . evil-window-up)
                 ("C-l" . evil-window-right)
                 ("C-h" . evil-window-left)))
    :config (evil-mode 1))
    

    【讨论】:

    • 我试过了,但不幸的是它仍然不起作用。
    • 啊,根据docs evil 的键绑定存储在许多不同的键映射中,因此您可能还需要绑定其他的,例如 evil-normal-state-map , evil-insert -state-map 等等。 ` (define-key evil-normal-state-map (kbd "C l") 'evil-window-left)`
    • 我已经尝试过更新您提供的代码,到目前为止,除了 C-l 之外,所有的键绑定都可以正常工作。
    【解决方案2】:

    我是这样解决的:

    (defun evil()
    
      (require 'evil)
      (define-key global-map (kbd "C-h") nil)
      (define-key global-map (kbd "C-j") nil)
      (define-key global-map (kbd "C-k") nil)
      (define-key global-map (kbd "C-l") nil)
    
      (global-set-key (kbd "C-h") 'evil-window-left)
      (global-set-key (kbd "C-j") 'evil-window-down)
      (global-set-key (kbd "C-k") 'evil-window-top)
      (global-set-key (kbd "C-l") 'evil-window-right)
    
      (evil-mode 1))
    

    您也可以为此使用use-package,而不是使用require

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-27
      • 2015-07-27
      • 1970-01-01
      相关资源
      最近更新 更多