2013-12-12 9 views
6

Emacs Lispのエラー "間違った型引数:commandpを" 次のコードが間違っている何

(defun test 
    (interactive) 
    (message "hello")) 
(global-set-key '[f4] 'test) 

eval-regionでこれを評価し、その後F4を押すと、私はエラーを取得する:

Wrong type argument: commandp, test 
+4

空のパラメータリストで '(defun test()...)'を試してください。 – uselpa

+0

はい、動作します。どうもありがとうございました!あなたは答えとして与えることができ、私はそれを受け入れるでしょう.. –

+0

あなたを歓迎します;-) – uselpa

答えて

10

test関数の引数リストがないため、Emacsは(interactive)形式をarglistとして解釈します。したがって、引数のない対話的なコマンドの代わりに、1つの引数の非対話的な関数を定義しました。

何がしたいことは次のとおりです。

(defun test() 
    "My command test" 
    (interactive) 
    (message "hello")) 

教訓:

  1. は必ずドキュメンテーション文字列を追加する - あなたがした場合、Emacsは
  2. 使用elintを訴えているだろう(Emacsに付属しています、してみてくださいチャンネルRET)。
+0

アドバイスをいただきありがとうございます! –

+0

'elint'についての情報はどこにありますか? –

+1

@HåkonHægland:elintにはEmacsが付属しています。編集 – sds

関連する問題