salir comandos emacs

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

  1. puedes estar buscando repetidamente; y
  2. 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


También hay un modo ack-grep para emacs que utiliza la herramienta ack-grep que está diseñada específicamente para los lenguajes de programación '''' grepping ''y IMHO se ve mejor que la salida de Mx grep.

Pero como se mencionó anteriormente, etags debería ser la manera correcta!


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).