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
для получения дополнительной информации.