Doom Emacs 实用技巧
Doom Emacs 是现代化的 Emacs 配置框架,结合 Vim 键位、模块化架构、超快启动速度,适合所有语言开发者。
本文不仅提供 Doom Emacs 的实用技巧总结,还包含 Go、Python、Flutter 三种主流开发语言的配置与插件支持,助你快速搭建属于自己的高效开发环境。
一、Doom Emacs 快速配置回顾
Doom 的核心配置位于 ~/.doom.d/
:
文件 | 功能说明 |
---|---|
init.el |
启用模块(语言、功能、工具) |
config.el |
日常配置(快捷键、hook 等) |
packages.el |
安装自定义插件 |
每次更改后请运行:
doom sync && doom restart
二、通用实用技巧速查
快捷键 | 功能说明 |
---|---|
SPC f f |
打开文件 |
SPC p p |
切换项目 |
SPC b b |
buffer 切换 |
SPC / |
全局搜索(ripgrep) |
SPC g g |
Magit 打开 Git 面板 |
SPC c c |
编译当前 buffer |
SPC w / |
垂直分屏 |
SPC TAB TAB |
最近 buffer 切换 |
SPC h d h |
查看光标处帮助 |
三、Go 开发配置
1. 启用模块
在 ~/.doom.d/init.el
启用:
:lang
(go +lsp)
2. 安装依赖
go install golang.org/x/tools/gopls@latest
可选安装:
go install github.com/go-delve/delve/cmd/dlv@latest
3. 格式化支持(config.el
)
(after! go-mode
(setq gofmt-command "goimports")
(add-hook 'before-save-hook #'gofmt-before-save))
四、Python 开发配置
1. 启用模块
:lang
(python +lsp +pyright +poetry)
2. 安装依赖
推荐使用 pyenv 和 poetry 管理环境:
pip install 'python-lsp-server[all]'
# or
npm i -g pyright
3. 配置格式化工具(可选)
(setq-hook! python-mode +format-with 'black)
五、Flutter 开发配置
Flutter 支持通过 Dart + LSP + flutter
命令组合实现。
1. 启用模块
:lang
(dart +lsp)
:tools
lsp
2. 安装 Flutter SDK 和分析器
flutter doctor
flutter pub global activate devtools
确保 dart
和 flutter
命令在 $PATH
中可用。
3. LSP 服务配置(默认已启)
你可以检查是否启用了 lsp-mode
和 lsp-dart
:
(use-package! lsp-dart
:after lsp-mode
:config
(setq lsp-dart-sdk-dir "~/flutter/bin/cache/dart-sdk"))
4. 开发建议
- 使用
flutter emulators
启动模拟器 - Emacs 中运行 DevTools 或通过浏览器打开
- 热重载建议绑定快捷键:
(map! :leader
:desc "Flutter Reload" "c r" #'lsp-dart-hot-restart)
六、调试支持(DAP)
Doom Emacs 支持基于 DAP 的调试体验:
:tools
(debugger +lsp)
安装 dap-mode 后即可调试 Go、Python(需 dap-python)、Dart。
七、自定义快捷键示例(config.el)
(map! :leader
:desc "Open TODO" "o t" (lambda () (interactive) (find-file "~/todo.org"))
:desc "Format Buffer" "b f" #'format-all-buffer
(:prefix ("c" . "code")
:desc "Compile" "c" #'compile
:desc "LSP Rename" "r" #'lsp-rename)
(:prefix ("g" . "git")
:desc "Status" "g" #'magit
:desc "Blame" "b" #'magit-blame))
八、插件推荐(packages.el)
;; Flutter/Dart
(package! lsp-dart)
(package! hover) ;; Optional GUI debugger
;; Go tools
(package! go-eldoc)
;; Python tools
(package! pip-requirements)
;; UI 优化
(package! doom-themes)
(package! doom-modeline)
(package! rainbow-delimiters)
九、性能建议
- 删除你不用的模块,例如
:email
,:app
,:tools debugger
- 用
native-comp
编译 Emacs(Emacs 28+) - 使用
doom build
编译插件 - 禁用多余的
lsp-ui
特性:
(setq lsp-ui-sideline-enable nil
lsp-ui-doc-enable nil)
十、参考链接
Doom Emacs 并非只是 Emacs + Vim,而是你高效开发的 终极黑客工作台。