我有兴趣标准化我们几个人使用的emacs配置(~5个人)。
有没有办法从lisp函数安装ELPA包,如果我们知道我们想要的包集合,可以包含在脚本中?我能找到的就是如何打电话 list-packages
并以图形方式安装各个包。
我有兴趣标准化我们几个人使用的emacs配置(~5个人)。
有没有办法从lisp函数安装ELPA包,如果我们知道我们想要的包集合,可以包含在脚本中?我能找到的就是如何打电话 list-packages
并以图形方式安装各个包。
你需要的是使用 package-install
功能,如:
(mapc 'package-install install-list)
该 install-list
变量应包含要安装的包的名称列表。
您可以做的另一件事是创建自己的包,这取决于您要安装的其他包。然后安装该包。
可以从文件安装包:
M-x package-install-from-file
或者您可以使用包制作自己的包存档,您可以使用elpakit来执行此操作。
您也可以从命令行执行此操作:
emacs -e "(progn (package-initialize)(package-install 'packagename))"
如果您愿意,可以从操作系统命令行安装。
您可能还想看看 木桶。它允许您在名为file的文件中声明要安装的软件包 Cask
使用DSL描述 这里。然后从命令行转到该目录并运行 cask
。它将安装在中声明的所有包 Cask
文件。
在init文件中,您需要添加以下行以使用cask安装的软件包。
(require 'cask "~/.cask/cask.el")
(cask-initialize)
此外,您还可以获取已安装的ELPA包的列表
(defun eab/print-0 (body)
"Insert value of body in current-buffer."
(let ((print-length nil)
(eval-expression-print-length nil))
(prin1 `,body (current-buffer))))
(defun eab/package-installed ()
"Get the list of ELPA installed packages."
(mapcar (lambda (x) (car x)) package-alist))
(eab/print-0 (eab/package-installed))
和el-get包一样
(defun eab/el-get-installed ()
"Get the list of el-get installed packages."
(mapcar 'intern
(el-get-list-package-names-with-status "installed")))
(eab/print-0 (eab/el-get-installed))