我刚刚开始使用 org-mode 并想象一个工作流,我在一个 org-mode“收件箱”文件中捕获新任务和笔记。对于成长为项目的任务,我想将它们重新写入一个新的组织模式文件,然后将其添加到我的议程中。
该组织模式手动描述refiling树大多是我在寻找的方式,但它似乎只允许refiling同一文件中的部分。我想做的是将那棵树重新归档到一个新文件中(然后最好将该文件添加到议程列表中)。
我可以复制粘贴到一个新的缓冲区中,然后将新的缓冲区添加到议程中,但这似乎是组织模式众神拥有的捷径。
将其他组织模式缓冲区添加到 refile 列表中,您需要在 .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))))
Run Code Online (Sandbox Code Playgroud)
仅(org-agenda-files :maxlevel .9)
实际需要,其他部分设置要重新归档的最大级别数。
这是一个快速而肮脏的 elisp 函数,可以根据您的意愿进行修改。
(defun 子树到新文件 () (交互的) “马虎地协助将组织子树移动到新文件” (org-copy-subtree nil t) ;;; 这个长 setq 语句获取第一个标题的标题,用作新 .org 文件的默认文件名。 (setq 第一标题 (带临时缓冲区 (猛拉) (缓冲区开始) (向前搜索“” nil nil 1) (setq 标题-开始(点)) (视线末端) (setq 标题-结束(点)) (setq 第一标题(缓冲区-子字符串标题-开始标题-结束)) )) (setq def-文件名(连接第一个标题“.org”)) (let ((插入默认目录 t)) (查找文件其他窗口 (read-file-name“将子树移动到文件:”def-filename) )) (组织粘贴子树) ;;; 最后的命令将新的 .org 文件添加到议程中 (组织议程文件到前面) )
*scratch*
您可以通过粘贴到缓冲区并点击Ctrl+来快速尝试此代码j。然后转到组织模式文件中的子树并按Alt+x到M-x subtree-to-new-file
。
如果您希望每次使用 emacs 时它都就位,并且完全不熟悉 elisp,最简单的方法可能是将这段代码粘贴到.emacs
配置文件中的某个位置并保存。您还可以在函数之前或之后添加一行以为其提供键绑定。最简单的方法(但可能不是最好的)是这样的(global-set-key "\C-xw" 'subtree-to-new-file)
:
归档时间: |
|
查看次数: |
3950 次 |
最近记录: |