Emacs实用插件分享
Emacs 是一个强大的可扩展文本编辑器,其真正的力量来自于丰富的插件生态。今天我来分享一些我日常使用中非常实用的插件。我的完整配置文件可以在 GitHub 上找到。
AIGC:这篇文章由AI生成
包管理器:straight.el + use-package
我的配置使用 straight.el 作为包管理器,配合 use-package 来组织配置。这是一个现代且强大的组合:
1 | (setq straight-use-package-by-default t) |
优点:
straight.el直接从源代码安装,不依赖 MELPA 包列表use-package提供声明式配置,按需加载提升启动速度
1. 补全系统
Vertico + Orderless + Marginalia
这是 Emacs 现代化的补全铁三角:
1 | ;; 垂直补全界面 |
优点:
vertico:垂直显示补全候选项,界面清爽orderless:支持任意顺序的关键字匹配,非常灵活marginalia:在补全列表旁显示文档和类型信息
2. 搜索与导航
Consult
增强的文件内搜索和跳转:
1 | (use-package consult |
优点:
- 比内置
isearch更强大,支持预览 - 集成 ripgrep 实现项目级搜索
- 支持中文搜索配置
Avy
快速跳转到任意字符:
1 | (use-package avy |
优点:
- 无需鼠标即可跳转到屏幕任意位置
- 输入几个字符即可快速定位
Ace-window
快速窗口切换:
1 | (use-package ace-window |
优点:
- 将每个窗口标记为字母,按字母即可切换
- 多窗口工作时效率极高
3. Git 集成
Magit
可能是 Emacs 中最强大的 Git 界面:
1 | (use-package magit |
优点:
- 完整的 Git 功能支持,比命令行更直观
- 交互式的 staging、commit、rebase
- 内置 diff 和 blame 查看
Git-gutter
在 buffer 中显示修改标记:
1 | (use-package git-gutter |
优点:
- 实时显示新增、删除、修改的行
- 无需离开当前文件即可了解改动
4. 编辑增强
Company
代码自动补全:
1 | (use-package company |
优点:
- 轻量级,支持多种后端
company-box提供现代化的图标和文档弹窗
Vundo
可视化撤销历史:
1 | (use-package vundo |
优点:
- 树状展示撤销历史,分支清晰可见
- 比
undo-tree更轻量,无需额外依赖
Multiple-cursors
多光标编辑:
1 | (use-package multiple-cursors |
优点:
- 同时编辑多处相同内容
- 按住 Ctrl+Shift 点击即可添加光标
Evil-nerd-commenter
快速注释:
1 | (use-package evil-nerd-commenter |
优点:
- 智能判断注释或取消注释
- 支持多种语言的注释格式
5. 视觉增强
Doom-themes + Doom-modeline
美观的主题和状态栏:
1 | (use-package doom-themes |
优点:
doom-dracula主题配色舒适,长时间编码不累眼doom-modeline现代化状态栏,信息显示丰富
Rainbow-delimiters
彩虹括号:
1 | (use-package rainbow-delimiters |
优点:
- 不同层级的括号显示不同颜色
- 极大提升嵌套代码的可读性
Rainbow-mode
显示颜色代码的实际颜色:
1 | (use-package rainbow-mode |
优点:
- CSS 开发神器
- 支持 hex、rgb、hsl 等格式
Hl-todo
高亮 TODO 等关键词:
1 | (use-package hl-todo |
优点:
- 醒目的颜色标记待办事项
- 支持自定义关键词和颜色
Focus
专注模式:
1 | (use-package focus) |
优点:
- 高亮当前段落/函数,淡化其他内容
- 帮助集中注意力
6. 文件与项目管理
Dirvish
增强版文件管理器:
1 | (use-package dirvish |
优点:
- 比
dired更现代化 - 支持文件预览、图片缩略图
Projectile
项目管理:
1 | (use-package projectile |
优点:
- 自动识别项目根目录
- 快速切换项目文件、搜索项目内容
Treemacs
文件树侧边栏:
1 | (use-package treemacs |
优点:
- 类似 VS Code 的文件树
- 支持 LSP 符号树集成
7. 开发工具
LSP 客户端
支持 Eglot 或 lsp-mode:
1 | ;; 轻量级方案:Eglot |
优点:
- 完整的 IDE 功能:跳转定义、自动补全、重构
- 支持几乎所有主流语言
Flycheck
语法检查:
1 | (use-package flycheck |
优点:
- 实时语法错误提示
- 支持多种语言的 linter
Treesit-auto
Tree-sitter 语法高亮:
1 | (use-package treesit-auto |
优点:
- 比传统正则高亮更精确
- 语法错误更易发现
8. 启动与界面
Dashboard
自定义启动页:
1 | (use-package dashboard |
优点:
- 显示最近文件、项目、书签
- 可自定义欢迎图片和文字
Which-key
按键提示:
1 | (use-package which-key |
优点:
- 输入前缀键后显示可用命令
- 学习新快捷键的神器
9. 性能优化
GCMH
垃圾回收优化:
1 | (use-package gcmh |
优点:
- 减少 Emacs 卡顿
- 自动调整 GC 策略
结语
以上是我 Emacs 配置中最常用的一些插件。Emacs 的魅力就在于其无限的可定制性,你可以根据自己的工作流选择和组合插件。
完整的配置文件和最新更新请访问我的 GitHub 仓库。
希望这份分享对你有帮助,祝编码愉快!
