打开vi中的所有文件(包括隐藏文件)

时间:2011-12-06 19:14:13

标签: vim load

我有一个像这样的文件结构

/foo/bar/
├── .foo.cfg
├── foo.cfg
├── foo.data
├── foo.py
├── .svn
│   ├── ...
│   ├── ...
│   └── ...
├── .
└── ..

我想将所有隐藏和非隐藏文件打开到vim中。我可以像这样手动完成

vi .foo.cfg foo.cfg foo.data foo.py

但是当有100多个文件时,这不起作用。我也试过以下但没有成功

#hidden files not loaded
vi *

#Includes folders and '.' and '..'
vi * .*

#loads files one at a time
for i in `ls -a` ; do vi $i; done;

#loads files one at a time
find . -name "*" -type f -maxdepth 1 -exec vi {} ";"

3 个答案:

答案 0 :(得分:5)

以下内容应该有效:

find . -maxdepth 1 -type f -exec vi {} +

来自find手册页:

   -exec command {} +  
     

-exec选项的这个变体在所选文件上运行指定的命令,但命令行是通过在末尾附加每个选定的文件名来构建的;命令的调用总数将远远少于匹配文件的数量。命令行的构建方式与xargs构建命令行的方式大致相同。命令中只允许一个“{}”实例。该命令在起始目录中执行。

答案 1 :(得分:3)

一个简单的解决方案是

vim $(find . -type f)

请注意,这将打开当前文件夹中的所有文件,对当前文件夹的文件夹中的文件执行相同操作。你也可以尝试

vim * .[^.]*

这不会打开...,因为它与模式不匹配。

答案 2 :(得分:0)

在vim内部,做

:args * .* **/{*,.*}

应该可以工作,就像例如。

:args `find . -maxdepth 1 -type f`

还有:argadd:argdel:argdo:rewind:next等来处理您的文件。