2009-08-09 11 views
64

ここで「間違った型の引数:commandp(lambda nil(forward-line 5))」が表示されています。ラムダをキーにバインドするときに「間違った型引数:commandp」エラーが発生する

(global-set-key [?\M-n] (lambda() (forward-line 5))) 

エラーは何ですか?私はかなり単純だと確信しています&私は何かが明らかに欠けている。

+0

閉じ括弧がありません。おそらくあなたのコードではなく、質問の中で。 – hsribei

+0

補足として:匿名関数を引用すると、そのような関数はコンパイルされません。私はそれがあなたのケースでは大したことではないと思います。 –

答えて

96

global-set-keyは、対話型コマンドが必要です。 (lambda() (interactive) (forward-line 5))はうまくいくはずです。

ところで、C-h f commandpはそのようなエラーのかなり良い出発点です。

30

正しいフォームはこれをする必要があります -

(global-set-key (kbd "M-n") (lambda() (interactive) (forward-line 5))) 

問題は、あなたが(ブレンダンが述べたように)(interactive)を置くのを忘れていることでした。

ちなみに、私は(kbd)関数を使用してキーバインディングを指定しています。この関数は、文字通りキーバインディングを置くことができるので非常に便利です。

関連する問題