0

我的 .emacsrc 中有这个

(define-key global-map "\C-h" 'backward-delete-char) ;;previously help

但是,当我执行 I-search 并点击C-h删除字符时,emacs 使用默认绑定并尝试打开帮助,当我使用 取消搜索时C-g,它会在我开始的文档中执行向后删除字符我从搜索。

编辑:这让我想知道为什么C-h再次映射到help迷你缓冲区内。什么覆盖了我的全局地图定义,为什么?

4

2 回答 2

3

你可以使用这个:

(keyboard-translate ?\C-h ?\C-?)

这会将 Ch 转换为各处的退格键。

当您执行isearchorido-find-file时,它们会覆盖 minibuffer 中的一些键。您可以为每种模式重新覆盖这些键,但您必须真正为您使用的每种新模式执行此操作。这就是为什么我建议上面的代码:模式通常不会将退格键重新绑定到不像退格键的东西。关键是逻辑C-h仍然需要在 minibuffer 中寻求帮助,但是keyboard-translate你不再有C-h- 你只有另一个退格键。如果你想绑定一些命令到它,你不能绑定到C-h- 你必须绑定到?\C-?.

于 2013-08-15T13:35:09.343 回答
1

我的猜测是,当您点击“control and h”时,您并不是真的想删除一个字符,而是出于某种原因,C-h当您按下退格键时,Emacs 会收到,对吧?

如果是这样,最好的解决方案是弄清楚如何更改您的终端仿真器,以便C-h在您按下退格键时它不会发送到 Emacs(例如,它可以C-?像现在大多数其他终端仿真器一样发送)。

于 2013-08-15T13:52:28.757 回答