helm-ag (ou similaire) recherche uniquement dans les fichiers javascript


10

Je voudrais restreindre find / grep à (disons) uniquement les fichiers javascript (principalement parce que c'est ce que je fais dans "un autre éditeur").

Les fichiers Javascript de mon ancien projet Ruby-on-Rails ont l'une de ces extensions de fichier: -

.js, .js.erb, .coffee, .js.coffee, .js.coffee.erb, .jsx, .js.jsx, .js.jsx.erb (et peut-être plus)

Si je le pouvais, je limiterais la recherche aux fichiers avec ces extensions de fichier et prédéfinirais cette liste pour ne pas avoir à la taper à chaque fois.

Je pense que j'ai besoin d'écrire une fonction personnalisée, s'il existe un moyen de spécifier le type de fichier, mais j'ai du mal à découvrir comment le faire .. et peut-être que je viens de prendre un flux de travail étrange de mon ancien éditeur?

EDIT: désolé, la question n'était pas claire .. je ne veux pas le corriger afin qu'emacs recherche toujours dans les fichiers Javascript .. quand je veux rechercher dans les fichiers Javascript, je veux rechercher uniquement les fichiers avec ces extensions .. quand je veux rechercher dans les fichiers html je veux rechercher uniquement dans les fichiers avec les extensions .html, .html.erb, .html.haml, .haml, etc.

Réponses:


11

Si vous utilisez la helm-agcommande, vous pouvez spécifier une option comme -G\.js$ search_pattern, ou si vous utilisez helm-do-ag, vous pouvez utiliser le C-upréfixe pour spécifier l'extension.

C'est du screencast.

entrez la description de l'image ici

Merci d'avoir utilisé helm-ag.


1
Comment pouvons-nous spécifier de rechercher uniquement dans les fichiers .js et .java? (c'est-à-dire, 2 extensions de fichier différentes)
user3341592

2
Je n'ai jamais compris les noms helm-aget helm-do-ag. Que signifient-ils vraiment? Comment rappeler ce qu'ils font?
user3341592


1

Bien que vous ayez à l'esprit une liste de types de fichiers que vous souhaitez rechercher, notez que l'argument habituel findauquel sélectionne les fichiers est celui -namequi prend un modèle de globalisation. Donc, quelque chose comme ça -name *.ns.*devrait correspondre à tous les fichiers Javascript de votre projet.

Helm et son intégration ag ont probablement quelque chose de similaire.

Ces commandes enregistrent l'historique. Utilisez C-pou la flèche vers le haut pour revenir aux grep-findrecherches précédentes . Vous pouvez utiliser C-r .ns.pour rappeler la dernière recherche que vous avez effectuée dans les fichiers Javascript, puis modifier simplement le modèle de recherche.


1

Si vous utilisez ag

Si vous utilisez ag, vous pouvez placer un .agignorefichier à la racine du projet avec les fichiers que vous souhaitez ignorer. Voici un exemple:

# Extension ignores
*.log
*~
*#*#
*.txt
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.