Ich habe Probleme mit den Greps in Emacs.lgrep und rgrep in Emacs
a) grep scheint das. [Ch] nicht zu verstehen, um .c und .h Dateien zu suchen. Dies ist eine Standardoption, die von Emacs mit dem Befehl lgrep bereitgestellt wird. Das Beispiel sucht nach dem Wort "global" in .c/.h Dateien.
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
Ist dieses Format nicht gültig?
b) Mit rgrep ich die folgende Fehlermeldung erhalten:
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
Ich benutze Emacs 22.3.1 unter Windows XP mit dem GNU-W32 Utils (grep, find, xargs etc.). Grep v2.5.3 und finden v4.2.20.
Was fehlt mir?
UPDATE:
Schade, man kann nicht mehrere Antworten akzeptieren ... da die Lösung für meine Probleme ausgebreitet sind.
grep -i -nH "global" *.c *.h
Dies löst das erste Problem. Danke Luapyad!
(setq find-program "c:\\path\\to\\gnuw32\\find.exe")
Emacs war in der Tat mit dem Windows find.exe. Das Erzwingen des Gnu32-Fundes hat das zweite Problem behoben. Danke Scottfrazer.
Allerdings mag ich immer noch ack am besten.
Eine einfachere Art und Weise rgrep zu verwenden ist: grep -r --include = \ * [ch] --exclude = \ */{CVS. , .svn, arch, .hg, _darcs, .git, .bzr} -i -nH global. –
Könnten Sie Ihren Beitrag so ändern, dass er die Antwort für das Suchprogramm genau wiedergibt? Du hast mir heute Schwierigkeiten bereitet. Der Unterschied besteht in der Notwendigkeit von doppelten Backslashes. (Setq Find-Programm "C: \\ Pfad \\ zu \\ gnuw32 \\ find.exe") –
@Matthew Talbert, ich denke, dass der Markdown-Prozessor die zusätzlichen Backslashes schluckte. Ich habe eine Bearbeitung eingereicht, um das zu beheben. – Alan