Как искать в каталоге файлов в vim?
Общая задача программирования для меня в vim:
:s/some pattern/
выполните некоторую работу
n #
находит следующую запись
выполните некоторую работу
n #
находит следующую запись
...
Теперь s/....
выполняет поиск только в текущем файле.
Есть ли способ сделать это, но искать через каталог файлов? Скажите "s/..../" по всем файлам в подкаталогах pwd
, которые заканчиваются на .hpp из .cpp?
Спасибо!
Ответы
Ответ 1
Вы можете просто использовать команду :grep
: или для более полной интеграции инструментов поиска используйте расширение grep.vim.
Просто введите :help grep
, чтобы получить хорошую документацию о том, что доступно из коробки в Vim.
Использование :grep foo *.?pp
должно делать то, что вы хотите.
Это откроет список QuickFix, как и тот, который вы используете с помощью :make
, что позволяет перейти к найденным вхождениям.
Ответ 2
:help windo
:help bufdo
man find
man xargs
find ./start/point -iname "*.cpp" -print0 | xargs -0 vim
:bufdo s/baar/foo/gc
:wall
:qall
gc "global confirm", wall (написать все), qall (совершенно все). Чтобы просмотреть список файлов: ls top перейти к следующему файлу: wn (написать далее) или: bn (следующий буфер). Кстати, xargs управляет большими кусками файла в памяти, чтобы доставить vim withou erros.