【问题标题】:Emacs org-mode: refile using the goto-interfaceEmacs org-mode:使用 goto 接口重新归档
【发布时间】:2014-10-30 11:07:37
【问题描述】:

我经常使用 org-mode 的 capture-refile-archive 结构,但我对重新归档的工作方式有疑问。我使用 IDO 完成,因此当我重新归档树 C-c C-w 时,我可以在迷你缓冲区中重新归档所有可能的树。

但是,这会导致大量可能的补全实际上不太可读。如果您可以选择重新归档文件位置,然后使用org-goto-interface 临时缓冲区来选择特定的子树,那就更好了。

有人知道如何做到这一点吗?

【问题讨论】:

    标签: emacs org-mode


    【解决方案1】:

    也许你正在寻找的设置是

    (setq org-refile-use-outline-path 'file)
    (setq org-outline-path-complete-in-steps t)
    

    org-refile-use-outline-path 允许您将重新文件目标作为路径 (file.org/heading/subheading) 和 org-outline-path-complete-in-steps 将在竞争路径的每个阶段后暂停。开始重新归档,输入路径并按[tab] 以获取所有顶级标题的列表。继续前往您想要的位置。

    【讨论】:

    • 这正是我所希望的。可惜它不适用于org-completion-use-ido
    【解决方案2】:

    你可以在运行前设置org-refile-targets org-refile。例如,我已经 described在做 这用于选择和重新归档到不在全局中的 Org 文件 org-refile-targets。那是专注于拥有除 org-refile 处理特殊情况,但如果您希望 org-refile 处理 总是要求一个缓冲区或文件重新归档到,你可以建议 org-refile 覆盖 org-refile-targets 或者你可以设置 org-refile-targets 到返回选定缓冲区的函数。

    (defun km/get-open-org-file ()
      (buffer-file-name
       (get-buffer
        (org-icompleting-read "Buffer: "
                              (mapcar 'buffer-name
                                      (org-buffer-list 'files))))))
    
    (setq org-refile-targets '((km/get-open-org-file . (:maxlevel . 2))))
    

    您如何设置 org-refile-targets 在很大程度上取决于您的工作 笔记的流程和结构,但这些例子希望能给你一个 了解如何让事情按照你想要的方式工作。

    【讨论】:

    • 这对于确定如何在重新归档之前显示重新归档目标很有帮助,但我对动态重新归档位置并不是特别感兴趣。我想解决的更大问题是使用org-goto-interface 选择要重新归档到的子树。
    • 也许这个功能不存在,如果没有,我可能会尝试实现它,但我认为值得一问。
    • 抱歉,回头看,我的回答集中在“选择重新归档文件位置”,而忽略了使用org-goto-interface 的明确重点。我不认为该功能存在。实现起来可能很棘手,因为org-goto 依赖于下面的org-refile
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-04
    • 2015-01-23
    • 1970-01-01
    • 2017-01-19
    • 1970-01-01
    • 2010-12-18
    相关资源
    最近更新 更多