Emacs elisp:如何在evil';s邪恶插入状态映射

Emacs elisp:如何在evil';s邪恶插入状态映射,emacs,elisp,Emacs,Elisp,我已经使用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的预期效果是仅在组织模式下禁用自动缩进,但每隔一个模式

我已经使用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的预期效果是仅在组织模式下禁用自动缩进,但每隔一个模式保持自动缩进。然而,虽然这段代码确实禁用了组织模式的自动缩进,但它也有一个意想不到的效果,即禁用其他所有模式的自动缩进。有人知道达到预期效果的方法吗?

您正在寻找的
邪恶定义键

(evil-define-key 'insert org-mode-map (kbd "RET") 'newline)
这将定义
return
以调用
newline
中的
insert
状态,仅在
org模式下使用。每次打开
org
缓冲区时,钩子所做的就是重新定义全局插入状态映射