Loading ...
Sorry, an error occurred while loading the content.

74872Re: Rgrep not working on vim 64-bit, win7

Expand Messages
  • lazureus
    Jan 13, 2014
    • 0 Attachment
      W dniu niedziela, 28 kwietnia 2013 18:42:08 UTC+2 użytkownik yega...@... napisał:
      > Hi,
      >
      >
      >
      > On Tue, Apr 23, 2013 at 11:52 PM, Dariusz Gadomski <dgadomski@...> 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

      Hi,
      I'm encountering some similar problems as Dariusz have seen however on the 64-bit Ubuntu. Trying to run :Rgrep from VIM I get following error message :

      Error detected while processing function

      <SNR>19_RunGrepRecursive..<SNR>19_RunGrepCmd:
      line 20:
      E484: Can't open file /tmp/vAgZSwX/0

      As I said I use 64-bit 13.10 Ubuntu with freshly cloned grep plugin from the :

      https://github.com/yegappan/grep

      Plugin is cloned into the bundle directory because I use pathogen plugin. I was wonder maybe you could help me with my problem, I'd really appreciate your help.

      --
      --
      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 vim_dev+unsubscribe@....
      For more options, visit https://groups.google.com/groups/opt_out.
    • Show all 19 messages in this topic