Org Clock

2024-04-06
1 min read

org mode 可以记录您在特定任务中花费了多长时间,最终通过统计结果来进行分析回顾,对于时间管理有需求的专业人士这是很棒的功能。

content

分项计时

org mode 可以记录您在特定任务中花费了多长时间,这主要通过两个函数来实现 `org-clock-in` 、 `org-clock-out`。 在指定大纲之下执行 `org-clock-in` 将开始这个分项的计时。如果您使用 doom emacs modeline ,可以看到统计到时间的 segment。然后在同样的大纲分项下执行 `org-clock-out`, 将结束这个分项的计时。org mode 通过在分项下插入了特定的代码片段,并写入开始和结束时间来记录任务的实际花费。如果发现时间记录有误,也可以通过手动调整开始和结束时间来修订。

* org clock task
:LOGBOOK:
CLOCK: [2024-04-06 Sat 12:31]--[2024-04-06 Sat 12:32] =>  0:01
:END:
emacs 函数 快捷键 意义
org-clock-in SPC m c i 开始分项的计时
org-clock-in SPC m c o 结束分项的计时
org-clock-report SPC m c R 统计分析

统计分析

统计好时间以后,使用 org-clock-report 对项目、分项进行统计分析。

#+BEGIN: clocktable :scope subtree :maxlevel 2 :compact t
#+CAPTION: Clock summary at [2024-04-06 Sat 18:13]
| Headline     |   Time |
|--------------+--------|
| *Total time* | *0:02* |
|--------------+--------|
| 抓包         |   0:02 |
| \_  抓包     |   0:01 |
#+END:
Table 1: org-clock-report 参数意义
参数 可选值 意义
scope file、subtree 当前文件范围
scope (“a.org” “b.org”) 多个文件范围
maxlevel >0 统计粒度
compact nil or t 紧凑模式
tags nil or t 导出标签
block today yesterday thisweek thismonth thisyear 按时间区间筛选

当统计的文件数量过多时可通过简单的elisp代码来扩展scope, 如下代码展示了如何将统计范围指定到 ~/Desktop/ 目录下的所有org文件

#+BEGIN: clocktable :scope (lambda () (directory-files-recursively "~/Desktop/" ".org"))