如何在vim中递归地打开符合某种模式的文件

16

各位,我该如何使用单个命令在vim中打开多个文件?

我想要打开的这些文件遵循某种模式,例如:

myfile1dsa
myfile2dsdas
myfile3xzczxcz

这些已打开的文件是否会在我的vim窗口中创建它们自己的标签页?

另外一个题外话:

在Linux命令中,"--"是什么意思?它与单个"-"有何不同?

例子:

grep --color 'data' fileName

2
GNU(和POSIX)使用一个“-”定义选项标志作为单字母的“短选项”。双横线表示长选项(长于单个字母)。这并不总是适用的(X约定经常使用诸如“-display”之类的选项)。 - mike3996
1个回答

31

您可以在vim中使用以下方式打开它们:

:args myfile*

或者,如果您想打开所有与子文件夹中匹配模式的文件

:args **/myfile*

假设您当前的目录是要从中打开文件的文件夹。如果不是,请在myfile之前加上目录。

:args /yourfolder/myfile*
:args /yourfolder/**/myfile*

编辑(感谢romainl)

要打开所有在选项卡中找到的文件,您可以使用

:argdo tabe

这基本上是这样的:

  • argdo: 对参数列表中的每个文件执行以下操作
  • tabe : 打开新的选项卡并编辑文件

3
@ruggedbuteducated,这很容易解释,但是:h **更好。 - romainl
@ruggedbuteducated - 这是一种约定,用于遍历所有子文件夹以查找与模式匹配的文件。 - Lieven Keersmaekers
1
@ruggedbuteducated,一旦参数列表填充完毕,请执行“:argdo tabe”。 - romainl
1
@ruggedbuteducated - 你可以使用:bn(ext)或者:bp(revious)来在缓冲区之间进行导航。个人而言,我将:bn<CR>映射为<C-N>以便于导航,并且将<leader>b映射为:ls<CR>:b<Space>,因为这是我发现的最快速的处理缓冲区列表的方法。如果我没记错的话,这一部分也来自romainl。 - Lieven Keersmaekers
3
您可以在vim内部打开它们,同样也可以通过命令行来打开:vim myFile*, vim **/myFile*等等,结果完全相同(如果您关心的话,缓冲区编号将从“1”开始而不是“2”)。 - bloody
显示剩余6条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接