【问题标题】:How do you copy just the visible text from the folded state in an org-mode buffer?如何从 org-mode 缓冲区中的折叠状态仅复制可见文本?
【发布时间】:2010-07-07 10:50:22
【问题描述】:

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

** TODO task #1
   - some text for task #1
** TODO task #2 
   - some text for task #2

但是当你折叠所有任务时它看起来像

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

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

【问题讨论】:

  • 我认为显示前后状态的实际示例会有所帮助。根据您当前的描述,我不能 100% 确定您要达到的目标。确保你使用 Stack Overflow 的“markdown”语法来格式化示例文本,否则你会得到行相互运行(就像上面发生的那样)。
  • 我认为问题是“如何从 org-mode 缓冲区中的折叠状态仅复制可见文本?”
  • org-mode 派生自outline-mode,所以看起来outline-headers-as-kill 应该是相关的,但实际上这似乎不起作用。不过,这似乎值得一提——也许有一个相对简单的解决方法?

标签: emacs org-mode


【解决方案1】:

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

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

对于旧版本的 org-mode,以下原始答案仍应适用:


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

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

(org-export-visible TYPE ARG)

创建当前缓冲区可见部分的副本,并将其导出。 副本在临时缓冲区中创建并在使用后删除。 TYPE 是最后一个键(作为字符串),它也选择导出命令 `C-c C-e' 导出调度程序。 作为一种特殊情况,如果您在提示符下键入 SPC,则临时 org-mode 文件不会被删除,而是呈现给您,以便您可以 继续使用它。前缀 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)))))

【讨论】:

  • 仅供参考:现在根据orgmode manualC-c C-x v 完成此操作
  • 这个答案很棒,很遗憾两年前我已经投票了,因为我今天想再次投票。
  • 谢谢@NikanaReklawyks :) 我以前也遇到过同样的情况。甚至有一次我无法对解决我的问题的答案进行投票,因为它原来是我写的:)
  • 这非常有用,谢谢!对于未来传入的谷歌搜索:这也适用于“折叠”链接(“描述性链接”)。因此,如果您想复制没有 [[...]] 内容的链接,只有标题,您可以将链接设置为“描述性”,选择并复制。用于共享包含链接的组织文本。
【解决方案2】:

org-copy-visible,应该可以满足您的需求。

【讨论】:

  • 不错,正是我需要的。
【解决方案3】:

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

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

如果当前缓冲区处于 Org-mode 并且正在访问一个文件,你也可以 首先按一次'

【讨论】:

    猜你喜欢
    • 2016-11-30
    • 1970-01-01
    • 2013-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多