Emacs elisp:如何在邪恶的邪恶插入状态映射中更改特定模式的键绑定



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

(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模式下禁用自动缩进,但在其他模式下保持自动缩进。然而,虽然这段代码确实禁用了org模式的自动缩进,但它也无意中禁用了其他模式的自动缩进。有人知道达到预期效果的方法吗?

您要找的是evil-define-key:

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

这将定义return只在org-mode中调用insert状态的newline。钩子所做的是在每次打开org缓冲区时重新定义全局插入状态映射。

最新更新