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:
参数 | 可选值 | 意义 |
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"))