Problem: "gN" does not select the matched string.
Solution: Move the cursor to the start of the match.
curwin->w_cursor = end_pos;
if (LT_POS(VIsual, end_pos) && forward)
dec_cursor();
- else if (VIsual_active && LT_POS(curwin->w_cursor, VIsual))
+ else if (VIsual_active && LT_POS(curwin->w_cursor, VIsual) && forward)
curwin->w_cursor = pos; // put the cursor on the start of the match
VIsual_active = TRUE;
VIsual_mode = 'v';
normal 0wgNy
call assert_equal('one', @")
set selection&
-endfu
+endfunc
+
+func Test_gN_repeat()
+ new
+ call setline(1, 'this list is a list with a list of a list.')
+ /list
+ normal $gNgNgNx
+ call assert_equal('list with a list of a list', @")
+ bwipe!
+endfunc
func Test_gn_multi_line()
new
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 1823,
/**/
1822,
/**/