Vim: Ag поиск и замена, глобально и внутри каталога

Я использую: Ag в vim для поиска шаблонов, но я не могу понять, как искать и заменять все файлы в моем проекте или непосредственно в том, что я указываю. Как это делается?

2 ответов


в Vim, по всему проекту поиск и заменить в лучшем случае в два этапа, если вы установите плагин, который абстрагирует эти два шага для вас, как EasyGrep.

в своей самой основной форме поиск/замена в рамках проекта выглядит следующим образом:

:args `grep -nl foo *.js`
:argdo %s/foo/bar/c

это не поможет вам много с :Ag, хотя, потому что Vim не имеет встроенной команды, подобной :*do семья, которая работает на quickfix список.

Дрю Нил имеет пару скринкастов,здесь и здесь, что дело с проектом-широкий поиск / замена. The :Qfdo команда, упомянутая в нижней части второго поста, специально ориентирована на :vimgrep/:Ack/:Ag пользователи. С команда и :Ag, двухэтапный процесс становится:

:Ag foo
:Qfdo s/foo/bar/c

-- EDIT --

ВИМ теперь :cdo, :cfdo, :ldo, :lfdo.


на vim, есть несколько решений, но вы должны открыть все файлы, чтобы иметь возможность сделать это. Вы можете открывать файлы в разных окнах, буферах или вкладках, и для всех параметров у вас есть способ работы со всеми файлами:

:windo :Ag

или

:bufdo :Ag

или

:tabdo :Ag

посмотреть :help windows, :help buffers или :help tab-page-commands для получения дополнительной информации.