La première réponse est belle, mais elle laisse de côté certains détails critiques sur les versions modernes d'Emacs. Je suis moi-même connu d'Emacs, donc d'autres nouveaux arrivants pourraient ne pas en être conscients. Étant donné que votre objectif est de rechercher du texte DANS un fichier dans un PROJET, vous devez d'abord installer Projectile à l'aide du référentiel MELPA.
Cela installe le package dans .emacs.d et ajoute une configuration de base à .emacs dans votre répertoire $ USER (en supposant que vous avez créé le fichier .emacs), par exemple en exigeant Projectile dans votre installation Emacs.
Cependant, vous devez toujours l'activer et associer des préfixes de keymap, afin de pouvoir l'invoquer dans le mini tampon.
La réponse acceptée mentionne la commande suivante:
C-c p s g
Cela ne fonctionnera pas, sauf si vous configurez Projectile avec ce préfixe de clavier. Mais je l'ai configuré pour utiliser Cc Cp comme commande pour Project dans .emacs:
(projectile-mode +1)
(define-key projectile-mode-map (kbd "C-c C-p") 'projectile-command-map)
Maintenant, étant donné cela, je peux effectuer des recherches de texte dans les fichiers d'un projet en utilisant grep:
C-c C-p f # switch to a project first
C-c C-p s g # perform grep search in project
Pour le décomposer, C-c C-p
il invoquera Projectile et s g
effectuera la recherche grep. Vous obtiendrez une belle sortie comme celle-ci, en supposant que votre recherche est visit_contact
et que vous recherchez la spécification de Ruby dans un projet:
./spec/support/capybara_classification_code_helper.rb:21: def visit_contact
./spec/features/admin_edits_classification_code_role_dynamic_field_spec.rb:8: visit_contact
./spec/features/admin_edits_classification_code_role_dynamic_field_spec.rb:33: visit_contact
./spec/features/user_views_global_filters_from_line_item_spec.rb:9: visit_contact
rgrep
est un peu déroutant, car il exclut par défaut tous les fichiers correspondant à vos critères "fichiers inutiles".