将大纲树重新归档到新的组织模式文件中?


13

我刚刚开始使用组织模式,并想象一个工作流,借此在组织模式“收件箱”文件中捕获新任务和便笺。对于成长为项目的任务,我可以想象将它们重新整理到一个新的组织模式文件中,然后将其添加到我的议程中。

组织模式手动描述refiling树大多是我在寻找的方式,但它似乎只允许refiling同一文件中的部分。我想做的就是拿那棵树,并将其重新归档到一个新文件中(然后最好将其添加到议程列表中)。

我可以将复制粘贴到一个新的缓冲区中,然后将新缓冲区添加到议程中,但这似乎是组织模式众神为之准备的一种捷径。


为什么要为每个项目创建一个新文件?项目既有大项目,也有小项目,因此您可以拥有一个projects.org文件作为一种孵化文件,该文件最初包含所有项目,如果一个项目增长到足以拥有自己的文件的大小,则可以手动创建它。
2012年

谢谢,汤姆。那是我的想法。当大型文件变得太大时,它们就会移到自己的文件中。我找到了一个标志,可以将其重新归档到议程列表中的另一个文件,但仅在现有标题下。我将做更多的挖掘工作,看看是否可以将树仅添加到新的空组织文件中……
彼得

1
@Peter,您可以将任何树重新归档到另一个文件中。但首先您需要将目标文件添加到org-agenda-files
kindahero'1

@kindahero:这是默认选项吗?我有一个带有树的文件“ test1.org”,我想移到一个空文件“ test2.org”,该文件已保存并通过Cc [添加到了议程中。作为完成选项,它给我的唯一重新归档目标来自“ test1.org”。
彼得

Answers:


1

这是一个快速且灵活的elisp函数,可以根据需要进行修改。

(将defun子树转换为新文件()
  (互动)
  “草率地协助将组织子树移动到新文件”
  (org-copy-subtree nil t)
;;; 这个长的setq语句获取第一个标题的标题,用作新.org文件的默认文件名。
(setq第一个标题
  (带临时缓冲区
    (yan)
    (缓冲区开始)
    (搜索““ nil nil 1)
    (setq标题开始(点))
    (视频行尾)
    (setq标题结尾(点))
    (setq第一个标题(buffer-substring title-start title-end))
  ))
(setq def文件名(concat第一个标题为“ .org”))
(让[[插入默认目录t))
  (找到其他窗口的文件  
    (读取文件名“将子树移动到文件:” def文件名)
  ))
(org-paste-subtree)
;;; 此最终命令将新的.org文件添加到议程中
(组织议程文件到最前面)
)

您可以通过粘贴到*scratch*缓冲区并按Ctrl+来快速尝试该代码j。然后转到组织模式文件中的子树,然后按Alt+ xM-x subtree-to-new-file

如果您希望每次使用emacs时都能将其安装到位,并且对elisp完全不熟悉,那么最简单的方法可能就是将该代码也粘贴到.emacs配置文件中并保存。您还可以在函数之前或之后添加一行以为其设置键绑定。最简单的方法(但可能不是最好的方法)是:(global-set-key "\C-xw" 'subtree-to-new-file)


好吧,我确实从这里朝着另一个方向前进,但这确实有用。我很久以前问过这个问题,很高兴看到答案。感谢您发布此内容-它就像一个魅力。也许我会尝试记住我在这里想要完成的事情,并开始使用它。
彼得

5

要在重文件列表中添加其他组织模式缓冲区,您将需要在.emacs文件中添加如下一行。我从布伦特·汉森(Brent Hansen)的配置中获取了此信息(请参阅此处

; Targets include this file and any file contributing to the agenda - up to 9 levels deep
(setq org-refile-targets (quote ((nil :maxlevel . 9)
                                 (org-agenda-files :maxlevel . 9))))

(org-agenda-files :maxlevel .9)实际仅需要,另一部分设置要重新提交的最大级别数。


1
这使我可以将树添加到新文件中的现有树上,而不添加到没有现有内容的空白新添加文件中。我认为这可能和我所得到的差不多。
彼得

您也可以(setq org-refile-allow-creating-parent-nodes (quote confirm))在Bernt的同一代码块中添加引用(请参见上面的链接)。它将允许您将它们添加为父节点,而不仅仅是子标题。我不确定是否可以通过这种方式添加新文件。
乔纳森·里奇·佩平

1
即使有这一行,议程中的文件也不会显示为重新归档目标。看来我只能重新归档到现有的标头。
彼得

1
(setq org-refile-use-outline-path 'file)呢?这可能使文件成为目标。
Brady Trainor 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.