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

Rus*_*lex 10 emacs org-mode

如果源是:如何将组织文件复制到其他缓冲区

** TODO task #1
   - some text for task #1
** TODO task #2 
   - some text for task #2
Run Code Online (Sandbox Code Playgroud)

但是当你崩溃所有任务时它会是这样的

** TODO task #1 ...
** TODO task #2 ...
Run Code Online (Sandbox Code Playgroud)

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

phi*_*ils 14

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

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

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


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

org-export-visible是`org-exp.el'中的交互式编译Lisp函数.

(org-export-visible TYPE ARG)

创建当前缓冲区的可见部分的副本,然后将其导出.副本在临时缓冲区中创建,并在使用后删除.TYPE是最终键(作为字符串),它还在`Cc Ce'导出调度程序中选择导出命令.作为一种特殊情况,如果您在提示符下键入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)))))
Run Code Online (Sandbox Code Playgroud)

  • 仅供参考:现在按照[orgmode手册](http://orgmode.org/manual/Visibility-cycling.html)使用`Cc Cx v`完成 (5认同)

Yis*_*Dov 7

org-copy-visible,这应该完全符合你的需要.