Как я могу открыть несколько файлов одновременно в Vim? - PullRequest
85 голосов
/ 07 января 2010

Есть ли способ открыть все файлы в каталоге изнутри Vim?Таким образом, :command, который в сущности сказал бы: «Откройте все файлы в /some/path в буферы».

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

Ответы [ 6 ]

103 голосов
/ 07 января 2010

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

Например:

:args /path_to_dir/*

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

21 голосов
/ 19 мая 2010

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

:n ./**.cs

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

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

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

9 голосов
/ 07 января 2010

Вы пробовали

:n /some/path/*

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

Я не думаю, что он откроет файл, хотя.

EDIT

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

4 голосов
/ 18 мая 2015

Метод, который не требует возиться с 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 странным и загадочным.

1 голос
/ 22 июня 2014

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

:arga what_you-d_like_to_add

см

:he arga

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

1 голос
/ 02 декабря 2013

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

find . -type f -exec vi {} \;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...