【问题标题】:Customize the list of packages that emacs-prelude provides自定义 emacs-prelude 提供的包列表
【发布时间】:2012-08-09 00:40:41
【问题描述】:

我在this link 看到 emacs prelude 如何确保在 emacs 启动时安装一组软件包。我想知道是否可以以某种方式扩展变量 prelude-packages 以添加一些其他包,而不更改 prelude-packages.el 文件?

除非我想知道如何定义在启动时安装的软件包列表,如果它们当前没有安装的话。

【问题讨论】:

    标签: emacs elisp emacs-prelude


    【解决方案1】:

    您可以在 Prelude 的personal/ 目录中放置一个.el 文件。 Prelude 按字母顺序加载它在其中找到的任何 .el 文件。以下是我的personal/00-packages.el 文件的内容:

    (require 'package)
    (add-to-list 'package-archives
                 '("marmalade" .
                   "http://marmalade-repo.org/packages/"))
    (package-initialize)
    
    ;; My packages
    (setq prelude-packages (append '(
                                     drupal-mode
                                     nginx-mode
                                     ) prelude-packages))
    
    ;; Install my packages
    (prelude-install-packages)
    

    “00”被添加到文件名中,以确保在所有个人定制之前加载文件。将您需要的任何新包添加到附加到 prelude-packages 的列表中。

    此外,如果您想使用 MELPA 或 Marmalade 中不可用的任何模式,您只需将模式的文件放到个人文件夹中,Prelude 就会在加载时将其拾取。如果对该模式有任何自定义,只需创建另一个 .el 文件并在其中添加 Emacs Lisp 代码。

    【讨论】:

      【解决方案2】:

      Prelude recommends 使用

      (prelude-require-packages '(some-package some-other-package))
      

      如果你有几个包。或者,如果您只想添加一个包:

      (prelude-require-package 'some-package)
      

      如果你愿意,你仍然可以在一个变量中维护你的包列表:

      (setq my-packages '(drupal-mode nginx-mode toto-mode)
      (prelude-require-package my-packages)
      

      【讨论】:

        【解决方案3】:

        在您的 .emacs 文件中,您可以添加这样的代码(与您发送的链接中的代码非常相似)来检查是否安装了每个包,如果没有安装它:

        (dolist (package '(eredis anything erlang elnode)) 
          (unless (package-installed-p package)
            (package-install package)))
        

        在回答您的问题时,您没有理由在前奏代码运行后不能这样做。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-10-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-12-28
          • 1970-01-01
          相关资源
          最近更新 更多