1

有一个类似于包管理器的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 之后安装)甚至在安装完成之前运行。

我怎样才能使它相似:首先运行 -> 安装 el-get -> 安装我的包?

我认为这里的核心问题是如何等到安装 el-get ?

4

2 回答 2

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)
于 2012-10-25T21:22:52.070 回答
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 是否可用。如果它不可用,它会安装 rigtaway。

一旦 el-get 下来,它将占用其余的软件包。

于 2012-04-12T10:40:32.763 回答