为Emacs开放?

时间:2009-10-05 16:39:16

标签: emacs file navigation

我需要一些脚本来查找和打开当前目录中给定模式的文件,它的子目录,用于GEdit的Snap Open,用于VIM的fuzzyfinder和TextMate的Open Files。

任何想法?

6 个答案:

答案 0 :(得分:5)

您也可以在标准版中执行此操作。

首先做

C-u s

让你将dired ls命令更改为 -lR 。现在,您将在dired缓冲区中拥有子目录。

% m 

让我们标记与正则表达式匹配的所有文件。

要打开文件,请使用命令

`dired-do-find-marked-files'

你需要(需要'dired-x)这个。

答案 1 :(得分:3)

不熟悉任何引用的库,我不知道这是否是一个确切的答案,但听起来像ido-mode至少会做一些你要求的东西,并且它与Emacs捆绑在一起从版本22开始.Ido更改默认Emacs查找文件和查找缓冲区键绑定的工作方式,为您键入的字符串提供完成列表,并使用Enter键接受当前选择(可以是目录,允许您从迷你缓冲区浏览目录结构)。查看Ido EmacsWiki page了解详情。

答案 2 :(得分:3)

不能满足您的所有要求,但打开多个文件的一个非常简单的选择是在打开文件(C-x C-f)时使用glob模式,如~/prj/*/*.[hc]

答案 3 :(得分:1)

不完全是你要求的,但是关闭是ifind.el。要查找名称中包含frog且后缀为.el的所有文件:

M-x ifind /some/path/*frog*.el

这会搜索/some/path下的所有子目录。

它不会自动打开所有文件,而是会弹出一个*compilation*缓冲区,允许您通过单击文件或执行M-x next-error(又名“Cx”)来打开它们。 “)。

此例程将打开每个查找结果:

(defun visit-all-ifind-results ()
  "do next-error until there are no more"
  (interactive)
  (condition-case nil
      (while t
        (next-error))
    (error nil)))

因此,您可以跟进M-x visit-all-ifind-results

答案 4 :(得分:0)

你必须自己写这个。

我偶尔会打开项目中的所有相关文件;为此,我使用eprojecteproject-open-all-project-files命令。

答案 5 :(得分:0)

您可以尝试ido模式。阅读以下内容以获取更多选项。

ido on emacswiki