Je souhaite rechercher dans tous les fichiers du dossier actuel la macro CODE_INIT_PARAMETERS. Je peux faire M-x se produire CODE_INIT_PARAMETERS mais cela ne montre que les entrées de tampons ouverts.
Existe-t-il un moyen de rechercher tous les fichiers du dossier actuel, depuis Emacs, sans passer à M-x Shell puis grep? Je veux éviter grep, car pour certaines commandes (M-x se produisent) Emacs saute au code offensant, et je le veux aussi. Merci.
Tu peux essayer M-x rgrep
.
Il demandera:
En supplément, il exclura les répertoires privés de contrôle de code source de votre recherche (comme CVS, .svn ou .git).
Emacs fournit une commande intégrée:
M-x grep RET CODE_INIT_PARAMETERS *.c
(et 'grep-find
pour rechercher des 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
).
si vous ouvrez un dossier en dired et marquez tous les fichiers (avec 'm'), vous pouvez exécuter 'dired-do-search (' A 'dans mes liaisons). Cela va rechercher tous les fichiers marqués. Pour passer au suivant, exécutez tags-loop-continue (M-,)
J'ai mis en place plusieurs fonctions elisp pour marquer différents sous-ensembles de fichiers (fichiers .h, fichiers .cpp, etc.) et créer un répertoire récursif pour rechercher dans tout un arbre ...
Il s'agit d'une amélioration par rapport à la suggestion de Trey Jackson.
M-x grep
Vous verrez la commande grep, par ex. grep -nH -e
Ajoutez R au premier ensemble d'indicateurs (pour récursif) et placez votre terme de recherche après -e
grep -nHR -e CODE_INIT_PARAMETERS
Appuyez sur RET. Les résultats seront compréhensibles par Emacs - vous pourrez cliquer dessus ou y accéder autrement, comme M-x se produit. Vous devrez peut-être mettre le répertoire de recherche à la fin de la commande:
grep -nHR -e CODE_INIT_PARAMETERS /path/to/root/of/search
M-x find-grep-dired fonctionne également de la même manière que rgrep
Dans les cas où
vous pourriez envisager d'utiliser etags
et d'appeler find-tag
(lié à M-.
par défaut) ou tags-search
(pas de liaison par défaut mais peut être poursuivi avec M-,
).
Il y a aussi mode ack-grep pour les emacs qui utilisent l'outil ack-grep qui est spécifiquement conçu pour les langages de programmation '' grepping '' et IMHO est plus joli que la sortie de Mx grep.
Mais comme mentionné précédemment, les étiquettes devraient être la bonne façon!