Emacs 从零开始写配置
据 ChatGPT 所说,Emacs 启动顺序为:
1 启动 C 核心 2 初始化 load-path 3 加载 site-start.el(系统级配置) 4 加载 early-init.el(用户早期配置) 5 初始化 package.el 6 加载 init.el 或 .emacs(用户配置) 7 Emacs 完全启动
平台
load-path
设想的插件管理方式:自动追加插件目录,在插件出问题时可以全删干净,不影响早期有效配置。
- 新建一个目录,当自留地
- 把自留地加入 load-path,追加而不抢先
- 试用插件时,在自留地里,创建插件目录
- 插件目录也加入 load-path,追加而不抢先。一级,不递归
- provide 'name 及 require 'name
- 试用调整,满意就留,不满意就删该插件目录
;; 个人自留地,根目录
(defvar qlzq-personal-dir (expand-file-name "qlzq-emacs-config/" user-emacs-directory))
;; 确保存在
(unless (file-directory-p qlzq-personal-dir)
(make-directory qlzq-personal-dir t))
;; 把根目录加入 load-path
(add-to-list 'load-path qlzq-personal-dir t)
;; 把每个一级子目录加入 load-path(只加入含 .el/.elc 的目录)
(dolist (sub (directory-files qlzq-personal-dir t "^[^.]" t))
(when (and (file-directory-p sub)
(cl-some (lambda (f) (string-match-p "\\.el\\(c\\)?\\'" f))
(directory-files sub)))
(add-to-list 'load-path sub t)))