gpt4 book ai didi

emacs rgrep 在 find 命令中失败 (Windows 7)

转载 作者:行者123 更新时间:2023-12-01 08:16:30 25 4
gpt4 key购买 nike

这似乎是一个愚蠢的问题,也许它应该指向 gnuwin32 的论坛,但我会在这里尝试一下。

我在 Windows 的 emacs 中使用 grep。我不得不使用 grep-find 与 rgrep,我更喜欢使用它,因为它清除了许多我不想 grep 的文件。不幸的是,rgrep 似乎创建了一个“查找”命令,该命令太长以至于窒息并给出错误。

使用 M-x rgrep 在我的 python 文件中搜索“导入”(我知道这个例子很愚蠢)给出了这个输出:

找 。 -type d "("-path "/SCCS"-o -path "/RCS"-o -path "/CVS"-o -path "/MCVS"-o -path "/.svn"-o -path "/.git"-o -path "/.hg"-o -path "/.bzr"-o -path "*/_MTN"-o -path "*/_darcs"-o -path "/{arch}"")"-prune -o "("-name ".#"-o -name ".o"-o -name "~"-o -name ".bin"-o -name ".bak"-o -名称 ".obj"-o -name ".map"-o -name ".ico"-o -name ".pif"-o -name ".lnk"-o -name ".a"-o -name ".ln"-o -name ".blg"-o -name ".bbl"-o -name ".dll"-o -name ".drv"-o -name ".vxd"-o -name ".386 "-o -name ".elc"-o -name ".lof"-o -name ".glo"-o -name ".idx"-o -name ".lot"-o -name ".fmt"- o -name ".tfm"-o -name ".class"-o -name ".fas"-o -name ".lib"-o -name ".mem"-o -name ".x86f"-o -名称 ".sparcf"-o -name ".dfsl"-o -name ".pfsl"-o -name ".d64fsl"-o -name ".p64fsl"-o -name ".lx64fsl"-o -name ".lx32fsl"-o -name ".dx64fsl"-o -name ".dx32fsl"-o -name ".fx64fsl"-o -name ".fx32fsl"-o -name ".sx64fsl"-o -name ".sx32fsl "-o -name ".wx64fsl"-o -name ".wx32fsl"-o -name ".fasl"-o -n ame ".ufsl"-o -name ".fsl"-o -name ".dxl"-o -name ".lo"-o -name ".la"-o -name ".gmo"-o -name ".mo"-o -name ".toc"-o -name ".aux"-o -name ".cp"-o -name ".fn"-o -name ".ky"-o -name ".pg "-o -name ".tp"-o -name ".vr"-o -name ".cps"-o -name ".fns"-o -name ".kys"-o -name ".pgs"- o -name ".tps"-o -name ".vrs"-o -name ".pyc"-o -name ".pyo"")"-prune -o -type f "("-iname "*.py "")"-exec grep -i -nH -e "import"{} +
find:路径必须在表达式之前
用法:find [-H] [-L] [-P] [路径...] [表达式]

如果我将此命令剪切并粘贴到从/usr/bin 中提取 find 的 cygwin 窗口中,则它可以正常工作并找到多个实例。如果我将相同的命令粘贴到然后使用 gnuwin32/bin/find.exe 的 cmd 窗口中,我会得到与上述相同的错误(查找:路径必须在表达式之前)。我还在 mingw shell 中尝试了该命令,它在那里工作(使用/msys/1.0/bin/find.exe)。更复杂的是,将 find 的 mingw 版本复制到/gnuwin32/bin/没有帮助。没有错误,但 grep 从未真正找到任何东西。更糟糕的是,这样做会以同样的方式破坏“grep-find”;什么也找不到。

我猜在使用 gnuwin32 版本的“查找”时,我在这里执行的整个命令的长度是有限制的。

我想我可以放弃 gnuwin32 并更改我的路径以指向我使用的命令的/msys/1.0/bin,但是这些命令将不再在 cmd 窗口中运行,至少在没有访问 mingw 的情况下不会DLL。我的一部分想知道为什么 gnuwin32 版本的 find 令人窒息。有任何想法吗?很抱歉这个冗长的问题。

最佳答案

emacs 知道可执行文件在哪里吗?

我的 .emacs 中有类似的东西您可能希望按照您的文件路径采用

 ;;; excutable paths (for unix commands from MSYS and git from msysgit)
(setq exec-path (append exec-path
'("C:/MinGW/msys/1.0/bin/"
"C:/MinGW/bin/"
"c:/MinGW/mingw32/bin"

"C:/Program Files (x86)/Git/bin")))

关于emacs rgrep 在 find 命令中失败 (Windows 7),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17197714/

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