我在org-directory
中存储了一组越来越多的组织文件。如何在它们之间导航,最好是通过交互式过滤和完成?
我认为有一种方法可以让org-mode生成一个已知的org文件列表以便快速导航,但我似乎无法找到它。如果org-mode没有这个功能,我怎么能做一个简单的命令来启动像helm或icicle这样的东西来找到它们?
答案 0 :(得分:1)
这个问题对我来说不是很清楚。但是,如果您的组织模式文件都具有某种文件名模式(例如*.org
)并且所有文件都在同一目录(org-directory
)中,那么您可以使用几种方法Emacs方法来访问它们: / p>
C-x C-f *.org RETURN
org-directory
打开它们(缓冲区正在访问它们,但只显示最后一个)。
C-x C-f *.org TAB
中 org-directory
,使用完成情况显示它们,然后选择您想要的任何一个(或选择多个,使用glob模式,如#1)。
与#2相同,使用Icicles或Helm。至少在Icicles中,你也可以使用正则表达式和其他方式进行匹配。
仅针对这些文件打开Dired:C-x d *.org
。
有很多方法可以做你所描述的。但我猜你还没有真正描述你的请求/问题/问题,当你这样做时,你会得到一套更窄的答案。
发表评论后更新:
以下是一种方式:在org-directory
内和下的所有组织文件上打开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
进行测试。把它放在你的init文件中:
(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)))
答案 1 :(得分:1)
我有一个包就是这样:plain-org-wiki。 这不是太复杂:我只是将我的所有45个组织文件转储到一个目录中并完成它们。
答案 2 :(得分:1)
org已经提供了 org-iswitchb 怎么样?
组织缓冲区之间的巫婆。 使用一个前缀参数,将可用缓冲区限制为文件。 使用两个前缀参数,将可用缓冲区限制为议程文件。
在加载org后将其添加到启动文件中:
(global-set-key "\C-cb" 'org-iswitchb)
答案 3 :(得分:0)
我最喜欢的解决方案是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。