Поиск файлов в подпапках
Как я могу искать файлы так же, как /
команда, но рекурсивно сканирует подпапки. Или, может быть, есть другой подход, как я могу получить список файлов, которые соответствуют некоторому шаблону в текущей папке, включая все подпапки.
1 ответ
: найти команду
Для этого есть команда :fin[d]. Внутренне это вызывает find
утилита (это настраивается через опцию 'findprg'), так что вы можете делать все find
способен на. Тем не менее, в большинстве случаев достаточно простой формы команды:
:find *.sh
Обратите внимание, что по умолчанию аргумент обрабатывается как обычный шаблон файла (-name
вариант find
), который отличается от регулярных выражений, принятых /
, Для поиска через регулярные выражения используйте:
:find -regex '.*_.*'
Если вы хотите сканировать только определенные подпапки, просто выберите их перед запуском команды, и поиск будет ограничен только этими каталогами.
:find
Команда вызывает меню с результатами поиска. Если вы хотите обрабатывать их как обычные файлы (например, удалять, копировать, перемещать), нажмите b, чтобы изменить представление списка.
Альтернатива, которая использует /
В качестве альтернативы вы можете заполнить текущий вид списком файлов во всех подкаталогах с помощью команды вроде (см. % U):
:!find%u
а затем использовать /
, хотя это может быть менее эффективным.