输入£时,Emacs会严格锁定PuTTY

时间:2009-11-04 15:13:16

标签: emacs

我正在使用emacs(21.4.1)通过PuTTY(0.60)连接到带有英国键盘的CentOS5.3盒子。每当我输入£符号时,emacs会很难锁定,使得整个putty窗口无响应并且会丢失所有更改。

修改

pajato0的建议之后,我收到以下消息:

à (translated from £) runs the command self-insert-command
    which is an interactive built-in function in `C source code'.
  which is an interactive built-in function in `C source code'.
It is bound to many ordinary text characters.

所以看起来我需要重新绑定密钥。如何做到这一点?

4 个答案:

答案 0 :(得分:2)

要确定Emacs在你的场景中扮演什么角色(如果有的话),我建议你尝试C-h k#,其中#是你的英镑键。如果它挂起,那么Emacs根本就没有获得密钥,而且最有可能出现Putty / Windows问题。如果Emacs告诉你函数绑定,那么你有希望通过更改键绑定来修复它。我最好的猜测是,Putty正在抓取密钥并将其发送到正在丢球的Windows。

答案 1 :(得分:0)

你可以尝试另一个ssh客户端来查看它是否是特定于putty的。我倾向于运行

startxwin.sh           # from a MinGW rxvt terminal

之后弹出一个xterm

ssh -X some.unix.box   # from the new xterm

之后我启动了一个标签式终端模拟器,我将永远保持几个会话。我的美国键盘没有英镑符号所以我无法测试你的问题...

答案 2 :(得分:0)

我会看看putty正在执行的字符集翻译(窗口 - >设置中的翻译)。可能是为英镑符号发送的字符代码(没有英国键盘......)以某种方式锁定终端,或者响应按键返回的字符导致某些类似行为(例如,等待代码点的完成)。

您可能想尝试将所有设置为UTF-8(Linux端的charset / locale和Putty翻译),以尽量减少混淆的可能性......

答案 3 :(得分:0)

回答您的问题“如何重新绑定密钥”:使用define-key功能,例如

(define-key global-map [S-Home] 'beginning-of-buffer)

困难的部分是弄清楚如何表示你的钥匙,然后选择合适的功能。例如,您可能会执行以下操作:

(defun make-euro ()
  "Euro")

(define-key global-map # 'make-euro)

但是我还建议您提交一个错误,因为如果尝试自行插入#键导致Emacs挂起,那么显然Emacs破损应该得到修复。