여기에 "잘못된 유형 인수 : commandp, (lambda nil (forward-line 5))"가 표시됩니다.
(global-set-key [?\M-n] (lambda () (forward-line 5)))
오류는 무엇입니까? 나는 그것이 간단하고 명백한 것을 놓치고 있다고 확신합니다.
여기에 "잘못된 유형 인수 : commandp, (lambda nil (forward-line 5))"가 표시됩니다.
(global-set-key [?\M-n] (lambda () (forward-line 5)))
오류는 무엇입니까? 나는 그것이 간단하고 명백한 것을 놓치고 있다고 확신합니다.
답변:
global-set-key
대화 형 명령이 필요합니다. (lambda () (interactive) (forward-line 5))
작동해야합니다.
그건 그렇고, C-h f commandp
그런 오류에 대한 꽤 좋은 시작점입니다.
(commandp)
문서 에 따르면 최상위 수준 호출이있는 람다 함수가 (interactive)
작동하지만 작동하는 함수를 어떻게 정의 할 수 (defun)
있습니까?
올바른 형식은 다음과 같아야합니다.
(global-set-key (kbd "M-n") (lambda () (interactive) (forward-line 5)))
문제는 (interactive)
(brendan이 언급했듯이) 넣는 것을 잊었다는 것입니다 .
그건 그렇고, (kbd)
키 바인딩을 지정하는 기능을 사용했음을 알 수 있습니다. 이 함수는 거의 문자 그대로 키 바인딩을 넣을 수 있기 때문에 매우 유용합니다.