我的 .emacsrc 中有这个
(define-key global-map "\C-h" 'backward-delete-char) ;;previously help
但是,当我执行 I-search 并点击C-h
删除字符时,emacs 使用默认绑定并尝试打开帮助,当我使用 取消搜索时C-g
,它会在我开始的文档中执行向后删除字符我从搜索。
编辑:这让我想知道为什么C-h
再次映射到help
迷你缓冲区内。什么覆盖了我的全局地图定义,为什么?
我的 .emacsrc 中有这个
(define-key global-map "\C-h" 'backward-delete-char) ;;previously help
但是,当我执行 I-search 并点击C-h
删除字符时,emacs 使用默认绑定并尝试打开帮助,当我使用 取消搜索时C-g
,它会在我开始的文档中执行向后删除字符我从搜索。
编辑:这让我想知道为什么C-h
再次映射到help
迷你缓冲区内。什么覆盖了我的全局地图定义,为什么?
你可以使用这个:
(keyboard-translate ?\C-h ?\C-?)
这会将 Ch 转换为各处的退格键。
当您执行isearch
orido-find-file
时,它们会覆盖 minibuffer 中的一些键。您可以为每种模式重新覆盖这些键,但您必须真正为您使用的每种新模式执行此操作。这就是为什么我建议上面的代码:模式通常不会将退格键重新绑定到不像退格键的东西。关键是逻辑C-h仍然需要在 minibuffer 中寻求帮助,但是keyboard-translate
你不再有C-h- 你只有另一个退格键。如果你想绑定一些命令到它,你不能绑定到C-h- 你必须绑定到?\C-?
.
我的猜测是,当您点击“control and h”时,您并不是真的想删除一个字符,而是出于某种原因,C-h
当您按下退格键时,Emacs 会收到,对吧?
如果是这样,最好的解决方案是弄清楚如何更改您的终端仿真器,以便C-h
在您按下退格键时它不会发送到 Emacs(例如,它可以C-?
像现在大多数其他终端仿真器一样发送)。