我现在已经使用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的自动缩进,但它具有无意识的效果,即禁用其他所有内容。有谁知道达到预期效果的方法?
答案 0 :(得分:1)
您正在寻找evil-define-key
:
(evil-define-key 'insert org-mode-map (kbd "RET") 'newline)
这将定义return
仅在newline
insert
状态下调用org-mode
状态的org
。你的钩子正在做的是每次打开{{1}}缓冲区时重新定义全局插入状态映射。