将一个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)
函数来指定键绑定。 这个函数非常有用,因为你几乎可以直接把键绑定起来。