Откройте все файлы (включая скрытые) в vi - PullRequest
4 голосов
/ 06 декабря 2011

У меня есть такая структура файла

/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 ]

5 голосов
/ 06 декабря 2011

Должно работать следующее:

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

со страницы руководства find:

   -exec command {} +  

Этот вариант опции -exec запускает указанную команду для выбранных файлов, но командная строка создается путем добавления каждого выбранного имени файла в конце; общее количество вызовов команды будет намного меньше, чем количество совпавших файлов. Командная строка строится почти так же, как xargs создает свои командные строки. В команде допускается только один экземпляр "{}". Команда выполняется в начальном каталоге.

3 голосов
/ 07 декабря 2011

Простое решение будет

vim $(find . -type f)

обратите внимание, что при этом открываются все файлы в текущей папке, и то же самое для файлов в папках текущей папки. Вы также можете попробовать

vim * .[^.]*

это не откроется . или .., потому что это не соответствует шаблону.

0 голосов
/ 08 декабря 2011

Внутри Vim, делает

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

должно работать, как, например,

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

Существует также :argadd, :argdel, :argdo, :rewind, :next и т. Д. Для работы с вашими файлами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...