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

Re: \ze position

Expand Messages
  • Ben Fritz
    ... I don t know of a way to get both the beginning and end column of a match with a single function call. What are they needed for? Maybe there is a way to do
    Message 1 of 6 , Mar 22, 2013
    • 0 Attachment
      On Friday, March 22, 2013 10:51:07 AM UTC-5, Axel Bender wrote:
      > @ben
      >
      > Sorry, I was too unspecific. I want to use the \z[es] from the last match() to prevent searching for the same - complicated - expression two times (once with match() the second time with matchend()...).
      >
      > matchlist() might come to the rescue, but I expect that having access to these column positions would be faster.

      I don't know of a way to get both the beginning and end column of a match with a single function call.

      What are they needed for? Maybe there is a way to do what you need without them.

      As a general rule doing as much as possible with a built-in function is actually faster than doing it with manual vimscript, but obviously there are exceptions.

      --
      --
      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@....
      For more options, visit https://groups.google.com/groups/opt_out.
    • John Beckett
      ... I forget the details, but I sweated blood working out how to avoid getting stuck using match(), and came to the conclusion that two calls are required. I
      Message 2 of 6 , Mar 22, 2013
      • 0 Attachment
        Axel Bender wrote:
        > Sorry, I was too unspecific. I want to use the \z[es] from
        > the last match() to prevent searching for the same -
        > complicated - expression two times (once with match() the
        > second time with matchend()...).

        I forget the details, but I sweated blood working out how to
        avoid getting stuck using match(), and came to the conclusion
        that two calls are required. I believe this code is correct, and
        it may be of interest.

        http://vim.wikia.com/wiki/Copy_search_matches#GetMatches.28.29_alternative

        BTW my overflowing todo list includes that I will fix that tip.
        I have improved the code (which I use frequently), but even
        better is that newer Vims are able to use :s///n with a
        replacement expression to copy matches. The current tip has that
        technique, but it is absurdly convoluted because older Vims
        ignore the replacement expression if the n flag is used.

        John

        --
        --
        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@....
        For more options, visit https://groups.google.com/groups/opt_out.
      • Axel Bender
        Thanks for the feedback! I had hoped that - like in Perl - there is a [(possibly) undocumented] feature or a trick that lets you extract the start and the
        Message 3 of 6 , Mar 22, 2013
        • 0 Attachment
          Thanks for the feedback!

          I had hoped that - like in Perl - there is a [(possibly) undocumented] feature or a "trick" that lets you extract the start and the end positions (columns) after a *single* call to match(), using both \zs and \ze.

          I would prefer such a solution over having to determine the end position of the match with a second call to matchend(), employing the same set of - possibly "expensive" parameters.

          ...

          --
          --
          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@....
          For more options, visit https://groups.google.com/groups/opt_out.
        Your message has been successfully submitted and would be delivered to recipients shortly.