我的 Emacs 个人配置分享
配置仓库地址:
感兴趣可以常关注 我有空会更新
这套配置已经实现了一个比较完整且舒适的工作环境,拷贝了站内很多人的配置 包含:开始屏幕、LSP 补全、DAP 调试、文件树、图标、LLM 集成,以及个人自定义主题下面来简单分享一下各个部分的实现
开始屏幕
开始屏幕主页使用高雅的 Linux 图片 支持折叠 要改todo列表就去改~/.emacs.d/todo.md文件就行了
gnus是我写死在代码里面了 具体文件在lisp/init-home.el
自定义主题
我个人写了一个自定义主题,个人感觉效果还是不错的
LSP 与代码检查
- LSP:使用 Emacs 内置的
eglot实现 - 代码检查:同样使用内置的
flymake
补全与图标
- 补全:使用第三方包
corfu - 图标:使用
nerd-icons
这方面也可以用内置方案替代,算是可选项
DAP 调试
使用第三方包 dape,它提供了好看的 UI 不过对我来说,少了一个方便的悬浮窗功能
另外,我对于dape 中文乱码的问题没有解决,有知道解决方案的朋友欢迎分享一下
文件树
文件树使用内置的 dired 和 speedbar,我对它们做了以下增强:
- 给
dired和speedbar写了一个 SVG 图标的扩展 dired额外实现了基于vc内置包的文件夹忽略着色speedbar实现了内嵌 Emacs 窗口- 顺带实现了
ibuffer的图标显示
版本控制与 Magit
说到 VC,就不得不提 Magit了
在 Windows 上 Magit 特别卡,一个操作基本要好几秒我个人项目中文件数量一多就会卡几分钟,根本原因是大量的 git diff 调用对比了大量文件
为了解决这个问题,我自己写了另外的实现来提速,让 Magit 少干点活 打开 Magit 的时候就不会自动对比文件了,体验顺畅很多
LLM 集成
使用第三方包 gptel因为平时用 Claude CLI 比较多,是有考虑移除它的
Markdown 预览
- 使用第三方包
shr-tag-pre-highlight和shrface,增强了shr的渲染能力 - 自己写了一个请求 GitHub 渲染 Markdown 的扩展包,实现实时更新和预览,感觉效果不错
- 快捷键是
C-c C-p右边就会弹出一个预览窗口了 保存的时候自动刷新
右键菜单
自己写了一个右键菜单,我平时预览别人的仓库比较多 所以默认把lsp给关闭了 不然打开文件太卡太久了 想打开的时候就会右键打开 挺方便的
其它内置包配置
hideshow
给 hideshow 实现了折叠显示的行为优化
原本会把段落折叠成 {...},如果你要折叠if else这种甚至会把if else折叠成一行
现在改成了更友好的显示方式
cc-mode
我 clone 了 tsoding 的 simpc-mode,然后自己改进了一些来替代原来的模式
C++ 的 tree-sitter 给我的体验很糟糕,主要在模块方面我也去看过仓库地址,发现维护者的精力也有限,所以就暂时先用基于正则的方案来写,体验还可以
smtpmail & gnus
- 用
smtpmail发邮件 - 用
gnus管理邮件,基本上就是看个 QQ 邮箱
具体配置可以看配置文件
其它第三方包简略配置
no-littering
这个包管理 .emacs.d 非常好用,保持了 .emacs.d 的整洁
有些第三方包没有自动配置到,需要自己动手去添加建议选用
rg
它的搜索结果比较好看我平时习惯用 grep -rn可选可不选
savefold
保存 hs、outline 等折叠状态对我个人来说是必选
multiple-cursors
非常好用,必选
apheleia
代码格式化配置建议选用 如果主要只写一门语言,也可以不选,自己配置一下就好
eldoc-box
显示 eldoc 文档的,非常好用
不过在补全的时候 eldoc-box-hover-at-point-mode 也会触发,导致界面一下子有 corfu 的窗口和 eldoc-box 的,界面有点混乱,目前没有解决
字体配置
具体的字体配置其实都大差不差 重要的是字体的连体 这里我是这么设置的
(dolist (chars '("::" "..." "->" "=>" "<=" ">=" "!==" "!=" "===" "=="))
(set-char-table-range
composition-function-table
(aref chars 0)
(nconc (char-table-range composition-function-table (aref chars 0))
(list (vector (regexp-quote chars) 0 'font-shape-gstring)))))
就先分享到这里,感谢阅读!












