当£时,Emacs在腻子上牢牢锁定;输入
我使用emacs(21.4.1)通过PuTTY(0.60)连接到一个带有英国键盘的CentOS5.3盒子。每当我进入(符号时,emacs都会硬锁,使整个putty窗口无响应,并失去所有更改 编辑: 根据pajato0的建议,我得到以下信息:当£时,Emacs在腻子上牢牢锁定;输入,emacs,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'. w
à (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.
看来我需要重新绑定钥匙了。如何做到这一点?您可以尝试另一个ssh客户端,看看它是否是putty特定的。我倾向于跑步
startxwin.sh # from a MinGW rxvt terminal
之后会弹出一个xterm,我在其中
ssh -X some.unix.box # from the new xterm
之后,我启动了一个选项卡式终端仿真器,在这个仿真器中,我“永远”保持几个会话。而且我的美国键盘没有磅符号,因此我无法测试您的问题…我将查看putty正在执行的字符集翻译(设置中的窗口->翻译)。可能是为英镑符号发送的字符代码(没有英国键盘…)以某种方式锁定了终端,或者是为响应按键而返回的字符导致了一些类似的行为(例如,等待代码点的完成)
您可能希望将所有内容都设置为UTF-8(linux端的字符集/区域设置,以及Putty翻译),以尽量减少混淆的机会…要确定Emacs在您的场景中扮演什么角色(如果有的话),我建议您尝试C-h k#where#是您的磅键。如果它挂起,那么Emacs根本就得不到密钥,很可能是Putty/Windows问题。如果Emacs告诉您函数绑定,那么您有希望通过更改键绑定来修复它。我最好的猜测是,Putty正在捕获钥匙并将其发送到Windows,而Windows正在扔球 在回答您的问题“如何重新绑定密钥”:使用
定义密钥
功能,例如
(define-key global-map [S-Home] 'beginning-of-buffer)
困难的部分是找出如何表示密钥,然后选择合适的函数。例如,您可以执行以下操作:
(defun make-euro ()
"Euro")
(define-key global-map # 'make-euro)
但我也建议您提交一个bug,因为如果试图自行插入您的#键导致Emacs挂起,那么显然应该修复Emacs破损。Ã运行命令self insert命令,这是
C源代码”中的一个交互式内置函数。在
C源代码中,哪一个是交互式内置函数?那么,C-hk是否有效?Centos端的区域设置是什么?(echo$LANG$LC_ALL)。en_US.UTF-8
——尽管问题似乎已经“自行解决”。我在putty中将Window>Translation>Charset
更改为UTF-8
,重新连接,此后再也没有看到该问题。所以,emacs没有锁定,putty是!看起来很像下面的答案之一:-)出于某种原因,我对“@”符号也有类似的问题,我不知道为什么,但当我通过linux终端ssh时(我以前使用putty),我能够毫无问题地输入“@”符号。这不是一个解决方案,但在我匆忙时帮了我一把:/