27

ag文字列/ファイル検索に良い結果が得られるVimで使用しています。

ただし、ag のパターンがどのように構築されるかについてのドキュメントはあまりないようです。

Practical Vim book の例では、vimgrep の代わりに ag を使用しようとしています。

ディレクトリ内のすべてのファイルで「Pragmatic Vim」が出現するたびに再帰的に検索し、この文字列を「Practical Vim」に置き換えたいと考えています。一部のファイルには「Pragmatic Bookshelf」もあり、その文字列はそのままにしておく必要があります。

本はこのアプローチを提案しています:

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

そしてそのステップの後、クイックフィックスリストに:Qargsプラグインコマンドを入力し、最後に:argdo %s//Practical/g

/Pragmatic\zeでは、を使用してパターンを指定するにはどうすればよいagですか?

agがここでやろうとしていることのために設計されていますか?

4

1 に答える 1

30

Silver Searcher ツールは、PCRE (Perl 互換正規表現) 構文を使用します。したがって、Vim の の代わりに、Perl 構文を使用して正の先読み:\zeを使用する必要があります。(対応する後読みは になります。)(?=pattern)\zs(?<=pattern)

コマンドラインで例を示していますが、Vim内からは同じである必要があります:

$ ag 'Pragmatic(?= Vim)'
于 2014-03-05T07:58:15.953 に答える