【问题标题】:Emacs elisp: How to change a keybind for a specific mode in evil's evil-insert-state-mapEmacs elisp:如何在 evil 的 evil-insert-state-map 中更改特定模式的键绑定
【发布时间】:2014-09-29 18:21:09
【问题描述】:

我使用 emacs 已经有一段时间了,并且仍在尝试掌握 elisp 的窍门。在我的 init.el 中,我有以下几行:

(define-key evil-insert-state-map (kbd "RET") 'newline-and-indent)
(add-hook 'org-mode-hook (lambda () (define-key evil-insert-state-map (kbd "RET") 'newline)))

这两行 elisp 的预期效果是仅在 org-mode 中禁用自动缩进,但在其他所有模式下保持自动缩进。但是,虽然此代码确实禁用了 org-mode 的自动缩进,但它也具有对其他所有内容都禁用它的意外效果。有谁知道达到预期效果的方法吗?

【问题讨论】:

    标签: emacs elisp


    【解决方案1】:

    你正在寻找evil-define-key:

    (evil-define-key 'insert org-mode-map (kbd "RET") 'newline)
    

    这将定义return 以在insert 状态下仅在org-mode 中调用newline。每次打开 org 缓冲区时,您的钩子都会重新定义全局插入状态映射。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-21
      • 1970-01-01
      • 2012-10-06
      • 1970-01-01
      • 1970-01-01
      • 2022-12-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多