0

我是 Emacs 的新手。我安装了邪恶模式的 Emacs 24.3.1。我正在尝试将gw其作为前缀绑定到各种evil-window功能。例如,我想将gwl窗口聚焦在右侧,gwh将窗口聚焦在左侧。当然,这是在 vim 中完成的,如下所示nnoremap gw <c-w>

.emacs.d/config/init-bindings.el中,我补充说:

  (define-key evil-normal-state-map (kbd "g w h") 'evil-window-left)
  (define-key evil-normal-state-map (kbd "g w j") 'evil-window-down)
  (define-key evil-normal-state-map (kbd "g w k") 'evil-window-up)
  (define-key evil-normal-state-map (kbd "g w l") 'evil-window-right)
  (define-key evil-normal-state-map (kbd "g w v") 'evil-window-vnew)

而emacs报告这个错误:

error: Key sequence g w h starts with non-prefix key g w
  • 如何制作gw前缀键?
  • 有什么理由这可能是一个坏主意(与重要的 emacs 默认值冲突)?
4

1 回答 1

2

阅读您的问题(而不是您的答案),我设法映射gwh到 evil-window-left 执行以下操作:

  • 一定gw要行动吗?请求帮助C-h-k gw告诉我是的。
  • gz不是,所以使用gzh开箱即用:

    (define-key evil-normal-state-map (kbd "gzh") 'evil-window-left)
    
  • gw因此允许使用取消映射gwh

    (define-key evil-normal-state-map "gw" nil)
    (define-key evil-normal-state-map (kbd "gwh") 'evil-window-left)
    

ps:你仍然可以用 Mq 填充段落

pps:我自己更喜欢带有超级键的windmove :)

    (require 'windmove)
    (windmove-default-keybindings 'super)
于 2013-11-29T13:21:31.620 回答