Поиск файлов в подпапках

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

1 ответ

Решение

: найти команду

Для этого есть команда :fin[d]. Внутренне это вызывает find утилита (это настраивается через опцию 'findprg'), так что вы можете делать все find способен на. Тем не менее, в большинстве случаев достаточно простой формы команды:

:find *.sh

Обратите внимание, что по умолчанию аргумент обрабатывается как обычный шаблон файла (-name вариант find), который отличается от регулярных выражений, принятых /, Для поиска через регулярные выражения используйте:

:find -regex '.*_.*'

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

:find Команда вызывает меню с результатами поиска. Если вы хотите обрабатывать их как обычные файлы (например, удалять, копировать, перемещать), нажмите b, чтобы изменить представление списка.

Альтернатива, которая использует /

В качестве альтернативы вы можете заполнить текущий вид списком файлов во всех подкаталогах с помощью команды вроде (см. % U):

:!find%u

а затем использовать /, хотя это может быть менее эффективным.

Другие вопросы по тегам