所以我下载了一个.el文件,我把它放在~/.emacs.d/elpa/
文件夹中,但它不会出现在M-x list-packages
上。如何使其显示在那里或如何安装此文件/包?
答案 0 :(得分:2)
安装Emacs软件包有两种方法:键入M-x list-packages
并从列表中安装,让Emacs为您下载,或者自行下载软件包并使用M-x package-install-file
进行安装。< / p>
在第一种情况下,请注意有几种不同的包存档。变量package-archives
的默认值仅包含GNU ELPA,但大多数人都希望将MELPA添加到该列表,因为它有更多的包。为此,您需要将以下内容添加到.emacs
文件中(从MELPA网页复制):
(require 'package) ;; You might already have this line
(add-to-list 'package-archives
'("melpa" . "https://melpa.org/packages/"))
(when (< emacs-major-version 24)
;; For important compatibility libraries like cl-lib
(add-to-list 'package-archives '("gnu" . "http://elpa.gnu.org/packages/")))
(package-initialize) ;; You might already have this line
之后,输入M-x list-packages
应该列出比您需要的更多的包:)
有两种类型的包:单文件包和多文件包。前者可以作为单个.el
文件下载,而后者可以作为tarball(.tar
)分发。这两种类型都可以使用M-x package-install-file
安装。
请注意,并非每个.el
文件都可以作为包安装。文件开头的注释需要遵循某个约定,记录在Emacs Lisp参考手册的Simple packages节点中。
这样就可能导致您下载的.el
文件无法作为程序包安装。在这种情况下,您应该将它放在其他目录中(~/.emacs.d/elpa
仅用于已安装的包),将该目录添加到load-path
变量,并require
包。如果您有foo.el
并将其放在~/path/to/foo
中,则看起来像这样:
(add-to-list 'load-path "~/path/to/foo")
(require 'foo)
答案 1 :(得分:0)
.el
文件不是包。通过ELPA安装它可能非常适合手动下载静态.el
文件;或许维护者有一个主页,其中包含ELPA(或Marmalade等)的说明。
特别是,一个软件包将在可用时接收更新,因此您不会永远停留在越来越过时的非托管版本上(尽管安静,全自动更新尚不可用或不可行,AFAICT)。 p>
但是如果你必须只使用已下载的文件,只要该目录包含在load-path
中,就可以将它放在任何你喜欢的地方。但是,手动删除elpa
目录是一个坏主意;把它放在其他地方。
在文件顶部附近查找评论以获取任何其他说明;例如,任何自动加载都可能需要单独配置,通常完全手动配置。
这曾经是你在旧版本的Emacs中总是做事的方式,所以你应该发现互联网仍然实际上充满了指南和教程,这些指南和教程解释了这种机制的更精细细节,如果单独的答案不是这样的话。足够了。