salir - comandos emacs
Comando Emacs para búsqueda en archivos. (7)
Emacs proporciona un comando incorporado:
M-x grep RET CODE_INIT_PARAMETERS *.c
(y ''grep-find
para buscar subdirectorios)
Aunque prefiero la interfaz provista por un paquete externo igrep
(que proporciona los comandos igrep
y igrep-find
).
Quiero buscar en todos los archivos de la carpeta actual la macro CODE_INIT_PARAMETERS. Puedo hacer Mx ocurrir CODE_INIT_PARAMETERS pero esto solo muestra entradas de buffers abiertos.
¿Hay alguna forma de buscar todos los archivos de la carpeta actual, de Emacs, sin cambiar al shell Mx y luego a grep? Quiero evitar grep, porque para algunos comandos (Mx ocurre) Emacs hace saltos al código ofensivo, y también quiero eso. Gracias.
En los casos donde
- puedes estar buscando repetidamente; y
- etags funcionará
puede considerar usar etags
e invocar la tags-search
(vinculada a M-.
de forma predeterminada) o tags-search
(sin enlace predeterminado, pero se puede continuar con M-,
).
Esto es una mejora en la sugerencia de Trey Jackson.
Mx grep
Verá el comando grep, por ejemplo, grep -nH -e
Agregue R al primer conjunto de indicadores (para recursivo) y ponga su término de búsqueda después de -e
grep -nHR -e CODE_INIT_PARAMETERS
Pulsa RET. Los resultados serán comprensibles por Emacs; podrá hacer clic o navegar hacia ellos, como ocurre con Mx. Es posible que deba colocar el directorio de búsqueda al final del comando:
grep -nHR -e CODE_INIT_PARAMETERS /path/to/root/of/search
Mx find-grep-dired también funciona de manera similar a rgrep
si abre una carpeta en dired y marca todos los archivos (con ''m'') puede ejecutar ''dired-do-search ('' A ''en mis enlaces). Esto buscará todos los archivos marcados. Para llegar al siguiente, ejecute tags-loop-continue (M-,)
He configurado varias funciones elisp para marcar varios subconjuntos de los archivos (archivos .h, archivos .cpp, etc.) y para crear un dired recursivo para buscar en un árbol completo ...
Puedes probar Mx rgrep
.
Se pedirá:
- el directorio donde desea buscar recursivamente
- Un patrón de archivo para los archivos que desea incluir en la búsqueda.
- el patrón que quieres buscar
Como extra, excluirá los directorios privados de control de origen de su búsqueda (como CVS, .svn o .git).