【问题标题】:Backspace key deletes following character, not preceding character退格键删除后面的字符,而不是前面的字符
【发布时间】:2015-03-21 09:17:46
【问题描述】:

首先,对不起我的英语不好..

我已经在 linux mint 上安装了 emacs,并且我已经设置了我自己的配置。 一切都很好,除了键向后删除右侧的字符(但是应该删除左侧的字符)。 我怎样才能改变这个关键的行为? 我尝试用它编码,但很难改变我编码的方式。 我在互联网上查看过,但没有找到解决此特定问题的方法。

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

谢谢。

【问题讨论】:

  • 你能按f1 k+ 任何你想按的删除键,并显示输出吗?
  • 我不能导致:f1-k 打开 xfce 的在线文档
  • C-h k 然后,它调用相同的东西。
  • 哇,有趣,C-h 就像退格一样哦
  • 你是在终端还是什么的?它不应该那样做。

标签: emacs character emacs24 keymapping backspace


【解决方案1】:

这是你的答案:C-h r(打开 Emacs 手册),然后是 g DEL Does Not Delete。手册的那个节点正是针对这个众所周知的问题。解决方案?把它放在你的初始化文件中:

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

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

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

所以我刚刚做了i backspace S-TABIcicles 中的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-backspaceC-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 模式手册都记录了您所看到的相同问题 - 这是一个长期存在的问题。

【讨论】:

    【解决方案2】:

    作为即时补救措施,可以使用命令M-x normal-erase-is-backspace-mode。信息取自这里:link;上一个回答中提到了这个文档。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-30
      • 2014-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-25
      • 2017-10-28
      相关资源
      最近更新 更多