无法在 emacs 中使用 `local-unset-key` 来删除组织模式下的键绑定

问题描述 投票:0回答:1

我想在组织模式下删除有关“C-j”的键绑定,然后我使用“local-key-unset”来执行此操作,但是当我进入组织模式时,键绑定没有被删除。

我的代码如下:

 (add-hook 'org-mode-hook #'(lambda () (local-unset-key (kdb "C-j"))))

org-mode-hook
值为

Value: ((lambda nil (local-unset-key (kdb "C-j"))) #[0 "\300\301\302\303\304$\207" [add-hook change-major-mode-hook org-fold-show-all append local] 5] #[0 "\300\301\302\303\304$\207" [add-hook change-major-mode-hook org-babel-show-result-all append local] 5] org-babel-result-hide-spec org-babel-hide-all-hashes #[0 "\301\211\207" [imenu-create-index-function org-imenu-get-tree] 2] (lambda nil (progn (company-mode -1) (company-box-mode -1))) (lambda nil (set (make-local-variable 'line-spacing) 0.5)) (lambda nil (keymap-local-set (kbd "C-z") 'shell)))

在组织模式下,我使用

C-h k
查找
C-j
绑定,其结果:

C-j runs the command org-return-and-maybe-indent (found in
org-mode-map)

我尝试用

C-j
来代替
C-x
,我使用这个代码

(global-set-key (kbd "C-j") ctl-x-map)

效果非常好。但是当处于组织模式时,它似乎被主要的组织模式映射所掩盖。我希望我可以删除

C-j
以消除它的阴影。

emacs hook key-bindings
1个回答
0
投票

您将函数

kbd
命名错误,如
kdb
:

(add-hook 'org-mode-hook #'(lambda () (local-unset-key (kdb "C-j"))))

当调用钩子函数时,它实际上会引发错误,如下所示:

File mode specification error: (void-function kdb)

当钩子函数引发错误时,它会从钩子中删除,因此您只会在第一次看到此错误。

kdb
替换为
kbd
,然后重试。

© www.soinside.com 2019 - 2024. All rights reserved.