为Emacs打开快照?

为Emacs打开快照?,emacs,file,navigation,Emacs,File,Navigation,我需要一些脚本,可以在当前目录及其子目录中按给定的模式查找和打开文件,有点像GEdit的Snap open,VIM的fuzzyfinder和TextMate的open文件 有什么想法吗?由于不熟悉任何参考库,我不知道这是否是一个准确的答案,但听起来ido模式至少可以满足您的一些要求,并且从版本22开始,它与Emacs捆绑在一起。Ido更改默认Emacs find file和find buffer键绑定的工作方式,为您键入的字符串提供完成列表,并使用Enter键接受当前选择(可以是目录,允许您从m

我需要一些脚本,可以在当前目录及其子目录中按给定的模式查找和打开文件,有点像GEdit的Snap open,VIM的fuzzyfinder和TextMate的open文件


有什么想法吗?

由于不熟悉任何参考库,我不知道这是否是一个准确的答案,但听起来ido模式至少可以满足您的一些要求,并且从版本22开始,它与Emacs捆绑在一起。Ido更改默认Emacs find file和find buffer键绑定的工作方式,为您键入的字符串提供完成列表,并使用Enter键接受当前选择(可以是目录,允许您从minibuffer浏览目录结构)。查看详细信息。

不完全符合您的要求,但很接近。要查找名称和后缀
.el
中包含
frog
的所有文件,请执行以下操作:

M-x ifind /some/path/*frog*.el
它会搜索
/some/path
下的所有子目录

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

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

(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访问所有ifind结果

您也可以在标准目录中执行此操作

先做

C-u s
让我们把dired ls命令改为-lR。现在,您将在dired缓冲区中拥有子目录

% m 
让我们标记所有与regexp匹配的文件

要打开文件,请使用命令

`dired-do-find-marked-files'

您需要(需要'dired-x')。

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


我偶尔喜欢打开项目中的所有相关文件;为此,我使用的
eproject打开所有项目文件
命令。

您可以尝试ido模式。阅读下面的更多选项


在脏兮兮的窗口中?不应该。您可以使用M-x直接排序切换或编辑