我有越来越多的 org 文件存储在org-directory
. 如何在它们之间导航,最好使用交互式过滤和完成?
我认为有一种方法可以让 org-mode 生成一个已知 org 文件列表以便快速导航,但我似乎找不到它。如果 org-mode 没有此功能,我该如何创建一个简单的命令来启动诸如 helm 或 icicles 之类的东西来找到它们?
我有越来越多的 org 文件存储在org-directory
. 如何在它们之间导航,最好使用交互式过滤和完成?
我认为有一种方法可以让 org-mode 生成一个已知 org 文件列表以便快速导航,但我似乎找不到它。如果 org-mode 没有此功能,我该如何创建一个简单的命令来启动诸如 helm 或 icicles 之类的东西来找到它们?
这个问题对我来说不是很清楚。但是如果你的 Org-mode 文件都有特定的文件名模式(例如*.org
)并且都在同一个目录中(org-directory
)那么你可以使用 Emacs 的几种方法来访问它们:
C-x C-f *.org RETURN
inorg-directory
打开它们(缓冲区正在访问它们,但只显示最后一个)。
C-x C-f *.org TAB
在 中org-directory
,使用完成显示它们,然后选择您想要的任何一个(或选择多个,使用 glob 模式,如 #1 中所示)。
与 #2 相同,使用 Icicles 或 Helm。至少在 Icicles 中,您还可以使用正则表达式和其他方式进行匹配。
仅针对这些文件打开 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)))
我有一个包可以做到这一点:plain-org-wiki。没什么太复杂的:我只是将所有 45 个 org 文件转储到一个目录中并完成它们。
已经由 org 提供的org-iswitchb怎么样?
在Org缓冲区之间切换。使用一个前缀参数,将可用缓冲区限制为文件。使用两个前缀参数,将可用缓冲区限制为议程文件。
加载 org 后将其添加到您的启动文件中:
(global-set-key "\C-cb" 'org-iswitchb)
我最喜欢的解决方案是使用MELPAhelm-mode
的包激活。helm
这是一个演示:
它确实为快速搜索文件提供了一个很好的环境。此外,还可以启用模糊补全!这是一个最小配置(安装helm
包之后):
(require 'helm-config)
(helm-mode 1)
(global-set-key (kbd "C-x C-f") 'helm-find-files)
grep
如果您想搜索文件的内容,也可以在文件上运行。如果您想了解更多信息,请查看这个惊人的指南。