首页 > 解决方案 > 使用 init.el 和包安装在新机器上设置 emacs

问题描述

可能像许多 emacs 用户一样,我有自己的 emacs 配置文件~/.emacs.d/init.el,用于按照我喜欢的方式配置 emacs。因此,当我开始使用新机器时,我会将我的 emacs 配置文件复制到它。现在,问题是我的 emacs 配置文件依赖于我通过 emacs 包管理器安装的一些包,但由于缺少包,我无法成功安装包。

我当然可以在没有我的配置文件emacs -q

所以我通常做的是暂时注释掉我的emacs配置文件中的东西,这样我就可以成功安装包,然后我可以取消注释并用我的完整配置重新启动emacs。但这很麻烦,通常在我注释掉所有需要的东西之前需要尝试几次。当然必须有一个更好的方法,我错过了?

标签: emacsinstallationstartup

解决方案


您可以做的是声明您使用的包。然后添加一些每次打开 Emacs 时都会运行的代码。它检查该列表中的每个软件包是否已安装。如果不是,它会安装它。

我的配置文件中的一个简单示例:

;; first, declare repositories
(setq package-archives
      '(("gnu" . "http://elpa.gnu.org/packages/")
        ("marmalade" . "http://marmalade-repo.org/packages/")
        ("melpa" . "http://melpa.org/packages/")))

;; Init the package facility
(require 'package)
(package-initialize)
;; (package-refresh-contents) ;; this line is commented 
;; since refreshing packages is time-consuming and should be done on demand

;; Declare packages
(setq my-packages
      '(cider
        projectile
        clojure-mode
        expand-region
        helm
        jinja2-mode
        magit
        markdown-mode
        paredit
        wrap-region
        yaml-mode
        json-mode))

;; Iterate on packages and install missing ones
(dolist (pkg my-packages)
  (unless (package-installed-p pkg)
    (package-install pkg)))

你很好。


推荐阅读