有el-get个emacs项目,类似于包管理器。
我有我的init.el:
;; ==== el-get stuff ========================================================
(add-to-list 'load-path "~/.emacs.d/el-get/el-get")
(unless (require 'el-get nil t)
(url-retrieve "https://raw.github.com/dimitri/el-get/master/el-get-install.el"
(lambda (s)
(end-of-buffer)
(eval-print-last-sexp))))
;; ==== el-get ==============================================================
(setq my-packages
(append
'(nav)
(mapcar 'el-get-source-name el-get-sources)))
(el-get 'sync my-packages)
所以在第一次运行时它将安装el-get如果它没有安装并且它可以工作,在下一步我希望它使用el-get安装nav(emacs包)但它在第一次运行时不起作用(紧接着el-get installation)甚至在安装完成之前就运行了。
我怎样才能使它相似:首次运行 - >安装el-get - >安装我的包裹?
我认为核心问题是如何等待el-get安装?
答案 0 :(得分:4)
你可能会寻找getelget.el
只需设置el-get-packages,el-get-sources;
;; path to local config
(add-to-list 'load-path
(concat
(file-name-as-directory user-emacs-directory) "site-lisp/"))
(load-library "getelget.el")
您也可以使用此功能
(el-get-sync)
答案 1 :(得分:2)
我用el-get管理我的所有包裹。我非常喜欢它。这是我的init.el
中修改过的代码片段(unless (require 'el-get nil t)
(setq el-get-install-branch "master")
(with-current-buffer
(url-retrieve-synchronously
"https://raw.github.com/dimitri/el-get/master/el-get-install.el")
(end-of-buffer)
(eval-print-last-sexp))
(el-get-emacswiki-refresh el-get-recipe-path-emacswiki t))
在init.el
中进行此操作,如果我去任何新计算机,我只需要将新的init.el放到位并启动emacs。
以上代码段检查天气是否可用。如果它不可用它安装了远程。
一旦el-get出现,它将占用剩余的包裹。