emacs错误:密钥序列M-x g以非前缀密钥M-x开头

时间:2012-02-27 08:39:37

标签: emacs

我在.emacs(global-set-key (kbd "M-x g") 'gnus)中有以下代码,使用键绑定M-x g启动Gnus。我获得了:error: Key sequence M-x g starts with non-prefix key M-x。如何定义以M-x开头的键绑定?这是一件坏事,应该避免吗?我发现它更直观,因为“长版本”是M-x gnus。例如,将其定义为C-c g是没有问题的,但是你用C-c g启动Gnus,例如,通过M-x R启动G,这不是非常直观(与通过{{开始)相反1}}

1 个答案:

答案 0 :(得分:23)

密钥 Mx 已绑定到命令execute-extended-command,然后命令您提供要执行的命令的名称(在您的情况下为gnus)。

由于R是一个只有一个字符长的命令,它看起来像 Mx R 是一个键序列,但它不是:它是 Mx 后面跟着在迷你缓冲区中输入R,您必须点击 RET 来验证您的输入。

简而言之:

  • 你不能设置以 Mx 开头的键序列,因为这个键已经绑定到一个命令,因此不是一个前缀(不像 Cc ,除了等待之外什么都不做您可以键入另一个键,但应保留用于特定于当前模式的绑定。)
  • 做事的标准方法是使用 Mx gnus 继续启动gnus,或者如果你需要非常快的话,将它重新绑定到一个完全不同的键(你可以使用其中一个 F1 - F12 键)
  • 如果你真的想要一个 M-x +字母绑定,你可以为命令gnus定义一个单字母别名,如下所示:
    (defalias 'g 'gnus)