pcx*_*pcx 10 emacs elisp dot-emacs emacs24
可能重复:
Emacs 24包系统初始化问题
我正在使用Emacs 24.我添加了ELPA和Marmalade repos.使用'package'我安装了'auto-complete'.我在init.el中添加了以下行:
(require 'auto-complete-config)
(ac-config-default)
Run Code Online (Sandbox Code Playgroud)
当我启动Emacs时,我收到错误
文件错误:无法打开加载文件,auto-complete-config
但后来我用了
Mx加载文件
并加载相同的〜/ .emacs.d/init.el文件,然后它提示工作正常
正在加载/home/user/.emacs.d/init.el(source)...完成
通常的加载与'Mx load-file'命令有什么不同?在init.el文件的开头我执行以下操作,这是以某种方式影响加载包.
(add-to-list'load-path"〜/ .emacs.d")
(加载"custom_code")
Rup*_*ick 11
如下面的评论所述:phils对重复问题的回答可能比这个更有帮助
这几乎可以肯定意味着您的init.el文件在为其分类的代码之前运行package.el.后一个代码将带有自动完成库的目录添加到您的加载路径.
我还在使用ELPA,而不是package.el.对于elpa,有一个看起来像这样的片段安装在你的底部.emacs.
;;; This was installed by package-install.el.
;;; This provides support for the package system and
;;; interfacing with ELPA, the package archive.
;;; Move this code earlier if you want to reference
;;; packages in your .emacs.
(when
(load
(expand-file-name "~/.emacs.d/elpa/package.el"))
(package-initialize))
Run Code Online (Sandbox Code Playgroud)
正如评论所暗示的那样,您可能希望package.el在加载的东西之前放置等效的初始化代码init.el.
最后:我注意到你提到加入.emacs.d你的load-path.Emacs加载路径不是递归的,因此可能无法满足您的需求(假设您的库存在于子目录中).几年前,我编写了这个片段来加载我编写的各种elisp代码库.你可能会发现它很有用.(显然,它只适用于带有shell和find命令的unixy系统.它相当慢,但这似乎是shell-command-to-string,甚至运行"echo hello"等需要几毫秒)
(defun find-elisp-dirs (dir)
"Find all directories below DIR containing elisp sources, ignoring those"
(split-string
(shell-command-to-string
(format "find %s -iname '*.el' -printf '%%h\\n' | sort -u"
(expand-file-name dir t)))))
Run Code Online (Sandbox Code Playgroud)