有没有办法从Vim中打开目录中的所有文件?所以:command
实际上会说“将/some/path
下的所有文件打开到缓冲区”。
理想情况下,以递归方式打开目录下的所有文件会很棒。
答案 0 :(得分:103)
您正在寻找的命令是args:
例如:
:args /path_to_dir/*
将打开目录
中的所有文件答案 1 :(得分:21)
如果我想打开以特定扩展名结尾的所有文件,为什么它不起作用? 我试过了
:n ./**.cs
并仅打开currenty目录中的文件。
我找到了答案。正确的代码是:n **/*.cs
了解更多信息:h find
答案 2 :(得分:9)
你试过吗
:n /some/path/*
它将打开/ some / path
中的所有文件我不认为它会以递归方式打开文件。
修改
也许使用**会像daf提到的那样递归打开
答案 3 :(得分:4)
不需要弄乱args
的方法是将文件列表放在文本文件中,然后使用:so
命令运行该文件中的命令。
例如,如果要打开在给定目录中以.php
结尾的所有文件,请首先创建包含文件列表的files.txt
,并添加您要用于打开的任何命令的前缀它们。
sp alpha.php
sp bravo.php
sp charlie.php
然后,在vim中:
:so files.txt
如果文件列表很大,通过将files.txt
的输出重定向到文件,然后使用vim宏来预先添加{{1},快速生成ls
文件相对简单在每个文件名之前。
这显然不如使用sp
和args
命令那么优雅,但这些命令也复杂得多。
也许有一种方法可以在命令行中使用单个命令执行此操作,但即使在16年后,我仍然发现vim编程很奇怪而且很神秘。
答案 4 :(得分:1)
递归打开文件的另一种方法
find . -type f -exec vi {} \;
答案 5 :(得分:1)
如果您想添加到参数列表中;
:arga what_you-d_like_to_add
见
:he arga
来自/ in vim以获取更多信息。