69 votes

Emacs commande pour des recherches dans les fichiers de

Je recherche dans tous les fichiers du dossier en cours pour la macro CODE_INIT_PARAMETERS. Je peux le faire M-x se produire CODE_INIT_PARAMETERS mais cela montre seulement les entrées de l'ouverture des tampons.

Est-il possible de rechercher tous les fichiers du dossier en cours, à partir d'Emacs, sans avoir à passer à M-x shell, puis grep ? Je veux éviter de grep, parce que pour certaines commandes (M-x se produire) Emacs faire des sauts de code incriminé, et je veux que trop. Merci.

129voto

Jazz Points 1533

Vous pouvez essayer d' M-x rgrep.

Il vous sera demander:

  • le répertoire dans lequel vous souhaitez rechercher de manière récursive
  • un modèle de fichier pour les fichiers que vous souhaitez inclure dans la recherche
  • le motif que vous souhaitez rechercher

En supplément, elle exclut de contrôle de source privée répertoires de votre recherche (comme CVS, .svn ou .git).

13voto

Trey Jackson Points 49816

Emacs dispose d'une commande intégrée:

M-x grep RET CODE_INIT_PARAMETERS *.c

(et 'grep-find de recherche dans les sous-répertoires)

Bien que je préfère l'interface fournie par un package externe igrep (qui fournit les commandes igrep et igrep-find).

8voto

Brian Postow Points 3765

si vous ouvrez un dossier dans dired, et de marquer tous les fichiers (avec un "m") vous pouvez exécuter 'dired-do-search ('A' dans mes liaisons). Cette recherche tous les fichiers marqués. Pour arriver à la prochaine, exécuter les balises de-boucle-continuer (M,)

J'ai mis en place plusieurs elisp fonctions pour marquer les différents sous-ensembles de fichiers (.h fichiers .fichiers cpp, etc) et de créer un récursif dired à la recherche d'un arbre entier...

6voto

Steven Huwig Points 8029

C'est une amélioration sur Trey Jackson suggestion.

M-x grep

Vous verrez la commande grep, par exemple, grep -nH -e

R-le premier ensemble d'indicateurs (récursif), et de mettre votre terme de recherche après -e

grep -nHR -e CODE_INIT_PARAMETERS

Hit RET. Les résultats seront compréhensibles par Emacs, vous allez être en mesure de cliquer ou de naviguer autrement pour eux, tout comme le M-x se produire. Vous devrez peut-être mettre l'annuaire de recherche à la fin de la commande:

grep -nHR -e CODE_INIT_PARAMETERS /path/to/root/of/search

2voto

dmckee Points 50318

Dans les cas où

  1. vous pouvez être à la recherche à plusieurs reprises; et
  2. etags va travailler

vous pourriez envisager d'utiliser etags , et en invoquant soit find-tag (lié à l' M-. par défaut) ou tags-search (pas de liaison par défaut, mais peut être poursuivi M-,).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X