我的emacs配置文件(持续更新):https://github.com/dnxbjyj/.emacs.d
为什么要模块化?
方便管理各项配置,尤其是在自定义配置和插件越来越多的时候,模块化将会让你的配置保持条理性,并且更易于扩展。
我的emacs配置文件模块化结构
以下是~/.emacs.d/
目录下的文件结构:
|-- init.el # 全局入口配置文件
|-- local-lisp # 本地化配置文件
| |-- init-quick-access-local.el
|-- site-lisp # 通用配置文件
|-- config # 详细配置
| |-- init
| | |-- common # 基本配置
| | | |-- init-better-default.el
| | | |-- init-dired.el
| | | |-- init-key-binding.el
| | | |-- init-my-function.el
| | | |-- init-network.el
| | | |-- init-package.el
| | | |-- init-quick-access.el
| | | |-- init-theme.el
| | | |-- init-ui.el
| | | |-- ...
| | |-- plugin # 各种插件初始化配置
| | |-- init-auto-save.el
| | |-- init-company-mode.el
| | |-- init-helm.el
| | |-- init-insert-translated-name.el
| | |-- init-org-mode.el
| | |-- init-org-pomodoro.el
| | |-- init-virtualenvwrapper.el
| | |-- init-watch-other-window.el
| | |-- init-youdao-dictionary.el
| | |-- ...
| |-- init-config.el # 通用配置初始化入口
| |-- template.el # 配置文件模板
|-- extension # 插件目录
|-- auto-save # 自动保存插件
| |-- auto-save.el
|-- youdao-dictionary-20180714.414 # 有道词典插件
|-- youdao-dictionary-autoloads.el
|-- youdao-dictionary-pkg.el
|-- youdao-dictionary.el
|-- youdao-dictionary.elc
|-- ...
关键配置文件说明
-
~/.emacs.d/init.el
文件:
;;;;;;;;;; .emacs.d全局配置文件入口 ;;;;;;;;;;
(package-initialize)
;; 递归遍历加载路径,将这些路径加入到加载列表中
(defun add-subdirs-to-load-path(dir)
"Recursive add directories to `load-path`"
(let ((default-directory (file-name-as-directory dir)))
(add-to-list 'load-path dir)
(normal-top-level-add-subdirs-to-load-path)))
;; 递归加载~/.emacs.d/site-lisp目录
(add-subdirs-to-load-path "~/.emacs.d/site-lisp/")
;; 递归加载~/.emacs.d/local-lisp目录
(add-subdirs-to-load-path "~/.emacs.d/local-lisp/")
;; 本地化快速访问配置
(require 'init-quick-access-local)
;; 加载init-config模块
(require 'init-config)
-
~/.emacs.d/site-lisp/config/init-config.el
文件:
;;;;;;;;;; 包加载入口 ;;;;;;;;;;
;;;; common start:通用设置
;; 更好的默认设置
(require 'init-better-default)
;; 加载dired模式的自定义配置
(require 'init-dired)
;; 按键绑定
(require 'init-key-binding)
;; 自定义函数
(require 'init-my-function)
;; 网络配置
(require 'init-network)
;; 加载包
(require 'init-package)
;; 快速访问按键配置
(require 'init-quick-access)
;; 主题设置
(require 'init-theme)
;; 界面外观设置
(require 'init-ui)
;;;; common end
;;;; plugin start:插件初始化设置
;; 自动保存插件
(require 'init-auto-save)
;; 加载company-mode的自定义配置
(require 'init-company-mode)
;; helm插件配置
(require 'init-helm)
;; 写代码中-英文翻译辅助插件
(require 'init-insert-translated-name)
;; org-mode配置
(require 'init-org-mode)
;; org-pomodoro插件配置
(require 'init-org-pomodoro)
;; virtualenvwrapper虚拟化环境配置
(require 'init-virtualenvwrapper)
;; 滚动另一个窗口插件配置
(require 'init-watch-other-window)
;; 有道词典配置
(require 'init-youdao-dictionary)
;;;; plugin end
;; 提供init-config模块
(provide 'init-config)
-
~/.emacs.d/site-lisp/config/template.el
文件:
;;;;;;;;;; xxx模块 ;;;;;;;;;;
;;;; Desc:
;;;; xxx start here
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;; Require:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;; Code:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;; Provide:
(provide 'xxx)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;; xxx end here
网友评论