Tengo problemas con los greps en Emacs.lgrep y rgrep en Emacs
a) grep no parece entender el. [Ch] para buscar archivos .c y .h. Esta es una opción predeterminada proporcionada por Emacs con el comando lgrep. El ejemplo es buscar la palabra "global" en archivos .c/.h.
grep -i -nH "global" *.[ch]
grep: *.[ch]: No such file or directory
Grep exited abnormally with code 2 at Mon Feb 16 19:34:36
¿Este formato no es válido?
b) El uso de rgrep me sale el siguiente error:
find . "(" -path "*/CVS" -o -path "*/.svn" -o -path "*/{arch}" -o -path "*/.hg" -o -path "*/_darcs" -o -path "*/.git" -o -path "*/.bzr" ")" -prune -o -type f "(" -iname "*.[ch]" ")" -print0 | xargs -0 -e grep -i -nH "global"
FIND: Wrong parameter format
Grep finished (matches found) at Mon Feb 16 19:37:10
estoy usando Emacs 22.3.1 en Windows XP con la GNU W32 Utilidades (grep, find, xargs etc.). Grep v2.5.3 y encuentra v4.2.20.
¿Qué me estoy perdiendo?
ACTUALIZACIÓN:
Lástima que no se puede aceptar múltiples respuestas ... ya que la solución a mis problemas se extendió a cabo.
grep -i -nH "global" *.c *.h
Esto soluciona el primer problema. Gracias luapyad!
(setq find-program "c:\\path\\to\\gnuw32\\find.exe")
emacs estaba utilizando Windows find.exe. Forzar el hallazgo gnu32 solucionó el segundo problema. Gracias scottfrazer.
Sin embargo, todavía me gusta ack mejor.
Una forma más sencilla de usar rgrep es: grep -r --include = \ * [ch] --exclude = \ */{CVS. , .svn, arch, .hg, _darcs, .git, .bzr} -i -nH global. –
¿Podría cambiar su publicación para reflejar con precisión la respuesta para find-program? Me causaste algunas dificultades hoy. La diferencia es la necesidad de barras diagonales dobles. (set-find-program "C: \\ path \\ to \\ gnuw32 \\ find.exe") –
@Matthew Talbert, creo que el procesador de reducción se estaba tragando las barras invertidas adicionales. Envié una edición para arreglar eso. – Alan