如何在组织模式缓冲区中仅复制折叠状态下的可见文本?

时间:2010-07-07 10:50:23

标签: emacs org-mode

如果源是:

,如何将组织文件复制到其他缓冲区
** TODO task #1
   - some text for task #1
** TODO task #2 
   - some text for task #2

但是当您折叠所有任务时,它将看起来像

** TODO task #1 ...
** TODO task #2 ...

我想标记所有任务并复制到另一个缓冲区,它必须看起来像第二个变体。不要包含存储在每个任务中的任务的文本。 我怎么能这样做?

3 个答案:

答案 0 :(得分:12)

根据Hendy的评论,在当前版本的org-mode中,您使用org-copy-visibleC-c C-x v)将当前区域的可见内容复制到kill ring。 (C-x h可以像往常一样首先用于标记整个缓冲区。)

此外,请注意,如果要将该内容导出为其他格式,导出调度菜单(C-x C-e)会提供“仅可见”开关。

对于旧版本的组织模式,以下原始答案仍然适用:


M-x org-export-visible RET SPC只会将组织模式缓冲区中当前可见的文本复制到新缓冲区中。

  

org-export-visible是一个交互式编译的Lisp函数   `ORG-exp.el”。

     

(org-export-visible TYPE ARG)

     

创建当前缓冲区可见部分的副本,然后将其导出。   副本在临时缓冲区中创建,并在使用后删除。   TYPE是最终键(作为字符串),也选择导出命令   `C-c C-e'出口调度员。   作为一种特殊情况,如果您在提示符下键入SPC,则为临时   组织模式文件不会被删除,而是呈现给您,以便您可以   继续使用它。前缀arg ARG传递给导出   命令。

如果你想绑定它(在本例中为C-c o),你可以使用以下内容:

(add-hook 'org-mode-hook 'my-org-mode-hook)
(defun my-org-mode-hook ()
  "Custom behaviours when entering org-mode."
  (local-set-key (kbd "C-c o") (function (lambda () (interactive)
                                           (org-export-visible ?\s nil)))))

答案 1 :(得分:6)

org-copy-visible,应该完全符合您的需要。

答案 2 :(得分:0)

尝试M-x org-todo-list(或 C-c a t )。这会在* Org Agenda *缓冲区中显示 TODO 条目列表(在议程文件列表中列出的文件中)。

您可能需要将当前文件添加到议程文件列表中。来自org-agenda文档:

  

如果当前缓冲区处于组织模式并访问文件,您也可以   先按“<”一次表明议程应该是暂时的   (直到下次使用C-c a)限制在当前文件中。   按'<'两次意味着限制到当前子树或区域   (如果有效)。