>>>>> Steinar Bang <
s...@dod.no>:
>>>>> Eli Zaretskii <
el...@gnu.org>:
>> First, try Emacs 23.3 or later, there were some changes made there to
>> fix problems with very long command lines, perhaps you are hitting
>> that limit.
> Thanks! Will try!
Tried emacs 23.4 which was the newest 23.x available. That got me a bit
further:
C:\ProgramFiles\GnuWin32\bin\find . "(" -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 -name "*.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 -name "*.sparcf" -o -name "*.fasl" -o -name "*.ufsl" -o -name "*.fsl" -o -name "*.dxl" -o -name "*.pfsl" -o -name "*.dfsl" -o -name "*.p64fsl" -o -name "*.d64fsl" -o -name "*.dx64fsl" -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 "*.csproj" ")" -print0 | "xargs" -0 -e grep -i -nH -e "searchterm"
'"xargs"' is not recognized as an internal or external command,
operable program or batch file.
In my .emacs I had the following:
;; Make rgrep find the find program from GnuWin32
(setq find-program "C:\\ProgramFiles\\GnuWin32\\bin\\find")
So I looked in grep.el (which defines the find-program variable) and
found that it had an xargs-program variable as well. Defined it like
this in .emacs (note that it is necessary to start a new emacs for the
changes to take effect. Just evaluating that setq in the *scratch*
buffer won't work):
;; Make rgrep find the xargs program from GnuWin32
(setq xargs-program "C:\\ProgramFiles\\GnuWin32\\bin\\xargs")
This worked better, but I got a more or less expected error message that
it couldn't find "grep":
C:\ProgramFiles\GnuWin32\bin\find . "(" -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 -name "*.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 -name "*.sparcf" -o -name "*.fasl" -o -name "*.ufsl" -o -name "*.fsl" -o -name "*.dxl" -o -name "*.pfsl" -o -name "*.dfsl" -o -name "*.p64fsl" -o -name "*.d64fsl" -o -name "*.dx64fsl" -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 "*.csproj" ")" -print0 | "C:\ProgramFiles\GnuWin32\bin\xargs" -0 -e grep -i -nH -e "searchterm"
C:\ProgramFiles\GnuWin32\bin\xargs: grep: No such file or directory
So I added the following to .emacs, and started a fresh emacs 23.4
instance:
;; Make rgrep find the grep program from GnuWin32
(setq grep-program "C:\\ProgramFiles\\GnuWin32\\bin\\grep")
Success!
So in summary:
- Use emacs 23.4
- Install FindUtils and grep from GnuWin32
http://gnuwin32.sourceforge.net/
- Set variables in .emacs to whereever you installed the GnuWin32
binaries:
;; Make rgrep find the GnuWin32 executables it needs
(setq find-program "C:\\ProgramFiles\\GnuWin32\\bin\\find")
(setq xargs-program "C:\\ProgramFiles\\GnuWin32\\bin\\xargs")
(setq grep-program "C:\\ProgramFiles\\GnuWin32\\bin\\grep")
(The use "C:\ProgramFiles" for the GnuWin32 location, is just an old
habit of mine, to give ported unix programs an installation path with no
spaces)