在Emacs中使用ido-mode允许我使用C-xC-f从迷你缓冲区打开一个文件。这种方法每次只能打开一个文件。
如何打开目录中的所有文件或指定多个要打开的文件?
您可以将文件名只输入*
,然后按下Enter键;系统会询问您是否确认打开所有文件,如果您再次按下Enter键,系统将会打开目录中的所有文件。
需要注意的是,“打开一个目录中的所有文件”会打开该目录下所有子目录的dired buffer。
在不使用ido-mode的情况下(即基本的Emacs查找文件提示符),您可以使用相同的*
来打开目录中的所有文件。但是当您使用ido-mode查找文件时,您可以随时按下C-f键返回到通常的Emacs查找文件提示符。(您可以使用ido加快访问您首先感兴趣的某个目录并在其中跳转到基本的查找文件功能)。这是一种使用ido创建新文件的方法(另一种是C-j绑定);同时,它还提供了另一种使用上面提到的*
技巧的方式。
find-file-wildcards
的变量需要设置为非nil
值才能使通配符扩展起作用。请参见/usr/share/emacs/<version>/lisp/files.el.gz
(请根据您的平台调整此路径;或者说C-h f find-file <RET>
,然后在files.el
上按下<RET>
),第1314行(在我的版本中),在find-file
函数的定义中。如果这有帮助,请告诉我,我会编辑答案以考虑它。 - Michał Marczyk(require 'ffap)
。当我删除(require 'ffap)
时,我得到了您描述的行为。 - unutbuffap
应该根据 find-file-wildcards
的值来调整其行为 - 没有保证,但也许你想在 `中尝试一下
(setq find-file-wildcards t)`。 - Michał Marczykido-mode
和find-file-wildcards
,Emacs 23.2.1版本在按下C-x
C-f
后输入*.txt
会打开一个名为*.txt
的文件。请注意,这只是一个文件名,而不是匹配该模式的所有文件。 - SabreWolfy文件名匹配远不如更通用的模式匹配实用。
在Icicles文件名完成中,您可以从同一迷你缓冲区打开与任意数量模式匹配的任意数量文件。模式匹配可以是子字符串、正则表达式、模糊或前缀,并且您可以使用交集和补集组合模式。
就像在Ido中一样,在Icicles中,您的迷你缓冲区输入动态过滤文件名候选项。您可以选择单个候选项或选择所有当前匹配的候选项(使用C-!)。
(当然,您也可以使用文件名匹配。与Emacs文件名输入一样,对于通配符(grok)模式,按下RET将其发送到find-file
,打开所有匹配的文件。)
find . -type f -name“*.clj”
`` - Christophe De Troyer