我想允許用戶在「自定義」 emacs的後端選擇自己的命令(通常能夠存儲在一個變量可執行形式的名稱),但是,這並不工作:在elisp中,如何將函數放入變量中?
(defun dumb-f()
(message "I'm a function"))
(defvar my-function "dumb-f")
(my-function)
==> Debugger entered--Lisp error: (invalid-function "dumb-f")
(setq my-function 'dumb-f)
(my-function)
==> Debugger entered--Lisp error: (invalid-function "dumb-f")
我試着各種形式,但仍然沒有運氣,我很難找到它,我得到了有關函數和變量的結果,但沒有一個關於如何把前者放在後者中。
你正在卷。很好的答案。 – 2012-03-30 15:27:02
我的例子被嚴重choosen,抱歉:我想用定製,比如讓用戶選擇自己的電子郵件程序,像這樣: '(defcustom我的信箱節目「角馬」 「郵件客戶端命令 例:wl「 :type'string :group'mail-bugger)' 我無法執行(my-mail-program)..? – yPhil 2012-04-01 22:04:44
所以你應該使用':type'函數'而不是''string',默認值爲''gnus'而不是''gnus'',然後你可以使用'(funcall my-mail-program) 。確保你瞭解字符串和符號之間的區別。 – phils 2012-04-02 02:06:07