当 Emacs 的配置文件和插件多起来之后,如何合理的组织和管理他们可能就是个问题了。有两种方法可以方便地管理配置文件和插件。
第一种方法:
将插件统一放在一个文件夹中,并且创建 subdirs.el(site-lisp 目录中也有这文件),使得 Emacs 能够自动自动搜索其中的子目录。然后是将配置文件安其用途分为几个文件,并放在一个文件夹中。
具体的做法是先创建文件夹 ~/.emacs.d/config 和 ~/.emacs.d/packages ( ~ 符号表示 HOME 路径),分别存放配置文件和插件包,在 packages 文件夹中创建 subdirs.el 文件,加入以下内容:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun my-add-subdirs-to-load-path (dir)
(let ((default-directory (concat dir "/")))
(setq load-path (cons dir load-path))
(normal-top-level-add-subdirs-to-load-path)))
(my-add-subdirs-to-load-path "~/.emacs.d/packages")
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
再在 .emacs 中加入:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(load "~/emacs/packages/subdirs.el")
(mapc 'load (directory-files "~/.emacs.d/config" t "\.el$"))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
*****************************************************************
=================================================================
*****************************************************************
第二种方法:
新建文件夹
~/.emacs.d/packages /* 存放扩展文件 */
~/.emacs.d/config /* 存放配置文件 */
~/.emacs.d/my_private_config /* 存放私人配置文件 */
.emacs 的内容为
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;location of additional packages
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(setq my-dot-path "~/.emacs.d/") ;;设置 my-dot-path 的路径
(setq my-site-el-path (concat my-dot-path "packages/")) ;; 设置路径, concat 为连接意思
(add-to-list 'load-path my-site-el-path)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;load all my settings
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(setq my-el-path (concat my-dot-path "config/"))
(setq my-private-el-path (concat my-dot-path "my_private_config/"))
(mapc 'load (directory-files my-el-path t "\\.el\\'"))
第一种方法:
将插件统一放在一个文件夹中,并且创建 subdirs.el(site-lisp 目录中也有这文件),使得 Emacs 能够自动自动搜索其中的子目录。然后是将配置文件安其用途分为几个文件,并放在一个文件夹中。
具体的做法是先创建文件夹 ~/.emacs.d/config 和 ~/.emacs.d/packages ( ~ 符号表示 HOME 路径),分别存放配置文件和插件包,在 packages 文件夹中创建 subdirs.el 文件,加入以下内容:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun my-add-subdirs-to-load-path (dir)
(let ((default-directory (concat dir "/")))
(setq load-path (cons dir load-path))
(normal-top-level-add-subdirs-to-load-path)))
(my-add-subdirs-to-load-path "~/.emacs.d/packages")
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
再在 .emacs 中加入:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(load "~/emacs/packages/subdirs.el")
(mapc 'load (directory-files "~/.emacs.d/config" t "\.el$"))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
*****************************************************************
=================================================================
*****************************************************************
第二种方法:
新建文件夹
~/.emacs.d/packages /* 存放扩展文件 */
~/.emacs.d/config /* 存放配置文件 */
~/.emacs.d/my_private_config /* 存放私人配置文件 */
.emacs 的内容为
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;location of additional packages
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(setq my-dot-path "~/.emacs.d/") ;;设置 my-dot-path 的路径
(setq my-site-el-path (concat my-dot-path "packages/")) ;; 设置路径, concat 为连接意思
(add-to-list 'load-path my-site-el-path)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;load all my settings
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(setq my-el-path (concat my-dot-path "config/"))
(setq my-private-el-path (concat my-dot-path "my_private_config/"))
(mapc 'load (directory-files my-el-path t "\\.el\\'"))
(mapc 'load (directory-files my-private-el-path t "\\.el\\'"))