Emacs如何重新定义Shift-R以满足预期用途

时间:2010-01-20 14:40:27

标签: emacs elisp key-bindings

我检查了我的elisp文件,以确保我没有任何包含Shift + R的绑定(我没有找到任何绑定)。我希望SHIFT + R打印一个大写字符,但我在Emacs命令行中得到 R R undefined 。这仅适用于C / C ++主要模式。

有什么建议吗?

更新:描述密钥表明它未定义。我如何定义正常的预期用途(将字母R大写)?

4 个答案:

答案 0 :(得分:2)

我假设“预期用途”是指插入'R'字符。为此,您需要将密钥绑定到'self-insert-command':

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

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

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

当然,这应该是默认....

答案 1 :(得分:2)

我在这里得到了一点deja-vu,如果内存服务于我几年前遇到的行为(在Windows上)某些可访问性设置未设置或更改了右移键的键码。对不起,我不能更具体,但也许这会刺激别人提出真正的答案。您可以进行的测试:该行为是否适用于两个Shift键或只有一个?如果答案只是一个显示不良行为,那么所有键都显示不良行为吗?

答案 2 :(得分:1)

尝试C-h k(describe-key),然后按Shift-R。然后,describe-key将告诉您绑定到该键的内容。至少这会给你一个关于是否有活动绑定的提示。如果有绑定,也许它会给你一些在你的启动文件中搜索的其他东西。

答案 3 :(得分:0)

你听起来像是我遇到了同样的问题。当任何单个R- *命令未定义时,在任何html缓冲区中键入Re ...将尝试执行R-命令。原来我的.emacs文件中有一个拼写错误。我将全局键映射设置为(kbd "REF")而不是(kbd "RET"),修复它会使问题立即消失。因此,我建议您检查.emacs文件中的任何类似内容。