假设我在~/bin/hello.el
中有自己的elisp代码。
~/.emacs
文件具有以下代码,可在启动时运行hello.el
。
(add-to-list 'load-path "~/bin/elisp")
(require 'hello)
但是,我收到以下错误消息。
警告(初始化):加载`/Users/smcho/.emacs'时出错:
错误:未提供必需的功能“hello”
这有什么问题?
答案 0 :(得分:15)
hello.el是否提供你好?它应该以{{1}}开头。请参阅elisp manual。 (provide 'hello)
有效吗?
答案 1 :(得分:3)
你必须在你的LISP代码中加入类似的东西:
(提供'你好)
答案 2 :(得分:1)
如果您向~/bin/elisp
添加了load-path
,则Emacs将无法在~/bin
中找到文件。在这种情况下,Emacs将尝试加载~/bin/elisp/hello.el
,如果找不到,则会在其中查找名为hello.elc
或hello.el
的文件(按此顺序) load-path
的其他部分。
此外,正如其他人所提到的,hello.el
需要(provide 'hello)
(通常在最后)。