Ho problemi con il greps in Emacs.lgrep e rgrep in Emacs
a) grep non sembra comprendere il [.] Ch per cercare i file .c e .h. Questa è un'opzione predefinita fornita da Emacs con il comando lgrep. L'esempio sta cercando la parola "globale" nei file .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
Questo formato non è valido?
b) Utilizzando rgrep ottengo il seguente errore:
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
Sto usando Emacs 22.3.1 su Windows XP con la GNU W32 Utils (grep, find, xargs ecc). Grep v2.5.3 e trova v4.2.20.
Cosa mi manca?
UPDATE:
Peccato non si può accettare più risposte ... dal momento che la soluzione ai miei problemi sono sparsi.
grep -i -nH "global" *.c *.h
Questo risolve il primo problema. Grazie luapyad!
(setq find-program "c:\\path\\to\\gnuw32\\find.exe")
emacs stava effettivamente utilizzando il find.exe di Windows. Forzare il gnu32 trova risolto il secondo problema. Grazie scottfrazer.
Tuttavia, mi piace ancora ack migliore.
Un modo più semplice per utilizzare rgrep è: grep -r --include = \ * [ch] --exclude = \ */{CVS. , .svn, arch, .hg, _darcs, .git, .bzr} -i -nH globale. –
Potresti cambiare il tuo post per riflettere con precisione la risposta per il programma di ricerca? Mi hai fatto qualche problema oggi. La differenza è la necessità di doppie barre di sicurezza. (setq find-programma "C: \\ percorso \\ a \\ gnuw32 \\ find.exe") –
@ Matthew Talbert, penso che il processore di markdown stava inghiottendo i backslash extra. Ho inviato una modifica per risolverlo. – Alan