Я использую: Ag in vim для поиска шаблонов, но я не могу понять, как искать и заменять через ВСЕ файлы в моем проекте или в пределах того, что я указываю. Как это делается?
Vim: поиск и замена Ag, глобально и внутри каталога
Ответ 1
В Vim поиск и замена по проекту в лучшем случае - это двухэтапный процесс, если вы не установите плагин, который абстрагирует эти два шага для вас, как EasyGrep.
В самой базовой форме поиск/замена по всему проекту выглядит следующим образом:
:args `grep -nl foo *.js`
:argdo %s/foo/bar/c
Это не поможет вам с :Ag
, хотя, поскольку Vim не имеет встроенной команды, аналогичной семейству :*do
, которая работает в списке quickfix.
У Дрю Нейла есть несколько скринкастов, здесь и there, которые касаются поиска/замены по всему проекту. Команда :Qfdo
, указанная в нижней части второго сообщения, специально ориентирована на пользователей :vimgrep
/:Ack
/:Ag
. С помощью этой команды и :Ag
выполняется двухэтапный процесс:
:Ag foo
:Qfdo s/foo/bar/c
- EDIT -
Теперь у Vim есть :cdo
, :cfdo
, :ldo
, :lfdo
.
Ответ 2
В vim
существует несколько решений, но для этого вам нужно открыть все файлы. Вы можете открывать файлы в разных окнах, буферах или вкладках, а для всех параметров у вас есть метод для работы со всеми файлами:
:windo :Ag
или
:bufdo :Ag
или
:tabdo :Ag
Подробнее см. :help windows
, :help buffers
или :help tab-page-commands
.