4

如何改变这种行为:

  1. C-s— 开始增量搜索
  2. type word— 错误打印最后一个字符
  3. Backspace——哎呀!增量搜索消失了,我实际上从缓冲区中删除了 1 个字符。

到那个:

  1. C-s— 开始增量搜索
  2. word— 错误打印最后一个字符
  3. Backspace— 删除最后一个d字符
  4. 输入k——work正确,然后继续搜索

我通过 PuTTY 中的 SSH 在文本终端中运行 Emacs。

操作系统版本:2.6.16.60-0.58.1.1882.3.PTF.638363-smp #1 SMP Wed Dec 2 12:27:56 UTC 2009 x86_64 x86_64 x86_64 GNU/Linux

Emacs 版本:2010-07-16 的 GNU Emacs 23.2.1 (x86_64-unknown-linux-gnu, GTK+ Version 2.14.6)

使用该-q选项,BackspacePuTTY 发送的只是C-h,它的行为类似于C-h,但在我的.emacs文件中我绑定到delete-backward-char

(global-set-key [(control h)] 'delete-backward-char)
4

3 回答 3

4

试试这个:

(define-key isearch-mode-map [(control h)] 'isearch-delete-char)
于 2012-08-17T15:01:43.287 回答
2

您应该做的是将 PuTTY 配置为发送C-?(字节 127)Backspace而不是C-h(字节 8)。这是在大多数情况下效果最好的设置。请参阅 PuTTY 手册

如果C-h由于某些其他应用程序无法运行而将 PuTTY 设置更改为发送,请检查服务器上的终端设置是否正确。该设置通常会被正确地自动检测到,但有时您可能需要添加stty erase '^?'到服务器上的 shell 配置文件(.bashrc或类似文件)中。

如果你真的必须有Backspacesend C-h,那么全局重新绑定C-h是不够的。相反,添加(normal-erase-is-backspace-mode 1)到您的.emacs. 请参阅Emacs 手册

于 2012-08-17T17:55:47.097 回答
0

你应该如何使用 Emacs:

  1. Cs - 开始增量搜索
  2. 输入单词- 最后一个字符打印错误
  3. - 进入 minibuffer 中的编辑搜索词事物模式 :-)
  4. 更正错字
  5. Cs - 继续增量搜索
于 2012-08-17T15:15:42.803 回答