如果不给你的emacs配置起个独特名字,那么你就没有自己的emacs配置。
起名engine-emacs是因为这些天读了一本书:「人类飞翔史」。
早先的风筝,热气球,氢气球等只能在高空中随风逐流。即使发明家制造出来螺旋状,仅靠着脚蹬手摇的人力驱动,在高空中就犹如一根竹竿搅动大海,再筋疲力尽也是徒劳无功。
直到蒸汽动力引擎在工业革命中崭露头角,飞行器才得以挣脱风的束缚,按照人的意愿首次实现定向飞行。
因此,我希望Emacs能给我带来效率,作按照我的意愿前进的动力引擎engine-emacs。
首先,我没有自己的配置,用的doom-emacs,加了一丢点儿自己的使用习惯。这个engine-emacs项目(或者目录)就是doom-emacs的.doom.d目录(将本项目下载到$HOME目录下之后,更改命名为.doom.d即可)。
doom-emacs分为.emacs.d和.doom.d两大部分。其中.doom.d是用户自定义配置,我也不在.emacs.d中保存任何自定义的内容。自定义信息全部保存在.doom.d中,包括bookmark,snippets等。
在任何时刻,将.emacs.d目录全部删掉,仅保留.doom.d,然后运行M-x doom-reload,便能全须全尾的恢复。
其次,我是在windows11系统上运行的emacs,有些配置和问题是平台独有的。
最后,建议用outshine来阅读elisp的配置代码,结构清晰且赏心悦目。
目录结构如下。其中init.el, package.el, config.el, custom.el为doom-emacs的标准配置文件,此处不再赘述。
bookmarks-windows文件保存着自定义的bookmarks,snippet目录里存着全部自定义的snippets,theme目录是自定义主题。
engine.emacs目录里的6个文件是给config.el服务的分类配置文件。
|-- init.el |-- packages.el |-- config.el |-- custom.el |-- bookmarks-windows |-- engine.emacs | |-- engine-org-agenda.el | |-- engine-org-babel.el | |-- engine-org-note.el | |-- iscroll.el | |-- email.el | `-- programming-aid.el |-- snippets |-- themes | `-- work-theme.el |-- images |-- readme.org
所有的配置都写在config.el中,暂时分了九个类别。
doom模式是vim模式,我用的是vanilla emacs。于是这第一行配置最为关键。
(setq evil-default-state 'emacs)
另外也在key change log部分记录主要的变更。变更记录写在头部,比从git log中查看更加直观。
键位绑定都放在此处,光标的移动,拼写检查,搜索,拼写纠正等等
文件与目录相关内容,还包括register, bookmarks, dired, archive等等
themes, modeline, input-methods, emoj, fonts, icons等等
窗口管理与Frame管理等
我主要用emacs来写笔记,因此org-mode是核心。具体配置在
(add-to-list 'load-path "~/.doom.d/engine.emacs")
(require 'engine-org-babel)
(require 'engine-org-agenda)
(require 'engine-org-note)
(require 'email)
(require 'iscroll)
dictionaries, epub-reading 等
包括环境配置等,另有programming-aid.el分类配置。
这应该在7.programming里。但在windows上,常常出现coding-system的异常报错,因此单独拿出来。
记录配置过程中踩的雷。
以上, engine-emacs,盼着每次打开,都能有强劲动力的推背感。