2010-03-10 43 views
16

在使用ido-mode的Emacs中,我允许使用C-x C-f从minibuffer打开文件。此方法一次只打开一个文件。如何打开目录中的所有文件或指定多个文件打开?在Emacs中一次打开多个文件

+0

我不知道这个解决方案是否适用(因此是评论),但与emacsclient结合使用(请参阅http://stackoverflow.com/questions/4458245/how-to-set-emacs-to-open-new-files-在ubuntu-in-current-instance-mint中),你也可以在命令行中使用'find'。要在emacs中打开所有Clojure文件,我这样做:''emacsclient'find。 -type f -name“* .clj”''' – 2015-05-18 11:32:52

回答

14

您只能提供*作为文件名并按输入;系统会要求您确认,如果您按再次输入,则会打开该目录中的所有文件。

请注意,“打开目录中的所有文件”涉及为其所有子目录打开dired缓冲区。

使用IDO模式 - 在基本的Emacs查找文件的提示 - 您可以使用相同的*在目录中打开所有文件。当您使用ido模式查找文件时,可以始终按C-f以回到通常的Emacs查找文件提示。 (您可以使用ido加速访问您感兴趣的某个目录,然后下载到基本的查找文件。)这是创建具有ido的新文件的一种方法(另一种是绑定的Cj) ;另外,它给你另一种使用上面提到的方式的技巧。

+0

@〜unutbu:你使用的是哪个版本的Emacs?我在23.1.50.1(使用与Emacs捆绑在一起的ido.el),我刚刚检查过,即使没有我的配置,有没有ido都可以。 – 2010-03-10 03:42:38

+1

@〜unutbu:实际上,有一个名为'find-file-wildcards'的变量需要设置为非'nil'值才能使通配符扩展正常工作。请参阅'/ usr/share/emacs//lisp/files.el.gz'(请为您的平台调整此路径;或者说'查找文件',然后再按''并点'文件.el'),第1314行(在我的版本中),在'find-file'函数的定义中。让我知道如果这有帮助,我会编辑答案考虑到它。 – 2010-03-10 03:51:07

+0

@Michal:谢谢你的帮忙!我在我的.emacs中有'(require'ffap)'。当我删除'(require'ffap)',我得到你描述的行为。 – unutbu 2010-03-10 14:13:27

2

文件名groking远不如通用模式匹配更有用。

Icicles file-name completion中,您可以从同一个小型缓冲器中打开任意数量的匹配任意数量模式的文件。模式匹配可以是子字符串,正则表达式,模糊或前缀,并且可以使用交集和补充来组合模式。

就像在Ido中一样,在Icicles中,您的迷你缓冲区输入会动态地过滤文件名候选项。您可以选择个别考生或选择当前匹配的所有考生(使用C-!)。

(当然你也可以使用文件名groking也。至于Emacs的文件名输入一般,击中一个通配符RET(神交)模式将其发送到find-file,这将打开所有匹配的文件。)

相关问题