我在.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
来启动R,这不是很直观(与通过M-x + 1 letter
来启动都相反)
最佳答案
密钥M-x已经绑定到命令execute-extended-command
,然后该命令要求您提供要执行的命令的名称(在您的情况下为gnus
)。
由于R
是一个只有一个字符长的命令,因此看起来M-x R是键序列,但不是:它是M-x,然后在小缓冲区中输入R
,您必须按RET来验证输入。
简而言之:
您不能设置以Mx开头的键序列,因为该键已经绑定到命令,因此不是前缀(与Cc不同,Cc不会执行任何操作,只是等待您键入另一个键,但应保留给特定于当前键的绑定模式)。
执行操作的标准方法是继续使用M-x gnus启动gnus或将其重新绑定到完全不同的键(如果您需要非常快的话)(例如,可以使用F1-F12键之一)
如果您确实希望使用M-x +字母绑定,则可以为命令gnus
定义一个字母的别名,如下所示:
(defalias 'g 'gnus)