如何在Emacs中找到完成的组织模式文件?

时间:2015-07-15 22:07:14

标签: emacs org-mode icicles emacs-helm

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

我认为有一种方法可以让org-mode生成一个已知的org文件列表以便快速导航,但我似乎无法找到它。如果org-mode没有这个功能,我怎么能做一个简单的命令来启动像helm或icicle这样的东西来找到它们?

4 个答案:

答案 0 :(得分:1)

这个问题对我来说不是很清楚。但是,如果您的组织模式文件都具有某种文件名模式(例如*.org)并且所有文件都在同一目录(org-directory)中,那么您可以使用几种方法Emacs方法来访问它们: / p>

    {li>

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

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

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

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

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

    发表评论后更新:

    以下是一种方式:在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 Mode Completion

它确实为快速搜索文件创造了良好的环境。另外,可以实现模糊完成!这是一个最小配置(在安装helm包之后):

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

如果您要搜索其内容,也可以对文件运行grep。如果您想了解更多信息,请查看this amazing guide