【问题标题】:Emacs How to redefine Shift-R for expected useEmacs 如何重新定义 Shift-R 以实现预期用途
【发布时间】:2010-01-20 14:40:27
【问题描述】:

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

有什么建议吗?

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

【问题讨论】:

    标签: emacs elisp key-bindings


    【解决方案1】:

    我假设“预期用途”是指插入“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)
    

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

    【讨论】:

    • 不,当我按下 Shift+R 时,“R”会出现,就好像我要键入一个命令(类似于 M-x)。
    • 这个答案其实已经解决了问题,但问题的根源来自我使用的X Window软件。显然它将左 ALT 键绑定到 ALT 以外的其他东西。经过一番搜索,这似乎与对旧键盘的旧版支持有关。
    【解决方案2】:

    我在这里有点似曾相识,如果记忆符合我几年前遇到的行为是(在 Windows 上)某些可访问性设置未设置或更改了右 shift 键的键码。抱歉,我不能更具体,但也许这会刺激其他人想出真正的答案。您可以进行的测试:该行为是否适用于两个 shift 键或仅一个?如果答案只是一个显示不良行为,那么所有键都显示不良行为吗?

    【讨论】:

    • 只是左 shift 键,但这是通过 X 转发(并且粘滞键已关闭)。
    【解决方案3】:

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

    【讨论】:

    • 表示密钥未定义。
    【解决方案4】:

    听起来你和我有同样的问题。当每一个 R-* 命令都未定义时,在任何 html 缓冲区中键入 Re... 都会尝试执行 R- 命令。原来我的 .emacs 文件中有错字。我将全局键映射设置为(kbd "REF") 而不是(kbd "RET"),修复它使问题立即消失。所以我建议在你的 .emacs 文件中检查任何类似的东西。

    【讨论】:

      猜你喜欢
      • 2010-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多