Emacs中无法用local-unset-key移除Org模式下C-j按键绑定
解决Org模式下C-j绑定无法移除的问题
方法1:直接修改org-mode-map(推荐)
跳过hook,直接全局修改Org模式的keymap,将C-j的绑定置空,这样进入Org模式时就不会覆盖你的全局设置:
(define-key org-mode-map (kbd "C-j") nil)
方法2:修正hook中的拼写错误
你原代码里的kdb是拼写错误,正确应该是kbd,修正后的hook代码:
(add-hook 'org-mode-hook (lambda () (local-unset-key (kbd "C-j"))))
如果还是无效,也可以在hook里直接给局部keymap置空:
(add-hook 'org-mode-hook (lambda () (define-key local-map (kbd "C-j") nil)))
方法3:调整hook执行顺序
如果Org模式的初始化代码在你的hook之后运行,会重新绑定C-j。可以让hook晚执行,添加:append参数:
(add-hook 'org-mode-hook (lambda () (local-unset-key (kbd "C-j"))) :append)
验证操作
修改配置后重启Emacs或重新加载配置,进入Org模式后用C-h k C-j查看绑定,此时应该显示你的全局绑定(ctl-x-map),而非org-return-and-maybe-indent。
内容的提问来源于stack exchange,提问作者Thysrael
相关产品推荐
相关产品推荐

