【问题标题】:How do I find org-mode files with completion in Emacs?如何在 Emacs 中找到完成的 org-mode 文件?
【发布时间】:2015-10-05 04:18:55
【问题描述】:

我有越来越多的组织文件存储在org-directory 中。如何在它们之间导航,最好使用交互式过滤和完成?

我认为有一种方法可以让 org-mode 生成一个已知 org 文件列表以便快速导航,但我似乎找不到它。如果 org-mode 没有此功能,我如何编写一个简单的命令来启动诸如 helm 或 icicles 之类的东西来找到它们?

【问题讨论】:

  • EmacsWiki 有一些使用ido 的示例——例如,基于模式选择的辅助函数emacswiki.org/emacs/InteractivelyDoThings 还有已经内置的缓冲区列表菜单—— - 例如,imenu、list-buffers、speedbar(缓冲区视图)等 - 可以通过主要模式进行排序;并且,还可以设置过滤器以仅显示感兴趣的缓冲区。

标签: emacs org-mode icicles emacs-helm


【解决方案1】:

这个问题对我来说不是很清楚。但是如果你的 Org-mode 文件都有特定的文件名模式(例如*.org)并且都在同一个目录中(org-directory),那么你可以使用 Emacs 的几种方法来访问它们:

  1. C-x C-f *.org RETURN in org-directory 将它们全部打开(缓冲区正在访问它们,但只显示最后一个)。

  2. C-x C-f *.org TAB in org-directory,使用完成显示它们,然后选择您想要的任何一个(或选择多个,使用 glob 模式,如 #1)。

    李>
  3. 与 #2 相同,使用冰柱或头盔。至少在 Icicles 中,您还可以使用正则表达式和其他方式进行匹配。

  4. 仅针对这些文件打开 Dired:C-x d *.org

确实有很多方法可以执行您所描述的操作。但我猜你没有真正描述你的请求/问题/问题,当你这样做时,你会得到一组更窄的答案。


在你的 cmets 之后更新:

这里有一种方法:在 org-directory 及其下的所有 Org 文件上打开 Dired。

(defun foo ()
  "Open Dired for (only) the Org files in and under `org-directory`."
  (interactive)
  (cd org-directory)
  (dired "*.org" "-lRF"))

M-x foo 测试它。把它放在你的初始化文件中:

(foo)

还有另一种方式:M-x bar 或将bar 绑定到一个键。

(defun bar ()
  "Open an Org file in or under `org-directory`."
  (interactive)
  (let ((default-directory         org-directory)
        (icicle-file-match-regexp  ".*\\.org"))
    (icicle-locate-file-of-content)))

【讨论】:

  • 是的,我所有的组织文件都匹配*.org 并且位于org-directory 下的某个地方(可能是一个子目录)。我正在寻找一个可以设置搜索的命令,类似于您的建议,但不必每次都导航到目录并输入正则表达式。
  • 这对于打开 org 文件列表很有用,但对于快速跳转到其中一个文件却没有用。您将如何初始化您在 #2 和 #3 中提到的查找文件选项之一?
【解决方案2】:

我有一个包可以做到这一点:plain-org-wiki。 没什么太复杂的:我只是将所有 45 个 org 文件转储到一个目录中并为它们完成。

【讨论】:

  • 这看起来非常接近我的要求。您是否有任何有关如何设置和使用它的文档或提示?你的 repo 上的自述文件会很有帮助。
【解决方案3】:

org已经提供的org-iswitchb怎么样?

SOrg 缓冲区之间的女巫。 使用一个前缀参数,将可用缓冲区限制为文件。 使用两个前缀参数,将可用缓冲区限制为议程文件

在加载 org 后将其添加到您的启动文件中: (global-set-key "\C-cb" 'org-iswitchb)

【讨论】:

    【解决方案4】:

    我最喜欢的解决方案是helm-mode,它是通过 MELPA 的 helm 包激活的。这是一个演示:

    它确实为快速搜索文件提供了一个很好的环境。此外,还可以启用模糊补全!这是一个最小配置(安装helm 包之后):

    (require 'helm-config)
    (helm-mode 1)
    (global-set-key (kbd "C-x C-f") 'helm-find-files)
    

    如果您想搜索文件的内容,也可以对文件运行grep。如果您想了解更多信息,请查看this amazing guide

    【讨论】:

    • 我同意 helm 对​​于交互式缩小文件很酷,但我希望学习如何设置仅搜索 org 文件。似乎可以用helm做,但我不知道怎么做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多