Подтвердить что ты не робот

Ag Silver Searcher: каковы правила для шаблонов?

Я использую ag в Vim с хорошими результатами для поиска строк/файлов.

Однако, похоже, не так много документации, как шаблоны построены для ag.

Я пытаюсь использовать ag вместо vimgrep в примере из Практической книги Vim.

Я хочу найти каждое появление "Pragmatic Vim" во всех файлах в каталоге рекурсивно и заменить эту строку на "Practical Vim". В некоторых файлах также есть "Прагматическая книжная полка", и эта строка должна оставаться.

книга предлагает такой подход:

/Pragmatic\ze Vim
:vimgrep /<C-r>// **/*.txt

И после этого, заполните список fastfix с помощью команды :Qargs plugin и, наконец, :argdo %s//Practical/g

Теперь, как указать шаблон /Pragmatic\ze с помощью ag?

Является ли ag вообще для того, что я пытаюсь сделать здесь?

4b9b3361

Ответ 1

Средство Silver Searcher использует синтаксис PCRE (Perl-Compatible Regular Expression). Поэтому вместо Vim \ze вам нужно использовать синтаксис Perl для позитивного просмотра: (?=pattern). (Соответствующий lookbehind для \zs будет (?<=pattern).)

Я показываю ваш пример в командной строке, но он должен быть идентичным изнутри Vim:

$ ag 'Pragmatic(?= Vim)'