3

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

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

4

4 回答 4

1

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

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

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

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

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

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


在您发表评论后更新:

这是一种方法:在org-directory.

(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)))
于 2015-07-16T02:13:37.330 回答
1

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

于 2015-07-16T08:02:47.470 回答
1

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

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

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

于 2015-07-22T15:45:55.920 回答
0

我最喜欢的解决方案是使用MELPAhelm-mode的包激活。helm这是一个演示:

头盔模式完成

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

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

grep如果您想搜索文件的内容,也可以在文件上运行。如果您想了解更多信息,请查看这个惊人的指南。

于 2015-07-16T12:23:11.883 回答