【发布时间】:2016-10-31 06:18:20
【问题描述】:
在 Win7 上安装的全新 Emacs 24.5 64 位似乎不包含 init.el 文件,我需要一个用于设置我想使用的插件的文件,因此我在 Emacs 中的 C:\ 创建了一个用户\brinklec\AppData\Roaming.emacs.d。重启 Emacs,得到了明显的名气
Warning (initialization): An error occurred while loading `c:/Users/brinklec/AppData/Roaming/.emacs.d/init.el':
File error: Cannot open load file, no such file or directory, use-package
我最初并没有理解错误末尾对“use-package”的引用,并且前面的措辞显然误导了我认为 Emacs 说它无法加载的是 init.el。
手动加载也会出现同样的错误。但是,Emacs 可以打开并成功地重新保存文件。
我看到了一堆类似的问题,但似乎都涉及在已经存在并成功加载的 init.el 中引用的其他文件。我以为我的问题不同了,但现在可能不是?
我的 init.el 的内容来自recommended config for ENSIME plug-in(除了下面的第一行注释之外逐字记录):
;;; ~/.emacs.d/init.el
;; global variables
(setq
inhibit-startup-screen t
create-lockfiles nil
make-backup-files nil
column-number-mode t
scroll-error-top-bottom t
show-paren-delay 0.5
use-package-always-ensure t
sentence-end-double-space nil)
;; buffer local variables
(setq-default
indent-tabs-mode nil
tab-width 4
c-basic-offset 4)
;; modes
(electric-indent-mode 0)
;; global keybindings
(global-unset-key (kbd "C-z"))
;; the package manager
(require 'package)
(setq
use-package-always-ensure t
package-archives '(("gnu" . "http://elpa.gnu.org/packages/")
("org" . "http://orgmode.org/elpa/")
("melpa" . "http://melpa.org/packages/")))
(package-initialize)
(when (not package-archive-contents)
(package-refresh-contents)
(package-install 'use-package))
(require 'use-package)
来自 --debug-init 的调试输出:
Debugger entered--Lisp error: (file-error "Cannot open load file" "no such file or directory" "use-package")
require(use-package)
eval-buffer(#<buffer *load*> nil "c:/Users/brinklec/AppData/Roaming/.emacs.d/init.el" nil t) ; Reading at buffer position 841
load-with-code-conversion("c:/Users/brinklec/AppData/Roaming/.emacs.d/init.el" "c:/Users/brinklec/AppData/Roaming/.emacs.d/init.el" t t)
load("c:/Users/brinklec/AppData/Roaming/.emacs.d/init" t t)
#[0 "\205\262
【问题讨论】:
-
Emacs 不需要 初始化文件(也不会代表您创建一个);但如果你给它一个,你想确保它是有效的。显然你给了它一个依赖于第三方
use-package库的库,但实际上并没有安装它。 -
我添加了上面 init.el 的内容,我从 ensime.org 对 ENSIME 插件的推荐中复制了这些内容。最后一行说(需要'use-package)。在文件的前面部分,似乎有一些用于 use-package 的参数。我不知道这里的疏散命令适用什么规则...
-
使用开关(命令行选项)
--debug-init启动 Emacs。 -
添加在上面。不明白它在说什么(需要'use-package)。假设应该存在的文件中缺少某些内容。当我之前运行它时,由于错误消息的措辞,我仍然认为它在抱怨 init.el 本身,而不是在尝试安装 use-package。我再次为初学者的无知道歉。
标签: emacs initialization