From 30ef922f3908edae9511c029da294b92f342a1cc Mon Sep 17 00:00:00 2001 From: Jan Edmund Lazo Date: Thu, 21 Jan 2021 23:43:49 -0500 Subject: vim-patch:8.2.2385: "gj" and "gk" do not work correctly when inside a fold Problem: "gj" and "gk" do not work correctly when inside a fold. Solution: Move check for folding. (closes vim/vim#7724, closes vim/vim#4095) https://github.com/vim/vim/commit/e71996bd0865659bde5450f466bc3e53e83431b2 --- src/nvim/testdir/test_fold.vim | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'src/nvim/testdir') diff --git a/src/nvim/testdir/test_fold.vim b/src/nvim/testdir/test_fold.vim index 88ce64b9eb..18f328acf4 100644 --- a/src/nvim/testdir/test_fold.vim +++ b/src/nvim/testdir/test_fold.vim @@ -822,4 +822,39 @@ func Test_fold_create_delete() 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 -- cgit