2009-11-04 12 views
0

我使用通過PuTTY(0.60)連接到帶有英國鍵盤的CentOS5.3盒子的emacs(21.4.1)。每當我輸入£符號emacs會很難鎖定,使整個膩子窗口無響應並丟失所有更改。當輸入英鎊時,Emacs在PuTTY上很難鎖定

編輯:

Futher到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. 

所以看起來我需要重新綁定的關鍵。如何做到這一點?

+0

由於某種原因,我有一個類似的問題,我不知道爲什麼,但是當我通過linux終端ssh'd(我以前使用膩子)時,我能夠輸入「@」 「符號沒有問題。這不是一個解決方案,但是當我匆忙時幫助我:/ – 2013-03-19 15:50:30

回答

2

要確定什麼樣的作用,如果任何Emacs都在玩你的場景,我建議你嘗試Ch##,其中#是你的鎊密鑰。如果掛起,那麼Emacs根本就沒有獲得密鑰,並且最有可能出現Putty/Windows問題。如果Emacs告訴你函數綁定,那麼你有一些希望通過更改鍵綁定來修復它。我最好的猜測是Putty正在捕獲密鑰並將其發送給正在丟球的Windows。

+0

Ã(翻譯自£)運行命令self-insert-command,它是'C源代碼'中的交互式內置函數。 這是'C源代碼'中的交互式內置函數。 – 2009-11-05 08:55:37

+0

那麼,在做C-hk 工作?你在Centos上設置的區域設置是什麼? (echo $ LANG $ LC_ALL)。 – 2009-11-05 14:26:36

+0

'en_US.UTF-8' - 雖然問題似乎有「固定」。我在膩子中將'Window> Translation> Charset'更改爲'UTF-8',然後重新連接並且沒有看到問題。所以,emacs沒有鎖定,膩子是! – 2009-11-05 15:00:35

0

你可以嘗試另一個ssh客戶端來查看它是否是膩子特定的。我傾向於只運行

startxwin.sh   # from a MinGW rxvt terminal 

之後,在我做

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

之後,我火了,其中我一直幾屆「永遠」選項卡式終端仿真器的xterm彈出。而我的美國鍵盤沒有英鎊符號,所以沒有辦法讓我來測試你的問題......

0

我會看看putty正在執行的字符集轉換(window-> translation in settings)。這可能是因爲英鎊符號(沒有英國鍵盤......)發送的字符代碼以某種方式鎖定終端,或者響應於按鍵而返回的字符導致一些類似行爲(例如等待代碼點的完成)。

您可能需要的一切設置爲UTF-8(在Linux上側的charset /區域設置,並且在膩子翻譯)去嘗試,最大限度地減少混亂的機會......

0

回答您的問題「如何重新綁定密鑰」:使用define-key函數,例如,

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

困難的部分是弄清楚如何表示您的密鑰,然後選擇合適的功能。例如,你可以這樣做:

(defun make-euro() 
    "Euro") 

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

但我也建議你提交一個bug,因爲如果試圖自我插入你的#鍵,使Emacs的掛起,這顯然是Emacs的破損,應該讓固定。