2013-09-22 49 views
1

我是新來的Emacs和更新,以口齒不清麻煩與定義簡單的emacs命令

我正在嘗試設置元+空格鍵來設置高亮顯示文本的標誌(在當前光標位置)。 摸索在線和實驗我已經結束了與命令

(global-set-key (kbd "M-SPC") 'push-mark nil nil 1)

上面的命令沒有工作對我來說,雖然,我得到一個「參數錯誤的數量不正確。」

得到了函數定義,

    推標誌和任意位置nomsg激活
from elisp manual here

    位置:零的位置應該默認爲當前光標所在位置
    nomsg:我不在乎(我認爲)
    activate:顯然默認情況下不是真的,所以我需要將它設置爲...某事。

我該如何格式化命令以傳遞三個值?

錯誤肯定是由於推 - 標記的函數調用作爲其它功能,例如向後炭(其我不傳遞輸入)正確

回答

2

工作作爲˚Fglobal-set-keyRET告訴你,global-set-key有兩個參數:(global-set-key KEY COMMAND)

你傳遞五個參數:(global-set-key (kbd "M-SPC") 'push-mark nil nil 1)

因此「參數數量錯誤」。

您可以爲命名函數或匿名函數/ lambda提供符號。

例如爲:(global-set-key (kbd "M-SPC") (lambda() (interactive) (push-mark nil nil 1)))

2

加了一點什麼@phils說:

  1. push-mark不是命令:其定義中沒有interactive規範。請注意,phils的示例在匿名函數中包含(interactive),使其成爲命令。

  2. 不像push-mark,,顧名思義就是一個命令。如果你想要push-mark的效果,那麼只需綁定,或更好的set-mark-command