如何在 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 方法来访问它们:
C-x C-f *.org RETURN
in org-directory
将它们全部打开(缓冲区正在访问它们但只显示最后一个)。
C-x C-f *.org TAB
在 org-directory
中使用补全来展示它们,然后选择你想要的任何一个(或者选择多个,使用 glob 模式,如#1 ).
同#2,使用冰柱或头盔。至少在 Icicles 中,您还可以使用正则表达式和其他方式进行匹配。
只为这些文件打开 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)
我在 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 中,您还可以使用正则表达式和其他方式进行匹配。
只为这些文件打开 Dired:
C-x d *.org
.
确实有很多方法可以完成您所描述的事情。但我猜你还没有真正描述你的 request/problem/question 足够好,当你这样做时,你会得到一组更窄的答案。
在您发表评论后更新:
这是一种方法:在 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 文件转储到一个目录中并完成它们。
我最喜欢的解决方案是 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)