我正在学习如何在 emacs lisp 中编程。我想我会编写一个简单的函数,将函数定义打印到消息缓冲区。这工作正常:
(let (
(fDefAsString (symbol-function 'scroll-down))
)
(message "%s" fDefAsString)
(switch-to-buffer-other-frame "*Messages*"))
但我希望这是一个可以接受参数的函数,参数是我想查看其定义的函数的名称。所以我尝试了这个:
(defun message-function-definition (nameOfFunction)
(let (
(fDefAsString (symbol-function 'nameOfFunction))
)
(message "%s" fDefAsString)
(switch-to-buffer-other-frame "*Messages*")))
然后我写了这个:
(message-function-definition 'scroll-down)
然后我运行“eval-buffer”。
我不断收到此错误:
调试器进入--Lisp 错误: (void-function nameOfFunction) symbol-function(nameOfFunction) (let ((fDefAsString ...)) (message "%s" fDefAsString) (switch-to-buffer-other-frame " Messages " )) 消息函数定义(向下滚动) eval((消息函数定义(引用向下滚动))) eval-last-sexp-1(nil) eval-last-sexp(nil) 交互式调用( eval-last-sexp nil nil) recursive-edit() 字节码("\306 @\307=\203!
我尝试过引用、取消引用,并且尝试使用“nameOfFunction”,但我无法让它工作。我究竟做错了什么?