我需要一些脚本来查找和打开当前目录中给定模式的文件,它的子目录,用于GEdit的Snap Open,用于VIM的fuzzyfinder和TextMate的Open Files。
任何想法?
答案 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)
你必须自己写这个。
我偶尔会打开项目中的所有相关文件;为此,我使用eproject的eproject-open-all-project-files
命令。
答案 5 :(得分:0)
您可以尝试ido模式。阅读以下内容以获取更多选项。