将一个lambda绑定到一个键时出现错误的types参数:commandp错误

我在这里得到一个“错误的types参数:commandp,(lambda nil(forward-line 5))”。

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

什么是错误? 我相当确定这很简单,我错过了一些明显的东西。

global-set-key需要一个交互式命令。 (lambda () (interactive) (forward-line 5))应该工作。

顺便说一句, Ch f commandp是这样的错误的一个很好的起点。

正确的forms应该是这个 –

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

问题是你忘了把(interactive) (如提到的布伦丹)。

顺便说一句,你会注意到我使用(kbd)函数来指定键绑定。 这个函数非常有用,因为你几乎可以直接把键绑定起来。