else
{
// to previous line
- if (curwin->w_cursor.lnum == 1)
- {
- retval = FAIL;
- break;
- }
- --curwin->w_cursor.lnum;
#ifdef FEAT_FOLDING
// Move to the start of a closed fold. Don't do that when
// 'foldopen' contains "all": it will open in a moment.
(void)hasFolding(curwin->w_cursor.lnum,
&curwin->w_cursor.lnum, NULL);
#endif
+ if (curwin->w_cursor.lnum == 1)
+ {
+ retval = FAIL;
+ break;
+ }
+ --curwin->w_cursor.lnum;
+
linelen = linetabsize(ml_get_curline());
if (linelen > width1)
curwin->w_curswant += (((linelen - width1 - 1) / width2)
*/
case 'j':
case K_DOWN:
- // with 'nowrap' it works just like the normal "j" command; also when
- // in a closed fold
- if (!curwin->w_p_wrap
-#ifdef FEAT_FOLDING
- || hasFolding(curwin->w_cursor.lnum, NULL, NULL)
-#endif
- )
+ // with 'nowrap' it works just like the normal "j" command.
+ if (!curwin->w_p_wrap)
{
oap->motion_type = MLINE;
i = cursor_down(cap->count1, oap->op_type == OP_NOP);
case 'k':
case K_UP:
- // with 'nowrap' it works just like the normal "k" command; also when
- // in a closed fold
- if (!curwin->w_p_wrap
-#ifdef FEAT_FOLDING
- || hasFolding(curwin->w_cursor.lnum, NULL, NULL)
-#endif
- )
+ // with 'nowrap' it works just like the normal "k" command.
+ if (!curwin->w_p_wrap)
{
oap->motion_type = MLINE;
i = cursor_up(cap->count1, oap->op_type == OP_NOP);
bwipe!
endfunc
+func Test_fold_relative_move()
+ enew!
+ set fdm=indent sw=2 wrap tw=80
+
+ let content = [ ' foo', ' bar', ' baz',
+ \ repeat('x', 100),
+ \ ' foo', ' bar', ' baz'
+ \ ]
+ call append(0, content)
+
+ normal zM
+
+ call cursor(3, 1)
+ call assert_true(foldclosed(line('.')))
+ normal gj
+ call assert_equal(2, winline())
+
+ call cursor(2, 1)
+ call assert_true(foldclosed(line('.')))
+ normal 2gj
+ call assert_equal(3, winline())
+
+ call cursor(5, 1)
+ call assert_true(foldclosed(line('.')))
+ normal gk
+ call assert_equal(3, winline())
+
+ call cursor(6, 1)
+ call assert_true(foldclosed(line('.')))
+ normal 2gk
+ call assert_equal(2, winline())
+
+ set fdm& sw& wrap& tw&
+endfunc
+
" vim: shiftwidth=2 sts=2 expandtab