Sunday, February 15, 2015

Re: Search via syntax group

Hi Justin!

On Sa, 14 Feb 2015, Justin M. Keyes wrote:

> On Fri, Feb 13, 2015 at 1:51 AM, Christian Brabandt <cblists@256bit.org> wrote:
> > Am 2015-02-13 07:05, schrieb Dominique Pellé:
> >>
> >> Justin M. Keyes <justinkz@gmail.com> wrote:
> >>
> >>> How to search for the next instance of a syntax group?
> >>>
> >>> For example, say I have this .bashrc file:
> >>>
> >>> ls foo
> >>> rm foo
> >>>
> >>> "ls" is assigned the "bashStatement" syntax group.
> >>>
> >>> How do I jump to the next token with that group?
> >>>
> >>> Is there a way to get the regex expression from a syntax group?
> >>>
> >>> If not... seems like there should be. A syntax-highlighted buffer has
> >>> lots of information encoded in it. There should be a way to leverage
> >>> that with motions, /, :s, and :g.
> >
> >
> > Currently it only works for :s by using the hack
> > :s/foobar/\=synIDattr(synID(..),'name')=~?'Comment'?'FOOBAR':submatch(0)/
> >
> >> Maybe the SyntaxMotion plugin is useful to you:
> >>
> >> http://www.vim.org/scripts/script.php?script_id=2965
> >>
> >>> Is there a way to get the regex expression from a syntax group?
> >>
> >>
> >> No, but I've been wondering about this too. It could be useful
> >> to search by syntax group.
> >
> >
> > It's in the todo list buried. search for \%h and \%s
> >
> > In fact, this was a reason, why I started hacking Vim source.
>
> Very interesting! Did you think at the time it would be a pretty
> straightforward thing? Because that's what I was thinking, so I'm glad
> you warned me ... :)
> > Unfortunately, it didn't work completly and messed up syntax
> > highlighting
> > badly.
>
> Do you have the patch somewhere? It's not linked in the todo.txt.

I can't find it. Possibly it got lost, when I switched my working
machines. It probably wouldn't apply anymore since it was done before
the NFA Regexp Engine was merged.

Best,
Christian
--

--
--
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 because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

No comments: