退格键删除后续字符,而不是前面的字符

时间:2015-03-21 09:17:46

标签: emacs character emacs24 keymapping backspace

首先,抱歉我的英语不好......

我在linux mint上安装了emacs,我已经设置了自己的配置。 一切都没事,除了键向后删除右边的字符(但是它应该删除左边的字符)。 我怎样才能改变这个关键的竞争? 我试着用它编码,但它很难改变我编码的方式。 我在互联网上看,但没有发现这个具体问题。

我的后退键就像删除键一样(我正在使用mac air,因此我没有可能导致问题的del键?)

感谢。

2 个答案:

答案 0 :(得分:3)

以下是您的答案: C-h r (打开Emacs手册),然后是g DEL Does Not Delete。手册的那个节点正好说明了这个众所周知的问题。解决方案?把它放在你的init文件中:

(normal-erase-is-backspace-mode 0)

我是如何找到Emacs手动节点的?

我使用了 i ,它搜索当前手册的索引。我使用Icicles,它允许我使用子字符串匹配来完成(你也可以使用vanilla Emacs,但你需要配置它)。

所以我刚刚i backspace S-TAB({strong> Icicles 中的S-TAB执行apropos风格的完成; 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-backspaceC-S-backspace之外,其中每个条目实际上指向同一节点 DEL Does Not Delete 。 (您可以反复使用C-down依次访问每个候选节点,看看它们是什么。)


即使在香草Emacs中,您也可以使用apropos搜索手册:Info中的 a (即在手册中)是命令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 FAQ和CC Mode手册都记录了你所看到的同一个问题 - 这是一个长期存在的问题。

答案 1 :(得分:0)

作为紧急补救措施,可以使用命令M-x normal-erase-is-backspace-mode。该信息取自此处:link;上一个答案中提到了该文档。