2010-01-20 52 views
3

我檢查了我的elisp文件以確保我沒有任何包含Shift + R的綁定(並且我沒有找到任何)。我期望SHIFT + R打印一個大寫字符,但是我在Emacs命令行中獲得了R未定義的。這僅限於C/C++主要模式。Emacs如何重新定義Shift-R的預期用途

有什麼建議嗎?

更新:描述該鍵表明它是未定義的。我如何將它定義爲正常的預期用途(將字母R大寫)?

回答

2

我假設你想要插入'R'字符的'預期用途'。對於這一點,你需要綁定的關鍵在於 '自我插入命令':

M-x global-set-key R self-insert-command 

或者,在你的.emacs或.emacs.d/init.el文件:

(global-set-key "R" 'self-insert-command) 

當然,這應該是默認....

+0

這個工作適合你嗎? – 2010-01-20 17:20:10

+0

不,當我按下Shift + R時,出現「R」就好像我要輸入一個命令(類似於M-x)。 – 2010-01-20 18:01:18

+0

問題實際上是由這個答案解決的,但問題的根源來自我使用的X Window軟件。顯然它將左ALT鍵綁定到除ALT之外的其他東西。經過一番搜索,似乎這與傳統的舊鍵盤支持有關。 – 2010-04-06 22:04:25

1

嘗試C-h k(describe-key),然後按下Shift-R。然後describe-key會告訴你什麼是綁定到該密鑰。至少會給你提示是否存在活動綁定。如果有綁定,也許它會給你一些其他的東西在你的啓動文件中搜索。

+0

它說關鍵是未定義的。 – 2010-01-20 16:05:26

2

我在這裏得到了一點似曾相識,如果內存服務於我幾年前遇到的行爲是(在Windows上)某些輔助功能設置未設置或更改右移鍵的鍵碼。抱歉,我不能更具體,但也許這會刺激別人提出真正的答案。你可以做一個測試:這個行爲是同時用兩個換檔鍵還是隻用一個?如果答案只是一個顯示不良行爲,那麼用所有鍵顯示的不良行爲?

+1

只是左移鍵,但這是通過X轉發(並粘滯鍵已關閉)。 – 2010-01-20 18:25:04

0

你聽起來像你有同樣的問題,我有。在每個單一的R- *命令未定義時,在任何html緩衝區中鍵入Re ...都會嘗試執行R-命令。原來,我的.emacs文件中有一個錯字。我有一個全局鍵圖設置爲(kbd "REF")而不是(kbd "RET"),並修復它使問題立即消失。所以我建議檢查您的.emacs文件中的任何類似內容。