Emacs の grep に問題があります。
a) grep は、.c および .h ファイルを検索するための .[ch] を理解していないようです。これは、lgrepコマンドで Emacs によって提供されるデフォルトのオプションです。この例では、.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 など) とともに使用しています。v2.5.3 を grep し、v4.2.20 を見つけます。
私は何が欠けていますか?
アップデート:
残念ながら、複数の回答を受け入れることはできません...私の問題に対する解決策が分散しているためです。
grep -i -nH "global" *.c *.h
これにより、最初の問題が解決されます。ありがとうございます!
(setq find-program "c:\\path\\to\\gnuw32\\find.exe")
emacs は確かに Windows の find.exe を使用していました。gnu32 find を強制すると、2番目の問題が修正されました。ありがとうスコットフレイザー。
しかし、私は今でもackが一番好きです。