所有文章阅读量
UP | HOME

Org-mode Capture 完全指南

1. 基础概念

1.1. Capture 是什么?

  • 快速捕获临时想法/任务的「临时缓冲区」
  • 支持预定义模板快速结构化输入
  • 自动归档到指定位置(文件/标题)

1.2. 核心三要素

  1. 触发快捷键:快速调用 Capture 界面
  2. 模板系统:定义不同场景的输入格式
  3. 归档流程:将内容保存到正确位置

2. 基础配置

2.1. 1. 启用 Capture 功能

(require 'org-capture)  ; 确保加载模块
(setq org-capture-templates nil)  ; 清空默认模板

2.2. 2. 全局快捷键配置

(global-set-key (kbd "C-c c") 'org-capture)  ; 推荐快捷键

3. 模板配置详解

3.1. 基础模板语法

(setq org-capture-templates
      '(("key" "Description" entry (file+headline "file.org" "Node")
	 "* %?\n %i\n %a")))

3.2. 参数说明

字段 说明
key 模板快捷键(单字符)
Description 模板菜单显示描述
entry 内容类型(还可选 item, checkitem)
file+headline 归档位置(文件+标题)
模板内容 定义内容结构和占位符

3.3. 实战模板示例

3.3.1. 通用任务模板

("t" "Todo" entry (file+headline "~/org/gtd.org" "Inbox")
"* TODO %?\n %i\n %a\n SCHEDULED: %t")

3.3.2. 会议记录模板

("m" "Meeting" entry (file+headline "~/org/notes.org" "Meetings")
"* %^{Meeting Title} %T\n%?\n** Attendees\n- \n** Action Items\n- ")

3.3.3. 快速笔记模板

("n" "Note" entry (file "~/org/notes.org")
"* %^{Title}\n%T\n%?\n%i")

4. 高级技巧

4.1. 1. 动态路径选择

("p" "Project" entry (file+headline (org-capture-select-target) "Tasks")
"* TODO %?\n %i")  ; 按 C-c C-c 选择目标文件

4.2. 2. 自动添加标签

("c" "Code" entry (file+headline "~/org/tech.org" "Snippets")
"* %? :code:\n#+BEGIN_SRC %^{Language}\n\n#+END_SRC")

4.3. 3. 时间戳控制

占位符 说明
%t 当前时间
%T 时间+日期
%^t 交互式选择时间
%^T 交互式选择日期和时间

4.4. 4. 附件支持

("a" "Attachment" entry (file "~/org/attachments.org")
"* %^{Description}\n%T\n%i\n%(org-attach-attach)")

5. 工作流优化

5.1. 1. 快速结束 Capture

快捷键 动作
C-c C-c 保存并退出
C-c C-w 保存并选择归档位置
C-c C-k 取消捕获

5.2. 2. 自动归档配置

;; 自动归档到每日笔记
(setq org-capture-templates
      '(("d" "Daily" entry (file+datetree "~/org/diary.org")
	"* %?\n%T\n%i")))

5.3. 3. 与 Agenda 集成

;; 自动刷新 Agenda 缓存
(add-hook 'org-capture-after-finalize-hook 'org-agenda-redo-all)

6. 常见问题排查

6.1. 问题1:模板不生效

  • 检查 org-capture-templates 语法是否正确
  • 确认文件路径存在且有写入权限

6.2. 问题2:时间戳格式异常

(setq org-time-stamp-custom-formats  ; 自定义时间格式
      '("<%Y-%m-%d %a>" . "<%Y-%m-%d %a %H:%M>"))

6.3. 问题3:中文乱码

(setq org-capture-templates
      '(("c" "中文模板" entry [...])))  ; 确保使用 utf-8 编码

7. 配置示例

7.1. 完整 GTD 工作流配置

(setq org-capture-templates
      '(("t" "待办事项" entry (file+headline "~/org/gtd.org" "Inbox")
	"* TODO %?\n %i\n %a\n SCHEDULED: %t")
	("m" "会议记录" entry (file+headline "~/org/meetings.org" "Records")
	 "* %^{主题} %T\n%?\n** 参会人\n- \n** 决议事项\n- ")
	("j" "日记" entry (file+datetree "~/org/diary.org")
	 "* %?\n%T\n%i\n%U")))

7.2. 效果演示

  1. C-c c t 快速创建待办事项:

    * TODO 完成项目文档 
      SCHEDULED: <2023-10-16 Mon>
    
  2. C-c c m 记录会议:

    * 产品需求讨论 <2023-10-16 Mon 14:00> 
    ** 参会人
    - 张三
    - 李四
    ** 决议事项
    - 确定V1.0功能范围
    

8. 扩展阅读

  1. 官方文档:=C-h i m org <RET> m Capture=
  2. 高级模板语法:使用 %^{PROMPT} 交互式输入
  3. org-roam 集成实现知识管理

日期: <2025-02-15/Saturday 23:36:42>

作者: pengshao

Created: 2025-02-17 Mon 23:20

Validate