Ошибка Emacs Lisp " неверный аргумент типа: commandp"
что не так со следующим кодом:
(defun test
(interactive)
(message "hello"))
(global-set-key '[f4] 'test)
при оценке с eval-region
и нажмите клавишу Ф4 Я получаю сообщение об ошибке:
Wrong type argument: commandp, test
1 ответов
вам не хватает списка аргументов вашего test
функция, поэтому Emacs интерпретирует (interactive)
форма как arglist. Таким образом, вы определили неинтерактивную функцию 1 аргумента вместо интерактивной команды без аргументов.
ты хочешь:
(defun test ()
"My command test"
(interactive)
(message "hello"))
уроки:
- всегда добавляйте строку doc - если бы вы это сделали, Emacs пожаловался бы
- использовать
elint
(поставляется с Emacs, попробуйте C-h A elint РЕТ).