Hmmm, I see...
However, I think it should be possible to fix it since the forward search
('/') don't mess up in such cases.
I also have a "workaround" (in Vimscript) that **seems** to work (I wrote
and tested it quite quickly, so I'm not sure):
function! Select_match() abort
  if &selection == 'exclusive' && stridx(&virtualedit, 'onemore') == -1
    return ''
  endif
  let [l1, c1] = getpos('''<')[1:2]
  let [l2, c2] = getpos('''>')[1:2]
  let pos = getpos('.')
  let l = pos[1] + (l2 - l1)
  let c = pos[2] + (c2 - c1)
  if l1 != l2
    let c += strwidth(getline(l1)) - strwidth(getline(pos[1]))
  endif
  execute 'normal ' . l . 'G' . c . '|v' . pos[1] . 'G' . pos[2] . '|'
endfunction
This function should behave as the 'gN' command...

++
Osman

2016-10-09 18:01 GMT+02:00 Christian Brabandt <cbli...@256bit.org>:

> On So, 09 Okt 2016, Osman Koçak wrote:
>
> > OK, can you please let me know when the patch eventually gets into Vim.
> > Thanks again!
>
> Hm, that is a tricky one and I am not sure how to solve that one.
>
> If you take this text (here with line numbers:)
> 1 test test test test
> 2 test test test test
> 3 test test test test
> 4 test
> 5 test test test
>
> The basic logic for the gN motion is, (1st) move to the next match and
> from there (2nd) move to the end of the previous match, then (3rd) mark
> everything until the beginning of the now current match.
>
> However the search pattern "test\ntest" adds some uncertainty, where the
> next and previous match starts. Consider your cursor on the first
> character of the word test in line 3. The motion gN will first move it
> to the next match, which is at the beginning of the next line (line 4),
> however, at the same time, it is still part of the current match.
> Therefore, jumping back to the previous match will move the cursor to
> line 2 end of the first word test.
>
> To fix that, we would need to make sure, that at step one, we have to
> move over everything which is part of the current match and I really
> don't know if this is possible.
>
> I am uncertain whether this is a bug or should be documented, that gN
> might not work well for overlapping multiline patterns.
>
> 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+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
-- 
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+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to