在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
答案 0 :(得分:5)
在final(require'use-package)之前添加以下表达式似乎已经解决了错误(虽然我在启动时也不再获得有用的问候语屏幕):
(unless (package-installed-p 'use-package)
(package-refresh-contents)
(package-install 'use-package))