Ben, Thanks for your prompt response. Somehow I am getting 3 copies of your premature, and complete replies.
Yes. You're right \*\* was one of the approaches I used. Unfortunately * is treated as a metacharacter/special character/keyword by grep/vimgrep/c language and this where the difficulty is originating from. I tried your suggestion, \*\@<!\*\*\*\@!, and I get a no pattern found reply while I stirring at a line that has **. How would you do this in grep on cygwin command line? Thanks again. ________________________________ From: Ben Fritz <[email protected]> To: [email protected] Cc: "[email protected]" <[email protected]>; hilal Adam <[email protected]> Sent: Wednesday, April 4, 2012 12:28 PM Subject: Re: vimgrep On Wednesday, April 4, 2012 12:22:19 PM UTC-5, Ben Fritz wrote: > On Wednesday, April 4, 2012 12:12:28 PM UTC-5, hilal Adam wrote: > > Sorry if not correct platform for this question.</div> > > Need to use vimgrep/grep to find a particular string in c code. I am > > trying to find all occurrences of '**' (pointer to pointer). But I get > > hundreds of lines of output for all comment lines which include a minimum > > of 2 '*'s.</div> > > Any help is appreciated.</div> > > > > </div> > > HA > > </div></div></div> > > vimgrep, just like '/' searching in Vim, uses regular expressions. In a > regular expression, * means "as many as possible of the preceding search > atom" which normally means "as many as possible of the preceding character". > > You don' Dammit, I accidentally hit some key combination which Google Groups used to post before I was done. You don't give the exact search you used, so I was guessing here that you searched with ** as your search pattern, which will match zero or more '*' characters, but I realize now that this will match absolutely anything, because "as many as possible" means zero or more, so ** will match every line in every file. Probably, then, you searched for \*\*, which will match 2 '*' characters in a row. However, it will match ANY two * characters, even if followed by another character which is not a * character. You need to specify that you only want to match where the preceding character and the next character are not also *. To do this, I'd use a pattern like: \*\@<!\*\*\*\@! or simpler, with "very not magic": \V*\@<!***\@! See :help /\@<! and :help /\@! -- You received this message from the "vim_use" 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 from the "vim_use" 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
