如何在emacs中取消绑定前缀命令?

如何在emacs中取消绑定前缀命令?,emacs,Emacs,我目前正在尝试更改一些软件包的快捷方式,我成功地解除了大部分软件包的绑定。但是,如果我看到C-hb中的快捷方式描述,即使我使用define key将nil指定给“Prefix Command”,绑定到“Prefix Command”的键仍然保留 具体来说,我正在更改撤消树包的快捷方式,即使 (define-key undo-tree-map (kbd "C-x r") nil) (define-key undo-tree-map (kbd "C-x r u") nil) (define-key

我目前正在尝试更改一些软件包的快捷方式,我成功地解除了大部分软件包的绑定。但是,如果我看到
C-hb
中的快捷方式描述,即使我使用
define key
将nil指定给“Prefix Command”,绑定到“Prefix Command”的键仍然保留

具体来说,我正在更改撤消树包的快捷方式,即使

(define-key undo-tree-map (kbd "C-x r") nil)
(define-key undo-tree-map (kbd "C-x r u") nil)
(define-key undo-tree-map (kbd "C-x r U") nil)
在init.el中,绑定描述仍然表示
C-xr
仍然绑定到“Prefix命令”

如何从绑定列表中删除此密钥?

(全局设置密钥(kbd“C-x r”)无)

默认情况下,C-x r是全局映射中的前缀键。

(全局设置键(kbd“C-x r”)无)


默认情况下,
C-x r
是全局映射中的前缀键。

Drew的答案可能是正确的,但在某些情况下,您可能不知道要使用哪个键映射,或者您可能不想(或无法)修改保存绑定的键映射。在这种情况下,您可以在更高优先级的键映射中覆盖它,例如:

(define-key undo-tree-map (kbd "C-x r") 'undefined)

Drew的答案可能是正确的,但在某些情况下,您可能不知道要使用哪个键映射,或者您可能不想(或无法)修改保存绑定的键映射。在这种情况下,您可以在更高优先级的键映射中覆盖它,例如:

(define-key undo-tree-map (kbd "C-x r") 'undefined)

哦,我不知道。但为什么emacs help buffer说它也在撤消树绑定中呢?
C-hb
也反映了全局绑定。如果您想查看特定键映射中的内容,请加载并使用
C-hm-k
,后跟keymap变量。我尝试了help fns+,但它也表示
C-xr
位于撤消树映射中。我想它只是显示了
C-hb
的撤销树部分。我想这是因为这个前缀(也)是在keymap中定义的,因为在这个map中有使用这个前缀的键。我不这么认为,因为除了在undo-tree模式下的
C-xru
C-xru
之外,没有其他绑定使用
C-xru
,我在init.el中解除了这些键的绑定。哦,我不知道。但为什么emacs help buffer说它也在撤消树绑定中呢?
C-hb
也反映了全局绑定。如果您想查看特定键映射中的内容,请加载并使用
C-hm-k
,后跟keymap变量。我尝试了help fns+,但它也表示
C-xr
位于撤消树映射中。我想它只是显示了
C-hb
的撤销树部分。我想这是因为这个前缀(也)是在keymap中定义的,因为在这个map中有使用这个前缀的键。我不这么认为,因为除了在undo-tree模式下的
C-xru
C-xru
之外,没有其他绑定使用
C-xru
,我在init.el中将这些键作为“前缀命令”列出我觉得这不是一个严重的问题。所以我假设你也看到了剩余绑定的一些其他影响,而另一个影响是真正困扰你的。请指定其他效果。@Stefan我只是想从绑定描述中删除它,不需要其他效果。当然,它对日常使用没有任何影响,但当我打开帮助缓冲区时,它只是困扰着我。被列为“前缀命令”对我来说并不是一个严重的问题。所以我假设你也看到了剩余绑定的一些其他影响,而另一个影响是真正困扰你的。请指定其他效果。@Stefan我只是想从绑定描述中删除它,不需要其他效果。当然,它对日常使用没有任何影响,但当我打开help buffer时,它让我很烦恼。我在init.el上添加了这一行,它确实从描述列表中删除了“Command Prefix”,但它现在覆盖了其他模式对C-x r的绑定。有没有其他方法可以做到这一点而不干扰其他模式?我在init.el上添加了这一行,它确实从描述列表中删除了“Command Prefix”,但现在它覆盖了其他模式对C-x r的绑定。有没有其他方法可以在不干扰其他模式的情况下执行此操作?