gpt4 book ai didi

emacs - Emacs 中的 lgrep 和 rgrep

转载 作者:行者123 更新时间:2023-12-02 23:17:57 25 4
gpt4 key购买 nike

我在使用 Emacs 中的 grep 时遇到问题。

a) grep 似乎不理解用于搜索 .c 和 .h 文件的 .[ch]。这是 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

这解决了第一个问题。谢谢卢阿皮亚德!

(setq find-program "c:\\path\\to\\gnuw32\\find.exe")

emacs 确实使用了 Windows find.exe。强制 gnu32 find 解决了第二个问题。谢谢斯科特弗雷泽。

不过我还是喜欢ack最好的。

最佳答案

我发现使用:

(setq find-program "\"C:/path/to/GnuWin32/bin/find.exe\"")
(setq grep-program "\"C:/path/to/GnuWin32/bin/grep.exe\"")

在 Windows 中效果更好,因为路径周围可能有空间,最终会搞砸。

请注意,我在 .emacs 文件中使用了这两个程序。

希望对其他有需要的程序员有所帮助;)

关于emacs - Emacs 中的 lgrep 和 rgrep,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/555376/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com