emacs - 使用 init.el 和包安装在新机器上设置 emacs
问题描述
可能像许多 emacs 用户一样,我有自己的 emacs 配置文件~/.emacs.d/init.el
,用于按照我喜欢的方式配置 emacs。因此,当我开始使用新机器时,我会将我的 emacs 配置文件复制到它。现在,问题是我的 emacs 配置文件依赖于我通过 emacs 包管理器安装的一些包,但由于缺少包,我无法成功安装包。
我当然可以在没有我的配置文件emacs -q
(
所以我通常做的是暂时注释掉我的emacs配置文件中的东西,这样我就可以成功安装包,然后我可以取消注释并用我的完整配置重新启动emacs。但这很麻烦,通常在我注释掉所有需要的东西之前需要尝试几次。当然必须有一个更好的方法,我错过了?
解决方案
您可以做的是声明您使用的包。然后添加一些每次打开 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)))
你很好。
推荐阅读
- python - 将 numpy.str 与包含单个字符串的集合进行比较
- python - 在 Python 中检测线的倾斜度
- c# - MailKit 无法解析主机名
- java - Java“填空”练习
- swift - CIImage 到 UIImage 扭曲颜色 SWIFT
- react-native - 需要帮助在 React 本机应用程序中实现类别
- kotlin - Gradle 和 Jackson 依赖
- javascript - 为什么 onclick 仅在第一次单击时起作用,然后停止工作?
- signalr - 如何在 AutoFac 中注册强类型 signalR Hub 以在 IHostedService 或 BackgroundService 中注入 IHubContext
- r - 如何在 Power BI 中使用 R 访问 Excel 工作簿的工作表?