Emacs,use-package和package-refresh-contents

tah*_*rqa 5 emacs package emacs24

在我的init.el中,我想使用"use-package"懒洋洋地加载我的模式并加速我的emacs启动.

我想use-package自动从elpa/melpa /下载我的模式...感谢包lib.

但似乎我需要在每次使用之前执行一个(package-refresh-contents),否则use-package会引发错误.

(error "Package `deft' is not available for installation")
Run Code Online (Sandbox Code Playgroud)

我的conf是

(require 'use-package)
(package-refresh-contents) ; take forever at each emacs start
(use-package deft 
  :ensure t)
Run Code Online (Sandbox Code Playgroud)

但是(包 - 刷新内容)需要永远.我们不能将(package-refresh-contents)委托给use-package使用它一次吗?

lun*_*orn 6

use-package不提供此功能.您可以使用以下代码:

(unless package-archive-contents
  (package-refresh-contents))
Run Code Online (Sandbox Code Playgroud)

这只会更新包列表,如果它是空的,这应该足以避免您的问题.您仍然需要手动更新包,不过,与M-x list-packagesU.