如何在 Emacs 中查找完成的 org-mode 文件?

How do I find org-mode files with completion in Emacs?

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

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

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

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

  2. C-x C-f *.org TABorg-directory 中使用补全来展示它们,然后选择你想要的任何一个(或者选择多个,使用 glob 模式,如#1 ).

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

  4. 只为这些文件打开 Dired:C-x d *.org.

确实有很多方法可以完成您所描述的事情。但我猜你还没有真正描述你的 request/problem/question 足够好,当你这样做时,你会得到一组更窄的答案。


在您发表评论后更新:

这是一种方法:在 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)))

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

我最喜欢的解决方案是 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

org已经提供了org-isb怎么样?

S 在 Org 缓冲区之间。 使用一个前缀参数,将可用缓冲区限制为文件。 使用两个前缀参数,将可用缓冲区限制为议程文件

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