On Thu, May 11, 2006 at 10:40:20AM -0600, Shaun Cummins wrote: > Thanks for the responses everyone! > > > BTW, do you realize that in your end pattern, ".\+" will match all of > > "STA1" "n" "" "" "" "" "" "" > >and .* will then match nothing? > > The values within the quotes can be any text [\w\d-\.\+]. The 6 value > on the first line tells me how many lines are following. I needed to > use .* in the case where the value is set to zero, otherwise my > example where the number is set to zero doesn't match.
I think you missed my point. Everything from the first " on the line to the last one, including all the " characters in between, is matched by ".\+". Maybe this *is* what you want, but it does look odd. > >If that's the case I suspect the only way to do it is to set up > >a separate syntax entry for each possible number, so it would be > > > syntax region Keyword start="^\w\+\s\+1\>" end={pattern for one line} > > syntax region Keyword start="^\w\+\s\+2\>" end={pattern for two lines} > > >and so on. Perhaps "syntax match" would be better, depending on the > >precise requirements. It's bad news if the number can go as high as > >2000 but I can't think of an easier way to do it. > > Thanks Matthew. I thought that might be the only way to do it. > Theoretically the number is unlimited, but in practice the number is > almost always less than 12. Since I can't use the captured value in > the counter, I think you are right. This probably is the only way to > do it. I think another way to do it would be using nextgroup. That is, after a start line ending in " 6", specify the nextgroup as Line6; Line6 specifies a nextgroup of Line5; Line5 specifies a nextgroup of Line4; and so on. I am not an expert on syntax definitions, so I am not sure what (dis)advantages this method would have. :help :syn-nextgroup HTH --Benji Fisher