不会加载新创建的Emacs init文件

时间:2016-06-28 19:07:34

标签: emacs initialization

在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

1 个答案:

答案 0 :(得分:5)

在final(require'use-package)之前添加以下表达式似乎已经解决了错误(虽然我在启动时也不再获得有用的问候语屏幕):

(unless (package-installed-p 'use-package)
  (package-refresh-contents)
  (package-install 'use-package))