按标签的组织模式时钟表

时间:2016-07-23 19:38:11

标签: emacs org-mode

在Emacs组织模式下,是否可以让时钟报告表显示每个标签花费了多少时间? manual似乎是这么认为的,但我无法让它发挥作用。这就是我的尝试:

#+BEGIN: clocktable :maxlevel 2 :scope file :tags nicetag

#+END:

* Header one :nicetag:
:LOGBOOK:  
CLOCK: [2016-07-23 Sat 18:24]--[2016-07-23 Sat 19:38] =>  1:14
CLOCK: [2016-07-23 Sat 12:23]--[2016-07-23 Sat 13:43] =>  1:20
:END:      
* Another header :bigtag:
:LOGBOOK:  
CLOCK: [2016-07-23 Sat 20:24]--[2016-07-23 Sat 20:34] =>  0:10
:END:
* A task  :nicetag:
:LOGBOOK:  
CLOCK: [2016-07-23 Sat 10:26]--[2016-07-23 Sat 11:26] =>  1:00
:END:      

我希望表格显示所有带标签的标题所占用的时间:nicetag:,但表格没有显示任何内容。更好的方法是让表格显示文件中每个标签的花费时间。

2 个答案:

答案 0 :(得分:9)

你的意思是?

#+BEGIN: clocktable :maxlevel 2 :scope file :tags "nicetag"

(请注意标记周围的""。)当您尝试使用#34;"时,回显区域中会显示错误消息。是"错误的类型参数:stringp,nicetag",这意味着Emacs期望读取字符串但得到的东西不是。希望有所帮助!

答案 1 :(得分:7)

我相信:标签在2016年到现在(2020年)之间发生了变化,因此这里是一个“更新”:

在文档(https://orgmode.org/manual/The-clock-table.html#The-clock-table)中,我看到:tags的解释是

position:fixed;

所以:tags应该只启用一列标签。我尝试了:tags“ mytag”,发现它没有按照OP的要求进行过滤。而是:match“ mytag”进行此过滤。

‘:tags’

    When this flag is non-nil, show the headline’s tags.

然后在OP中:

‘:match’

    A tags match to select entries that should contribute. See Matching tags and properties for the match syntax.

如果没有:tags t,我们将得到与没有tags列相同的结果

#+BEGIN: clocktable :maxlevel 2 :scope file :tags t :match "nicetag"
#+CAPTION: Clock summary at [2020-01-23 Thu 09:51]
| Tags    | Headline     |   Time |
|---------+--------------+--------|
|         | *Total time* | *3:34* |
|---------+--------------+--------|
| nicetag | Header one   |   2:34 |
| nicetag | A task       |   1:00 |
#+END:

* Header one :nicetag:
:LOGBOOK:  
CLOCK: [2016-07-23 Sat 18:24]--[2016-07-23 Sat 19:38] =>  1:14
CLOCK: [2016-07-23 Sat 12:23]--[2016-07-23 Sat 13:43] =>  1:20
:END:      
* Another header :bigtag:
:LOGBOOK:  
CLOCK: [2016-07-23 Sat 20:24]--[2016-07-23 Sat 20:34] =>  0:10
:END:
* A task  :nicetag:
:LOGBOOK:  
CLOCK: [2016-07-23 Sat 10:26]--[2016-07-23 Sat 11:26] =>  1:00
:END: