Hi, On Tue, Apr 23, 2013 at 11:52 PM, Dariusz Gadomski <[email protected]> wrote: >>>> > >>>> > This problem is caused by the shell command line quote escape >>>> > character in MS-Windows. >>>> > I have a fix for this issue. I will update the grep plugin and release >>>> > a new version. >>>> > >>>> > - Yegappan >>>> >>>> I was trying to analyze this problem further and what I found out that >>>> actually vim calls something like this underneath: >>>> cmd /c (C:\msys\bin\find.exe C:\dev\<my-project> -type d ( -name .SVN ) >>>> -prune >>>> -o -type f ( -name *.cpp ) -exec c:\msys\bin\grep.exe -s -n -- TODO {} >>>> ;) >>>> >>>> When I tried to paste it directly to cmd.exe I got: >>>> -prune was unexpected at this time. >>>> So no std output was generated and the process terminated with an error >>>> on stderr - hence no tmp file created. >>>> I think those brackets around cmd /c call conflict with brackets that make >>>> a part of find call itself. When I replace the outer brackets with >>>> quotation >>>> marks: >>>> cmd /c "C:\msys\bin\find.exe C:\dev\<my-project> -type d ( -name .SVN ) >>>> -prune -o -type f ( -name *.cpp ) -exec c:\msys\bin\grep.exe -s -n -- >>>> TODO {} ;" >>>> I get no error and expected output is printed. >>>> >>>> So my guess is either: >>>> - a different method is needed in the find call to group the conditions >>>> (does find even allow a different way of grouping?) or >>>> - inner brackets need somehow be escaped in the call or >>>> - vim system() call needs to be fixed to handle brackets in the argument >>>> string. >>>> >>>> Maybe is there another way to fix it or at least provide a temporary >>>> work-around? >>>> >>>> I would appreciate any hints that would enable me to use Rgrep until this >>>> problem gets fixed. >>>> >>> >>> The approach that works and used by the taglist plugin is to write the >>> command line >>> into a temporary .cmd file and execute it. The grep plugin also will use >>> this >>> approach. >>> >> >> I have uploaded a new version of the grep plugin to the Vim online website. >> You can try using the new version and let me know if you see any issues. >> > > Great, the new version returns no error. Thanks! > > However, the Quickfix list contains no filenames, only line numbers, so it's > impossible to jump directly from the quicklist to the place that grep found. > Is there a "-H" flag missing to grep or does the msys version of grep behave > differently? > > I observe one more strange thing. If I run: > :Rgrep TODO > and give the directory to search and file extensions in subsequent prompts > it all works flawlessly, but if I run: > :Rgrep TODO *.cpp > the find command is expanded to: > (...) -type f ( -name -o -name *.cpp ) (...) > and returns no results. Providing more than one extension: > :Rgrep TODO *.cpp *.h > results with expanding to: > (...) -type f ( -name -o -name *.cpp -name *.h ) (...) > which still provides no results. > > Is that behavior expected or is giving file extensions inline not supported? >
The problem in using the ":Rgrep <pattern> <filenames>" is fixed with the latest version (1.11) of the Vim plugin. - Yegappan -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
