【问题标题】:bind emacs evil window commands to g prefix将 emacs 邪恶窗口命令绑定到 g 前缀
【发布时间】:2013-10-29 06:45:26
【问题描述】:

我是 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 默认值冲突)?

【问题讨论】:

    标签: vim emacs evil-mode


    【解决方案1】:

    阅读您的问题(而不是您的答案)后,我设法将 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:你仍然可以用 M-q 填充段落

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

        (require 'windmove)
        (windmove-default-keybindings 'super)
    

    【讨论】:

    • 谢谢,我认为我缺少的关键信息是(define-key evil-normal-state-map "gw" nil) 是通往邪恶unmap 的方式......我猜。此外,C-h-k gw 会无限期地等待终止键(按回车键会将输入读取为gw<enter>)。知道如何让它接受gw 吗?
    猜你喜欢
    • 1970-01-01
    • 2012-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多