我遇到了Emacs中的greps问题.
a)grep似乎不理解.[ch]用于搜索.c和.h文件.这是Emacs使用lgrep命令提供的默认选项.该示例是在.c/.h文件中搜索"global"一词.
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
这种格式无效吗?
b)使用rgrep我收到以下错误:
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
我在Windows XP上使用Emacs 22.3.1和GNU W32 Utils(grep,find,xargs等).Grep v2.5.3并找到v4.2.20.
我错过了什么?
更新:
太糟糕了,不能接受多个答案......因为我的问题的解决方案已经散布开来.
grep -i -nH "global" *.c *.h
这解决了第一个问题.谢谢luapyad!
(setq find-program "c:\\path\\to\\gnuw32\\find.exe")
emacs确实使用了Windows find.exe.强制gnu32找到修复了第二个问题.谢谢scottfrazer.
但是,我仍然喜欢ack.
我发现使用:
(setq find-program "\"C:/path/to/GnuWin32/bin/find.exe\"") (setq grep-program "\"C:/path/to/GnuWin32/bin/grep.exe\"")
在窗户中工作得更好,因为你可以在路径周围放置一个空间并最终搞砸.
注意我在我的.emacs
文件中使用了两个程序.
希望对其他有需要的程序员有所帮助;)
对于a)看起来当前目录中根本没有.c或.h文件.
对于b)Windows试图使用自己的find而不是GNU W32 Utils中的find.尝试:
(setq find-program "c:\\path\\to\\gnuw32\\find.exe")
好吧,总有Ack和Ack.el