这是你的答案:C-h r(打开 Emacs 手册),然后是 g DEL Does Not Delete。手册的那个节点正是针对这个众所周知的问题。解决方案?把它放在你的初始化文件中:
(normal-erase-is-backspace-mode 0)
我是如何找到那个 Emacs 手动节点的?
我使用了i,它搜索当前手册的索引。我使用Icicles,它允许我使用子字符串匹配来完成(你也可以使用 vanilla Emacs 来做到这一点,但你需要配置它)。
所以我刚刚做了i backspace S-TAB(Icicles 中的S-TAB 执行适当样式的补全;TAB 执行普通 Emacs 补全)。
C-h r i backspace S-TAB - 这就是你所需要的。
这将打开 Emacs 手册并在索引中查找 backspace 作为索引条目的一部分。所以我看到了这些完成候选(节点名称):
<BACKSPACE> vs <DEL>
<DEL> vs <BACKSPACE>
c-electric-backspace
C-S-backspace
normal-erase-is-backspace
normal-erase-is-backspace-mode
除了c-electric-backspace 和C-S-backspace 之外的每个条目实际上都指向同一个节点DEL Does Not Delete。 (可以反复使用C-down依次访问每个候选节点,看看它们是什么。)
即使在原版 Emacs 中,您也有一种方法来搜索手册:a in Info(即在手册中)是命令 info-apropos。试试看:a backspace RET。
但是,它会搜索您已安装的所有手册以查找子字符串匹配项。而且需要相当长的时间来搜索所有已安装的手册。
它产生(在我的机器上)一个列出这些搜索命中的信息缓冲区:
Apropos Index
*************
Index entries that match `backspace':
*Menu:
* BACKSPACE (Info mode) [info]: (info)Help-^L.
* C-S-backspace [emacs]: (emacs)Killing by Lines.
* c-electric-backspace [emacs]: (emacs)Program Modes.
* normal-erase-is-backspace-mode [emacs]: (emacs)DEL Does Not Delete.
* normal-erase-is-backspace [emacs]: (emacs)DEL Does Not Delete.
* <BACKSPACE> vs <DEL> [emacs]: (emacs)DEL Does Not Delete.
* <DEL> vs <BACKSPACE> [emacs]: (emacs)DEL Does Not Delete.
* Backspace key invokes help [efaq]: (efaq)Backspace invokes help.
* Help invoked by Backspace [efaq]: (efaq)Backspace invokes help.
* backspace [elisp]: (elisp)Basic Char Syntax.
* c-electric-backspace [ccmode]: (ccmode)Hungry WS Deletion.
* electric-backspace (c-) [ccmode]: (ccmode)Hungry WS Deletion.
* normal-erase-is-backspace-mode [ccmode]: (ccmode)Hungry WS Deletion.
* backspace-function (c-) [ccmode]: (ccmode)Hungry WS Deletion.
* c-backspace-function [ccmode]: (ccmode)Hungry WS Deletion.
* <backspace> [ccmode]: (ccmode)Hungry WS Deletion.
* C-c <backspace> [ccmode]: (ccmode)Hungry WS Deletion.
* C-c C-<backspace> [ccmode]: (ccmode)Hungry WS Deletion.
Emacs 手册中只有 (emacs) 的那些。顺便说一句,您会注意到 Emacs 常见问题解答和 CC 模式手册都记录了您所看到的相同问题 - 这是一个长期存在的问题。