隐藏抽屉或属性中的组织待办事项状态更改

Hide org todo state changes in drawer or properties

如何设置我的组织树以将 TODO 状态更改存储到抽屉中。日志抽屉工作正常。问题是,当我每天重复输入时,它会记录下来。在任务下制作一棵巨大的树。任何人都知道如何将其存储在 :PROPERTIES: 或另一个这样的抽屉中,以便我仍然拥有这些数据,但它不会自动显示?

这是我的组织文件中的一个示例。

** TODO Weekly Review/Inbox Review (Planning) 
   DEADLINE: <2020-09-21 Mon ++1w>
   :PROPERTIES:
   :LAST_REPEAT: [2020-09-08 Tue 09:22]
   :Effort:   0:30
   :END:

   - State "DONE"       from "TODO"       [2020-09-08 Tue 09:22]
   - State "DONE"       from "TODO"       [2020-09-02 Wed 09:02]

希望这是这样的格式

** TODO Weekly Review/Inbox Review (Planning) 
   DEADLINE: <2020-09-21 Mon ++1w>
   :PROPERTIES:
   :LAST_REPEAT: [2020-09-08 Tue 09:22]
   :LOGTODOCHANGEDRAWER:
   - State "DONE"       from "TODO"       [2020-09-08 Tue 09:22]
   - State "DONE"       from "TODO"       [2020-09-02 Wed 09:02]
   :Effort:   0:30
   :END:

我不在乎它是否在属性中,但我不希望这些状态更改以纯文本形式再次列出 300 次...这非常难看

  • TLDR
M-x customize-variable [RET] org-log-into-drawer

将 org-log-into-drawer 的值设置为“LOGBOOK”

  1. 背景 在仔细阅读组织手册后,我想出了一个解决方案。手册中没有确切的示例,但通过阅读它,您可能会获得自己找出解决方案所需的理解。与往常一样,如果您有时间,请仔细阅读它并确保它总体上是有意义的。这是最相关的 link 页面。

https://orgmode.org/org.html#Tracking-TODO-state-changes

https://orgmode.org/org.html#Drawers

使用 org-mode 时,我用于重复任务的跟踪方式是习惯。在下面的示例中,我通过属性抽屉明确应用了它。

使用 org-habit 跟踪变量时,有 4 个选项用于存储日志记录。每次待办事项状态更改发生时 org-habit 都会记录状态更改 'outside of a drawer';这意味着当项目被打开时,所有的状态变化都以纯文本形式出现。默认情况下,这是设置。当前有 3 个选项。

要查看这些选项,请转到 customize-variable 缓冲区中的“Org Process Group”,您会在其中找到“Org Log Into Drawer”以获取待办事项状态更改以简单地写入“Logbook”更改为“日志” 总之,我们可以写出初始化文件以存储在日志中使用:

方法 1:使用 init.el

全局定义

;;将待办事项状态更改写入 LOGBOOK 抽屉 (setq org-log-into-drawer 日志)


## METHOD 2: define for a specific tree
* TODO test
  DEADLINE: <2020-09-22 Tue ++1w>
  :PROPERTIES:
  :STYLE: habit
  :LOG_INTO_DRAWER: t
  :LAST_REPEAT: [2020-09-08 Tue 10:41]
  :END:
  :LOGBOOK:
  - State "DONE"       from "TODO"       [2020-09-08 Tue 10:41]
  - State "DONE"       from "TODO"       [2020-09-08 Tue 10:40]
  :END:

方法三

按照其他贡献者提供的方式进行设置,状态更改和计时器日志都放在抽屉内。

;;; inside init.el
(setq org-log-done t)

通常我也会推荐手册,但这实际上是我在手册之外找到的一个例子。我找到了答案:

(setq org-log-done t)

here.

有趣的是,t 甚至不是此变量的自定义选项中的选项之一,但它不仅可以将时间日志放入 :LOGBOOK: 抽屉,还可以将状态更改放入。通常我会去阅读源代码看看为什么会这样,但现在我懒得理会 - 它有效。在自己更改此设置之前,我使用了“时间”的自定义选项之一,仅将时钟(而不是状态更改)放在 :LOGBOOK: 中,但我更喜欢此设置来整理内容。