作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经使用 elpa 安装了许多软件包,并希望为它们适本地生成自动加载。为此,我添加到我的 init 文件中:
(apply 'update-directory-autoloads (directory-files package-user-dir t "[^\.].*"))
Debugger entered--Lisp error: (wrong-type-argument stringp nil)
expand-file-name(nil "/build/buildd/emacs24-24.3+1/debian/build-x/lisp")
autoload-generated-file()
autoload-find-generated-file()
update-directory-autoloads("/home/survivor/.emacs.d/elpa/ahg-20140818.130")
eval((update-directory-autoloads "/home/survivor/.emacs.d/elpa/ahg-20140818.130") nil)
eval-last-sexp-1(nil)
eval-last-sexp(nil)
call-interactively(eval-last-sexp nil nil)
require
吗?
最佳答案
TL;DR: 您可能需要将 (package-initialize)
添加到您的 init 文件中。
您不需要为您的包生成自动加载。包管理器在安装时自动执行此操作。您将在 -autoloads.el
目录的包目录中找到相应的 ~/.emacs.d/elpa/
文件。
您也不需要要求每个包。然而,与其他所有 Emacs Lisp 文件一样,已安装包的自动加载文件需要在其中包含的自动加载声明可用之前被 加载 (令人困惑,我知道)。
当 Emacs 包管理器“激活”一个包时,它会自动加载一个包的自动加载文件。 Emacs 还会自动初始化包管理器并激活所有已安装的包,但只有 在 你的 init.el
被处理之后。
因此,在加载 init.el
时,包(以及它们的自动加载)是 而不是 可用,因此您不能在 init.el
中使用包。
为了解决这个问题,您可以将所有设置推迟到 after-init-hook
,或者通过在 init 文件的顶部添加 (package-initialize)
来强制 Emacs 初始化包管理器。
关于emacs - 如何为 elpa 包生成自动加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26348561/
我是一名优秀的程序员,十分优秀!