我如何在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
文件是相对简单的。
这显然不像使用args
和argdo
命令那样优雅,但是这些命令也更加复杂。
在命令行上也可以用一个命令来做到这一点,但即使在16年后,我仍然觉得vim编程是奇怪而神秘的。
另一种方法recursion地打开文件
find . -type f -exec vi {} \;
如果你想添加到参数列表;
:arga what_you-d_like_to_add
看到
:he arga
from / in vim获取更多信息。