首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >组织模式存档中的重复树结构

问组织模式存档中的重复树结构
EN

Stack Overflow用户
提问于 2015-07-28 01:46:55
回答 1查看 1.3K关注 0票数 8

在Emacs下的Orgmode中,是否已经有一种方法可以在归档文件中自动复制正在存档的项目之上的树结构?

文件中的新组织模式结构如下所示:

代码语言:javascript
复制
* CONFIGURE
** Operating Systems
*** Debian Unstable
*** Demodyne

** Machines
(...)
** Software
(...)

在归档"Demodyne“条目之后,我希望档案包含以下内容:

代码语言:javascript
复制
* CONFIGURE
** Operating Systems
*** Demodyne

很多年前我开始使用组织模式时,我以为我在组织模式的文档中见过它,但在http://orgmode.org/manual/最新版本的文档中没有发现类似的东西(归档http://orgmode.org/manual/Archiving.html#Archiving的条目相当简洁)。我觉得我可以编程序,但我不希望它以前做过.

EN

回答 1

Stack Overflow用户

发布于 2019-03-29 17:40:57

在https://gist.github.com/edgimar/072d99d8650abe81a9fe7c8687c0c993有一个部分的解决方案。

这可能是一个非常好的解决方案,但是,它只适用于在单个DONE任务上执行时。如果我尝试使用DONE将其扩展到子树中的所有org-map-entries任务,如下所示,每次运行时,它都会创建一个新的顶级* ARCHIVED标题。有没有办法避免这种不受欢迎的行为?

使用org-map-entries的不期望行为的示例

定义对当前子树中的所有DONE任务进行操作的函数:

代码语言:javascript
复制
(defun org-archive-done-tasks ()
  (interactive)
  (org-map-entries 'org-archive-subtree-hierarchical "/DONE" 'tree))

注意:org-archive-subtree-hierarchical在上面的链接中找到。

现在,如果我使用以下缓冲区

代码语言:javascript
复制
* Project 1
** TODO Task 1
** TODO Task 2
** TODO Task 3

并将Task 1标记为DONE,在项目1上运行org-archive-done-tasks,然后对任务2执行相同的操作,缓冲区将在

代码语言:javascript
复制
* 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的子代)上运行,则会发生什么情况?

代码语言:javascript
复制
* ARCHIVED
** Project 1
*** DONE Task 1
*** DONE Task 2

* Project 1
** TODO Task 3

是否可以使用org-map-entries实现所需的行为?是否有更好的方法可以在子树中的所有org-archive-subtree-hierarchical任务上多次执行DONE而不重复归档目标标题?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31666110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档