我希望能够统一我们几个人(大约5人)使用的emacs配置。
如果我们知道我们需要安装哪些ELPA包,是否有一种方法可以从lisp函数中安装这些包,并将其包含在脚本中?我能找到的只是如何通过图形界面调用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))"
如果愿意,也可以从操作系统命令行中进行安装。
此外,您可以通过以下方式获取已安装的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))