From 6b04fb82eaa267ddefb33753ab1518c38a3e289c Mon Sep 17 00:00:00 2001 From: Cytrogen Date: Wed, 11 Mar 2026 19:26:51 -0400 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=B7=BB=E5=8A=A0=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E4=BB=8B=E7=BB=8D=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 模块概览:14 个功能模块表格 - 核心功能:补全框架、中英文字体、视觉增强 - 博客工作流:月刊系统、多格式导出、Webmention - Org-mode 增强:动态 Capture/Refile、自定义 Agenda - 开发工具:LSP/Tree-sitter、终端、Git - 阅读:RSS、OPDS 电子书、PDF/EPUB - 通信:邮件、社交、日历 - 工具:离线词典、学习模式 - 快捷键速查表(按功能分组) - 安装说明和外部依赖 --- README.org | 306 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 306 insertions(+) create mode 100644 README.org diff --git a/README.org b/README.org new file mode 100644 index 0000000000000000000000000000000000000000..4db216f7aff8e07a9aa1b372f9d827494a27ab80 --- /dev/null +++ b/README.org @@ -0,0 +1,306 @@ +#+title: Cytrogen's Emacs Configuration +#+author: Cytrogen +#+language: zh-CN + +模块化的 Emacs 配置,面向中文写作、博客发布、阅读和日常开发。 + +Emacs 28.1+ | [[file:themes/darcula-theme.el][Darcula 主题]] + +* 模块概览 + +| 模块 | 说明 | +|---------------------+-------------------------------------------| +| =core-settings.el= | 编码、包管理、补全框架、内置功能增强 | +| =ui-theme-fonts.el= | 字体(中英文/Emoji/Nerd Icons)、主题、视觉 | +| =keybindings.el= | 全局快捷键(70+ 绑定) | +| =utils.el= | Dashboard、文件工具函数 | +| =pkg-org.el= | Org-mode:动态 Capture/Refile、Agenda | +| =pkg-blog.el= | 博客工作流:月刊、Hexo/Gemini 导出 | +| =pkg-writing.el= | 写作工具:Hugo 导出、自定义链接类型 | +| =pkg-dev.el= | 开发:LSP、Tree-sitter、终端、代码工具 | +| =pkg-git.el= | Git:Magit、diff-hl、timemachine | +| =pkg-email.el= | 邮件:mu4e 多账户、OAuth2 | +| =pkg-reading.el= | 阅读:RSS、OPDS 电子书、PDF/EPUB | +| =pkg-social.el= | 社交:Mastodon、GPG 加密 | +| =pkg-calendar.el= | 日历:Google Calendar 双向同步 | +| =pkg-dictionary.el= | 词典:sdcv 离线查词、GoldenDict | + +* 核心功能 + +** 补全框架 + +使用现代补全栈: + +- =vertico= — 垂直补全界面 +- =orderless= — 模糊/乱序匹配 +- =consult= — 增强搜索:buffer 切换、ripgrep、大纲跳转 +- =embark= — 对补全候选执行上下文操作 +- =marginalia= — 补全候选旁显示元信息 +- =corfu= — 行内补全弹窗 + 文档预览 + +** 中文字体支持 + +精细控制中英文字体分离,确保代码和写作场景各有最佳字体: + +| 场景 | 英文 | 中文 | +|--------------+-------------------+-------------------| +| 代码/默认 | JetBrains Mono | 思源黑体 | +| 写作(变宽) | Source Serif 4 | 思源宋体 | +| 标题 | Open Sans | Noto Sans SC | +| 图标 | Symbols Nerd Font | — | +| Emoji | Noto Color Emoji | — | + +Org-mode 中代码块、表格、属性强制等宽,正文使用衬线体。 + +** 视觉增强 + +- =dimmer= — 非活动窗口变暗(30%) +- =page-break-lines= — =^L= 显示为水平分隔线 +- =centered-cursor-mode= — 光标始终居中 +- =default-text-scale= — =C-M-== / =C-M--= 全局缩放字号 + +* 博客工作流 + +完整的 Capture → Refile → Export 博客发布流程。 + +** 月刊系统 + +- =C-c b c= 创建当月月刊文件,使用中国传统历法命名(天干地支 + 月份) +- =C-c b o= 打开当月月刊 +- =C-c b r= 将 inbox 条目转入月刊 +- =C-c b i= 批量转入所有 inbox 条目 + +** 多格式导出 + +- =C-c b e= 导出月刊为 Hexo Markdown(含目录生成) +- =C-c b p= 导出单篇文章 +- =C-c b g= 导出为 Gemini 协议格式(=.gmi=) +- =C-c b G= 生成 Gemini Capsule 首页索引 + +支持 Hexo 块标签(={% note %}=、={% em %}=)和自定义链接类型: + +- =[[em:着重内容]]= → 着重号(导出为 ={% em %}=) +- =[[ruby:注音|文字]]= → Ruby 注音标记 + +** Webmention + +发布文章后通知被引用的站点([[https://www.w3.org/TR/webmention/][W3C 标准]]): + +- =C-c b w= 发现目标并打开 staging buffer +- =C-c b W= 直接发送(指定 source 和 target) +- =C-c b h= 查看发送历史 + +独立包:[[https://git.cytrogen.icu/~cytrogen/webmention.el][webmention.el]] + +* Org-mode 增强 + +** 动态 Capture/Refile 系统 + +Capture 模板和 Refile 目标由 =org-structure.org= 数据驱动,无需修改 elisp 代码即可增减分类: + +- 一级标题定义分类(=FILE= + =KEY= 属性) +- 二级标题定义子项(=HEADLINE= + =TEMPLATE= + =KEY=) +- 支持 datetree 目标和自定义模板 + +=C-c w= 提供两步快速 Refile:先选分类,再选目标。 + +** 自定义 Agenda 视图 + +- =r= 前缀:阅读列表(想读 / 在读 / 已读) +- =i= 前缀:收件箱条目 +- Agenda 操作:=S= 开始阅读、=F= 完成阅读 + +** 中文支持 + +启用 CJK 内联标记(着重号、粗体等无需前后空格)。 + +* 开发工具 + +** LSP + Tree-sitter + +- =eglot=(内置):自动检测已安装的 LSP 服务器 + - JavaScript/TypeScript: =typescript-language-server= + - Python: =pylsp= + - CSS/HTML: =vscode-css/html-language-server= +- =tree-sitter=(内置):语法树精确高亮(level 4),自动 remap 到 =-ts-mode= + +** 终端 + +=eat= 终端模拟器,适配 Darcula 主题 ANSI 调色板(16 色)。=C-c t= 启动。 + +** 代码编辑 + +- =symbol-overlay= — =M-i= 高亮当前符号所有出现 +- =multiple-cursors= — =C-c n= 前缀多光标编辑 +- =move-dup= — =M-S-↑/↓= 移动行,=C-c p d/u= 复制行 +- =origami= — =C-c z/Z= 代码折叠 +- =avy= — =M-j= 快速跳转到任意字符 + +** Git + +- =magit= — =C-x p m= 打开项目 Git 状态 +- =diff-hl= — 边栏显示增删改标记 +- =git-timemachine= — 逐版本浏览文件历史 +- =ibuffer-vc= — =C-x C-b= 按 VC 项目分组 buffer + +* 阅读与信息获取 + +** RSS + +=elfeed= + =elfeed-protocol= 连接 FreshRSS(Fever API)。=C-c f= 启动。 + +** OPDS 电子书浏览器 + +内置 OPDS 客户端,浏览 Calibre Content Server 书库: + +- =C-c l= 打开 OPDS 浏览器 +- 支持搜索、下载、直接在 Emacs 中打开 EPUB/PDF + +** PDF / EPUB + +- =pdf-tools= — PDF 阅读(支持页码偏移) +- =nov= — EPUB 阅读(olivetti 居中 + 变宽字体) + +** URL 阅读模式 + +=url-handler-mode= 启用后可直接 =C-x C-f= 打开 URL,自动进入阅读模式(olivetti 居中 + 变宽字体)。 + +* 通信 + +** 邮件 + +=mu4e= 多账户配置,支持 OAuth2(Google): + +- =C-c e= 启动邮件客户端 +- 账户配置从外部文件 =email-accounts.el= 加载 +- OAuth token 使用 GPG 加密存储 + +** 社交 + +=mastodon.el= 客户端: + +- =C-c m= 启动 Mastodon +- GPG 加密凭据存储 +- Nerd Icons 美化界面 + +** 日历 + +=org-gcal= + =calfw= 实现 Google Calendar 双向同步: + +- =C-c g= 打开可视化日历 +- =C-c G= 强制同步 +- OAuth 凭据从外部文件 =calendar-secrets.el= 加载 + +* 工具 + +** 离线词典 + +- =sdcv=(StarDict)— =C-c k= 快速查词(浮窗)、=C-c K= 详细查词(buffer) +- GoldenDict — =C-c d= 光标处查词、=C-c D= 手动输入查词 +- 自动扫描 =~/.stardict/dic/= 下的词典文件 + +** 学习模式 + +禁用方向键、Delete 键和鼠标,强制使用 Emacs 原生快捷键: + +- 方向键 → 提示使用 =C-p/C-n/C-b/C-f= +- Delete → 提示使用 =C-d/M-d/C-k= +- =C-c h m= 显示移动快捷键速查表 + +* 快捷键速查 + +** Org + +| 按键 | 功能 | +|-----------+------------------------| +| =C-c c= | org-capture | +| =C-c a= | org-agenda | +| =C-c w= | 快速 Refile | +| =C-c o= | 打开 Org 文件 | + +** 应用 + +| 按键 | 功能 | +|-----------+------------------------| +| =C-c m= | Mastodon | +| =C-c f= | Elfeed (RSS) | +| =C-c e= | mu4e (邮件) | +| =C-c E= | Elpher (Gemini/Gopher) | +| =C-c l= | OPDS 电子书浏览器 | +| =C-c t= | Eat 终端 | +| =C-c g= | 日历 | + +** 搜索与导航 + +| 按键 | 功能 | +|-------------+------------------------| +| =C-c s s= | consult-line | +| =C-c s g= | consult-ripgrep | +| =C-c s f= | consult-find | +| =C-c s o= | consult-outline | +| =C-.= | embark-act | +| =M-j= | avy-goto-char-timer | + +** 编辑 + +| 按键 | 功能 | +|---------------+------------------------| +| =M-i= | 高亮当前符号 | +| =C-c n n/p/a= | 多光标 next/prev/all | +| =M-S-↑/↓= | 移动行 | +| =C-c z/Z= | 折叠/展开 | +| =M-/= | hippie-expand 补全 | +| =M-Q= | 反填充段落 | +| =M-Y= | 浏览 kill ring | + +** 博客 + +| 按键 | 功能 | +|-----------+------------------------| +| =C-c b c= | 创建月刊 | +| =C-c b o= | 打开当月月刊 | +| =C-c b e= | 导出月刊 Markdown | +| =C-c b p= | 导出单篇文章 | +| =C-c b g= | 导出 Gemini | +| =C-c b w= | Webmention 发现 | +| =C-c b I= | 插入博客图片 | + +** 词典 + +| 按键 | 功能 | +|-------------+------------------------| +| =C-c k= | sdcv 快速查词 | +| =C-c K= | sdcv 详细查词 | +| =C-c d= | GoldenDict 光标查词 | +| =C-c D= | GoldenDict 手动输入 | + +** 配置 + +| 按键 | 功能 | +|-----------+------------------------| +| =C-c i= | 打开 init.el | +| =C-c r= | 重新加载配置 | + +* 安装 + +#+begin_src shell +git clone ~/.emacs.d +#+end_src + +首次启动时会提示设置: +1. Org 文件目录路径 +2. 博客源文件/导出目录 +3. 邮件、日历等凭据(如需使用) + +外部依赖: +- 字体:JetBrains Mono、Source Serif 4、思源黑体/宋体、Noto Color Emoji、Symbols Nerd Font +- 工具:=ripgrep=(搜索)、=mu=(邮件索引)、=msmtp=(邮件发送)、=aspell=(拼写检查) +- LSP 服务器(可选):=typescript-language-server=、=pylsp=、=vscode-css-language-server= + +* 致谢 + +许多包选择和配置参考了 [[https://github.com/purcell/emacs.d][Steve Purcell 的 emacs.d]]。 + +* 许可证 + +个人配置,自由使用。