在Emacs下的Orgmode中,是否已经有一种方法可以在归档文件中自动复制正在存档的项目之上的树结构?
文件中的新组织模式结构如下所示:
* CONFIGURE
** Operating Systems
*** Debian Unstable
*** Demodyne
** Machines
(...)
** Software
(...)在归档"Demodyne“条目之后,我希望档案包含以下内容:
* CONFIGURE
** Operating Systems
*** Demodyne很多年前我开始使用组织模式时,我以为我在组织模式的文档中见过它,但在http://orgmode.org/manual/最新版本的文档中没有发现类似的东西(归档http://orgmode.org/manual/Archiving.html#Archiving的条目相当简洁)。我觉得我可以编程序,但我不希望它以前做过.
发布于 2019-03-29 17:40:57
在https://gist.github.com/edgimar/072d99d8650abe81a9fe7c8687c0c993有一个部分的解决方案。
这可能是一个非常好的解决方案,但是,它只适用于在单个DONE任务上执行时。如果我尝试使用DONE将其扩展到子树中的所有org-map-entries任务,如下所示,每次运行时,它都会创建一个新的顶级* ARCHIVED标题。有没有办法避免这种不受欢迎的行为?
使用org-map-entries的不期望行为的示例
定义对当前子树中的所有DONE任务进行操作的函数:
(defun org-archive-done-tasks ()
(interactive)
(org-map-entries 'org-archive-subtree-hierarchical "/DONE" 'tree))注意:org-archive-subtree-hierarchical在上面的链接中找到。
现在,如果我使用以下缓冲区
* Project 1
** TODO Task 1
** TODO Task 2
** TODO Task 3并将Task 1标记为DONE,在项目1上运行org-archive-done-tasks,然后对任务2执行相同的操作,缓冲区将在
* ARCHIVED
** Project 1
*** DONE Task 1
* ARCHIVED
** Project 1
*** DONE Task 2
* Project 1
** TODO Task 3下面是所需的结果,如果org-archive-subtree-hierarchical直接在** DONE Task 1上运行,然后在** DONE Task 2 (作为* Project 1的子代)上运行,则会发生什么情况?
* ARCHIVED
** Project 1
*** DONE Task 1
*** DONE Task 2
* Project 1
** TODO Task 3是否可以使用org-map-entries实现所需的行为?是否有更好的方法可以在子树中的所有org-archive-subtree-hierarchical任务上多次执行DONE而不重复归档目标标题?
https://stackoverflow.com/questions/31666110
复制相似问题