Я хочу отредактировать несколько файлов, соответствующих выражению glob. Например, чтобы отредактировать все файлы конфигурации git в дочерних каталогах, я могу сделать это в оболочке:
vim */.git/config
В :
командной строке Vim я ожидал :find */.git/config
сделать что-то подобное (то есть открыть все файлы, соответствующие выражению glob), но вместо этого он жалуется E77: Too many file names
.
Есть ли команда Vim или однострочная строка для открытия нескольких файлов, соответствующих выражению с подстановочным знаком / глобусом (что не требует написания функции)?
источник
:args */.git/config
Хорошо :) на самом деле заполняет список буферов, так что:bnext
работает тоже. Это кажется странным? (Vim 7.4.52 и Neovim)]a
циклически изменяет:args
список, если установлен github.com/tpope/vim-unimpaired .:argadd file*
можно сделать.**
), вам нужноglobstar
установить set, см .: Сопоставление всех файлов во всех вложенных каталогах с глобализацией оболочки .Чтобы открыть соответствующие файлы в отдельных вкладках ...
Объяснение:
:n
(:next
) устанавливает список следующего файла для всех совпадений.tab all
открывает все файлы в списке следующего файла в новых вкладках.… или …
Объяснение: In
glob(…)
, 0 означает включение всех подходящих файлов, даже если в противном случае они были бы проигнорированы из-за настроекsuffixes
илиwildignorecase
. 1 означает возврат списка вместо строки.exe "tabe" f
является краткой формойexecute "tabedit" f
и означает, чтобы открыть файл, указанный переменнойf
в новой вкладке.источник
:n */.git/config | buffer
работает.Не ждите ничего, прежде чем читать документацию.
В дополнение к ответу Тома, вы можете напрямую использовать
:next
в качестве альтернативы:args
.источник
Открытие файлов
vim */.git/config
определенно должно работать. Если этого не произойдет, вы должны обновить Vim до 7.4 (предыдущая версия была более глючной).Или попробуйте одно из следующих действий (в редакторе):
источник
:args
.args
- это только обходной путь, но более подробно он показывает, как использовать расширение оболочки в vim it-self на тот случай, если другие пользователи захотят использовать его для более сложных решений, используяfind
, например, это . Поэтому я думаю, что это придает дополнительную ценность вашему вопросу. Надеюсь, с тобой все в порядке.vim */foo
, и я никак не мог быть связан с версией Vim, потому что это функция оболочки .Очевидно, но не перечислено выше - пример поиска всех файлов sql, имеющих в своем имени строку create_table
и проверь их
и открой первый
источник