在emacs中使用不同的包存储库
我有一个在emacs中使用不同的包存储库,emacs,package,Emacs,Package,我有一个.emacs文件,在该文件中,我使用软件包安装在初始化时从存储库自动安装所需的软件包。到目前为止,我使用的是http://melpa.milkbox.net/packages/repository,这是我从在线教程中获得的。在某个时候,我试图安装auctex软件包,但收到一条错误消息,告诉我该软件包在该存储库下不可用。我查过了,这是真的。我在GNU存储库下找到了auctex包:http://elpa.gnu.org/packages/ 我试图做的是:将第二个包存储库(本例中为GNU EL
.emacs
文件,在该文件中,我使用软件包安装
在初始化时从存储库自动安装所需的软件包。到目前为止,我使用的是http://melpa.milkbox.net/packages/
repository,这是我从在线教程中获得的。在某个时候,我试图安装auctex
软件包,但收到一条错误消息,告诉我该软件包在该存储库下不可用。我查过了,这是真的。我在GNU存储库下找到了auctex
包:http://elpa.gnu.org/packages/
我试图做的是:将第二个包存储库(本例中为GNU ELPA)添加到我的.emacs
文件中,package install
如果需要安装第一个存储库(MELPA)下不可用的包,可以从中获取数据
我不是Elisp的专家(事实上,我是一个纯粹的初学者),我浏览了各种线程来找到解决方案。这是我的实际代码:
(package-initialize)
(require 'package)
(add-to-list 'package-archives
'(("melpa" . "http://melpa.milkbox.net/packages/")
("gnu" . "http://elpa.gnu.org/packages/")) t)
(package-refresh-contents)
(dolist (package '(use-package))
(unless (package-installed-p package)
(package-install package)))
(use-package paredit :ensure t)
(dolist (package '(auctex ; <-- Not available under MELPA!
auto-complete
auto-complete-c-headers
magit
sr-speedbar
yasnippet
))
(unless (package-installed-p package)
(package-install package))
(require package))
并且,auctex
包仍然正确加载。您的
(add-to-list 'package-archives
'(("melpa" . "http://melpa.milkbox.net/packages/")
("gnu" . "http://elpa.gnu.org/packages/")) t)
不向列表中添加两个条目:addtolist
只向列表中添加一个元素。在这种情况下,它将添加元素(“melpa”)http://melpa.milkbox.net/packages/“gnu”http://elpa.gnu.org/packages/)
这不是有效的元素
你会想要的
(add-to-list 'package-archives
'("melpa" . "http://melpa.milkbox.net/packages/"))
(add-to-list 'package-archives
'("gnu" . "http://elpa.gnu.org/packages/"))
但是请注意,第二个添加到列表
应该是多余的,因为包归档文件默认包含(“gnu”)http://elpa.gnu.org/packages/“
已经存在
还有一件事:你不应该在安装这些软件包后要求它们(就像你在代码的最后一行所做的那样),因为这些软件包应该有足够的自动加载功能,使这些需要的软件包不再需要(而且有害的是它会减慢你的启动速度).你想用这个做什么:(dolist(package'(使用package))…)
?迭代列表,其唯一元素是symboluse package
——仅迭代一次,将变量package
绑定到symboluse package
。
(add-to-list 'package-archives
'("melpa" . "http://melpa.milkbox.net/packages/"))
(add-to-list 'package-archives
'("gnu" . "http://elpa.gnu.org/packages/"))