Emacs , use-package and package-refresh-contents

7
在我的init.el文件中,我想使用"use-package"来延迟加载我的模式并加快emacs的启动速度。我希望"use-package"可以通过包库自动从elpa/melpa/...下载我的模式。
但是似乎每次都需要执行(package-refresh-contents),否则use-package会出现错误。
(error "Package `deft' is not available for installation")

我的配置如下:
(require 'use-package)
(package-refresh-contents) ; take forever at each emacs start
(use-package deft 
  :ensure t)

但是(package-refresh-contents)需要很长时间。 我们能不能将(package-refresh-contents)交给use-package来代理,这样只需一次完成?

1个回答

10

use-package 不提供此功能。您可以改用以下方式:

(unless package-archive-contents
  (package-refresh-contents))

如果软件包列表为空,这将只更新软件包列表,这应该足以避免您的问题。但是,您仍然需要手动使用M-x list-packagesU更新软件包。


1
谢谢,我尝试了这个语法,并且在使用全新的.emacs.d/配置文件第一次使用emacs时,我也遇到了错误。根据你所写的,这是正常的,因为我没有刷新软件包列表。对我来说,即使我刷新了软件包列表,每次都会进行刷新... - taharqa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接