ag de l'Argent à la Recherche: quelles sont les règles pour les modèles?
Je suis en utilisant ag
dans Vim avec de bons résultats pour string/recherche de fichiers.
Cependant, il semble y avoir pas beaucoup de documentation comment les modèles sont construits pour l'ag.
Je suis en train d'utiliser ag à la place de vimgrep dans un exemple tiré de la Pratique Vim livre.
Je veux trouver toutes les occurrences de "Pragmatique Vim" dans tous les fichiers dans un répertoire de façon récursive, et de substituer à cette chaîne avec la Pratique de "Vim". Il y a aussi "Pragmatique Bibliothèque" dans certains dossiers, et que la chaîne doit demeurer.
le livre suggère que cette approche:
/Pragmatic\ze Vim
:vimgrep /<C-r>//**/*.txt
Et après cette étape, remplir quickfix liste avec :Qargs
plugin de commande, et, enfin :argdo %s//Practical/g
Maintenant, comment puis-je spécifier /Pragmatic\ze
modèle à l'aide de ag
?
Est ag
à tous conçus pour ce que je suis en train de faire ici?
Vous devez vous connecter pour publier un commentaire.
L'Argent Chercheur outil utilise PCRE (Perl Compatible Regular Expression) de la syntaxe. Ainsi, au lieu de Vim est
\ze
, vous devez utiliser la syntaxe de Perl pour anticipation positif:(?=pattern)
. (Le correspondant lookbehind pour\zs
serait(?<=pattern)
.)Je vais les montrer à votre exemple sur la ligne de commande, mais il devrait être identique à partir de Vim:
$ ag '(?<=Pragmatic )Vim'
dans un répertoire trouve Vim, je suis en train d'essayer de trouver le Pragmatique partie. Cependant, depuis que je suis en train de remplir quickfix avec les fichiers, cette commande semble à la limite de la liste pour les fichiers nécessaires. Je suppose que j'ai besoin de lire sur les PCRE. Il me semble que j'ai encore besoin d'utiliser/Practical\ze
pour:argdo %s//Pragmatic/ge
partie?ag
de commande. Pour:s
à l'intérieur de Vim, vous devez toujours utiliser\ze
.