Как открыть несколько файлов сразу в Vim?

Есть ли способ открыть все файлы в каталоге из Vim? Итак, :command, который скажет, что "Откройте все файлы под /some/path в буферы".

В идеале было бы здорово открыть все файлы под рекурсивно.

Ответ 1

Команда, которую вы ищете, - args:

Например:

:args /path_to_dir/*

откроет все файлы в каталоге

Ответ 2

Почему это не работает, если я хочу открыть все файлы, заканчивающиеся на определенное расширение? Я попробовал

:n ./**.cs

и открывает только файлы в текущем каталоге.

Я нашел ответ. Правильный код :n **/*.cs

Для получения дополнительной информации :h find

Ответ 3

Вы пробовали

:n /some/path/*

Он откроет все файлы в /some/path

Я не думаю, что он будет рекурсивно открывать файл.

ИЗМЕНИТЬ

Может быть, использование ** будет открыто рекурсивно, поскольку daf упоминается

Ответ 4

Метод, который не требует messing с args, состоит в том, чтобы поместить список файлов в текстовый файл, а затем использовать команду :so для запуска команд в этом файле.

Например, если вы хотите открыть все файлы, которые заканчиваются на .php в данном каталоге, сначала создайте files.txt, содержащий список файлов, добавленный с помощью любой команды, которую вы хотите использовать для их открытия.

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

Затем в пределах vim:

:so files.txt

Если список файлов велик, относительно легко создать файл files.txt, перенаправив вывод файла ls в файл, а затем используя макрос vim, чтобы добавить sp перед каждым именем файла.

Это явно не так элегантно, как использование команд args и argdo, но эти команды также намного сложнее.

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

Ответ 5

Другой способ открытия файлов рекурсивно

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

Ответ 6

Если вы хотите добавить в список аргументов,

:arga what_you-d_like_to_add

см

:he arga

из/in vim для получения дополнительной информации.