2012-02-27 42 views
12

我在.emacs(global-set-key (kbd "M-x g") 'gnus)中有以下代碼來啓動Gnus,其中的鍵綁定爲M-x g。我獲得:error: Key sequence M-x g starts with non-prefix key M-x。如何定義從M-x開始的鍵綁定?這是一件壞事,應該避免?我發現它更直觀,因爲「長版」是M-x gnus。其定義爲C-c g例如是沒有問題的,但那麼你通過M-x RC-c g開始Gnus的,例如,R這是不是很直觀的(相比於同時啓動通過M-x + 1 letteremacs錯誤:按鍵序列M-x g以非前綴鍵開頭M-x

回答

18

關鍵的Mx已經綁定到命令execute-extended-command,然後要求您提供名稱的命令來執行(在你的情況下:gnus)。

由於R只有一個字符長的命令時,它看起來像的Mx [R是關鍵序列,但它不是:它是Mx然後在迷你緩衝區中輸入R,然後您必須點擊RET才能驗證您的輸入。

簡而言之:

  • 你可以不設置與開始的Mx鍵序列,因爲此鍵已經被綁定到一個命令,因此不是一個前綴(不像抄送,它不只是等待爲您輸入另一個鍵,但應保留爲特定於當前模式的綁定)。
  • 標準的方式做的事情是繼續開始使用的Mx角馬或者如果你需要非常快速的把它重新綁定到一個完全不同的鍵角馬(例如,你可以使用F1一個 - F12鍵)
  • ,如果你真的想有一個的Mx +字母結合,可以定義一個字母的別名命令gnus,像這樣:
(defalias 'g 'gnus) 
+0

非常詳細的解釋,非常感謝,弗朗切斯科。 – 2012-02-27 10:44:26

+0

第四個選項是清除Mx並將其設爲前綴鍵:http://stackoverflow.com/questions/1024374/how-can-i-make-cp-an-emacs-prefix-key-for-develperlysense(但是,Mx是這樣一個核心的emacs密鑰,在這種情況下它可能是一個壞主意。) – idbrii 2015-05-11 10:23:33