我如何在Vim中一次打开多个文件?

有没有办法在Vim中打开目录中的所有文件? 所以一个:command ,将实际上说“打开/some/path下的所有文件到缓冲区”。

理想情况下,以recursion方式打开dir下的所有文件将是非常好的。

你正在寻找的命令是args:

例如:

 :args /path_to_dir/* 

将打开目录中的所有文件

如果我想打开所有以特定扩展名结尾的文件,为什么它不起作用? 我试过了

 :n ./**.cs 

并只打开当前目录中的文件。

我find了答案。正确的代码是:n **/*.cs

有关更多信息:h find

你试过了吗

 :n /some/path/* 

它将打开/ some / path中的所有文件

我不认为它会recursion地打开文件。

编辑

也许使用**将会按照daf的说法recursion地打开

不需要与args混淆的方法是将文件列表放在文本文件中,然后使用:so命令在该文件中运行命令。

例如,如果要打开所有以.php结尾的.php ,请首先创build包含文件列表的files.txt文件,并在其前面添加要用来打开文件的命令。

 sp alpha.php sp bravo.php sp charlie.php 

那么,在vim中:

 :so files.txt 

如果文件列表很大,则通过将ls的输出redirect到一个文件,然后使用vimmacros在每个文件名之前预先添加sp来快速生成files.txt文件是相对简单的。

这显然不像使用argsargdo命令那样优雅,但是这些命令也更加复杂。

在命令行上也可以用一个命令来做到这一点,但即使在16年后,我仍然觉得vim编程是奇怪而神秘的。

另一种方法recursion地打开文件

 find . -type f -exec vi {} \; 

如果你想添加到参数列表;

 :arga what_you-d_like_to_add 

看到

 :he arga 

from / in vim获取更多信息。