Я бы хотел сделать рефакторинг кода в vim. Я нашел следующий драгоценный камень, чтобы применить преобразования ко всем буферам.
:dobuf %s/match/replace/gc
Мой код размещен с корневым каталогом, имеющим каталог для зависимостей и каталог сборки. Я хочу загрузить все файлы .cc, .h и .proto из ./src ./include и ./tests. Но не из зависимостей и сборочных каталогов, в фоновые / скрытые буферы. Я хочу сделать это, чтобы выполнить рефакторинг с помощью команды выше.
Если кто-то знает более чистый способ выполнения сценария использования, пожалуйста, покажите его.
Примечание: Я знаю, что вы можете связать вместе find
и sed
, чтобы сделать это из оболочки , однако я предпочитаю делать это в vim, если это вообще возможно. Префикс / gc в шаблоне, который я представил выше, служит для подтверждения замен в каждом совпадении, мне нужна эта функциональность, так как часто я не хочу заменять определенные совпадения, решения find
и sed
слишком строгие и привередливые при попытке использовать мой вариант использования также легко уничтожить файлы при замене на месте.
Для справки используйте sed и найдите:
Список замен кандидатов:
find src include tests -name *.h -or -name *.cc -or -name *.proto|
xargs sed -n 's/ListServices/list_services/p'
Выполнить замены:
`find src include tests -name *.h -or -name *.cc -or -name *.proto|
xargs sed -i 's/ListServices/list_services`'