diff --git a/src/testdir/dumps/Test_nosplitscroll_callback_1.dump b/src/testdir/dumps/Test_splitkeep_callback_1.dump
similarity index 100%
rename from src/testdir/dumps/Test_nosplitscroll_callback_1.dump
rename to src/testdir/dumps/Test_splitkeep_callback_1.dump
diff --git a/src/testdir/dumps/Test_nosplitscroll_callback_2.dump b/src/testdir/dumps/Test_splitkeep_callback_2.dump
similarity index 100%
rename from src/testdir/dumps/Test_nosplitscroll_callback_2.dump
rename to src/testdir/dumps/Test_splitkeep_callback_2.dump
diff --git a/src/testdir/dumps/Test_nosplitscroll_callback_3.dump b/src/testdir/dumps/Test_splitkeep_callback_3.dump
similarity index 100%
rename from src/testdir/dumps/Test_nosplitscroll_callback_3.dump
rename to src/testdir/dumps/Test_splitkeep_callback_3.dump
diff --git a/src/testdir/dumps/Test_nosplitscroll_callback_4.dump b/src/testdir/dumps/Test_splitkeep_callback_4.dump
similarity index 100%
rename from src/testdir/dumps/Test_nosplitscroll_callback_4.dump
rename to src/testdir/dumps/Test_splitkeep_callback_4.dump
diff --git a/src/testdir/dumps/Test_nosplitscroll_fold_1.dump b/src/testdir/dumps/Test_splitkeep_fold_1.dump
similarity index 100%
rename from src/testdir/dumps/Test_nosplitscroll_fold_1.dump
rename to src/testdir/dumps/Test_splitkeep_fold_1.dump
diff --git a/src/testdir/dumps/Test_nosplitscroll_fold_2.dump b/src/testdir/dumps/Test_splitkeep_fold_2.dump
similarity index 100%
rename from src/testdir/dumps/Test_nosplitscroll_fold_2.dump
rename to src/testdir/dumps/Test_splitkeep_fold_2.dump
diff --git a/src/testdir/dumps/Test_nosplitscroll_fold_3.dump b/src/testdir/dumps/Test_splitkeep_fold_3.dump
similarity index 100%
rename from src/testdir/dumps/Test_nosplitscroll_fold_3.dump
rename to src/testdir/dumps/Test_splitkeep_fold_3.dump
diff --git a/src/testdir/dumps/Test_nosplitscroll_fold_4.dump b/src/testdir/dumps/Test_splitkeep_fold_4.dump
similarity index 100%
rename from src/testdir/dumps/Test_nosplitscroll_fold_4.dump
rename to src/testdir/dumps/Test_splitkeep_fold_4.dump
diff --git a/src/testdir/gen_opt_test.vim b/src/testdir/gen_opt_test.vim
index 83f43f7..e0f3e48 100644
--- a/src/testdir/gen_opt_test.vim
+++ b/src/testdir/gen_opt_test.vim
@@ -134,6 +134,7 @@
       \ 'spelllang': [['', 'xxx', 'sr@latin'], ['not&lang', "that\\\rthere"]],
       \ 'spelloptions': [['', 'camel'], ['xxx']],
       \ 'spellsuggest': [['', 'best', 'double,33'], ['xxx']],
+      \ 'splitkeep': [['cursor', 'screen', 'topline'], ['xxx']],
       \ 'switchbuf': [['', 'useopen', 'split,newtab'], ['xxx']],
       \ 'tagcase': [['smart', 'match'], ['', 'xxx', 'smart,match']],
       \ 'term': [[], []],
diff --git a/src/testdir/test_window_cmd.vim b/src/testdir/test_window_cmd.vim
index aa69522..017fa67 100644
--- a/src/testdir/test_window_cmd.vim
+++ b/src/testdir/test_window_cmd.vim
@@ -1632,31 +1632,29 @@
   set laststatus&
 endfunc
 
-" Ensure no scrolling happens with 'nosplitscroll' for a sequence of
+" Test "screen" and "cursor" values for 'splitkeep' with a sequence of
 " split operations for various options: with and without a winbar,
 " tabline, for each possible value of 'laststatus', 'scrolloff',
-" 'equalalways', and regardless of the cursor position.
-func Test_nosplitscroll_options()
-  set nowrap
-  set nosplitscroll
-
+" 'equalalways', and with the cursor at the top, middle and bottom.
+func Test_splitkeep_options()
   " disallow window resizing
   let save_WS = &t_WS
   set t_WS=
 
   let gui = has("gui_running")
   inoremap <expr> c "<cmd>copen<bar>wincmd k<CR>"
-  for run in range(0, 10)
-    tabnew | tabonly! | redraw    
-    let tabline = (gui ? 0 : ((run % 5) ? 1 : 0))
-    let winbar_sb = (run % 2) && (run % 3)
-    execute 'set scrolloff=' . (!(run % 4) ? 0 : run)
-    execute 'set laststatus=' . (run % 3)
-    execute 'set ' . ((run % 2) ? 'equalalways' : 'noequalalways')
-    execute 'set ' . ((run % 3) ? 'splitbelow' : 'nosplitbelow')
+  for run in range(0, 20)
+    let &splitkeep = run > 10 ? 'topline' : 'screen'
+    let &scrolloff = (!(run % 4) ? 0 : run)
+    let &laststatus = (run % 3)
+    let &splitbelow = (run % 3)
+    let &equalalways = (run % 2)
+    let wsb = (run % 2) && &splitbelow
+    let tl = (gui ? 0 : ((run % 5) ? 1 : 0))
+    let pos = !(run % 3) ? 'H' : ((run % 2) ? 'M' : 'L')
+    tabnew | tabonly! | redraw
     execute (run % 5) ? 'tabnew' : ''
     execute (run % 2) ? 'nnoremenu 1.10 WinBar.Test :echo' : ''
-    let pos = !(run % 3) ? 'H' : ((run % 2) ? 'M' : 'L')
     call setline(1, range(1, 256))
     " No scroll for restore_snapshot
     norm G
@@ -1672,17 +1670,17 @@
     call assert_equal(1, line("w0"))
     call assert_equal(&scroll, winheight(0) / 2)
     wincmd j
-    call assert_equal(win_screenpos(0)[0] - tabline - winbar_sb, line("w0"))
+    call assert_equal(&spk == 'topline' ? 1 : win_screenpos(0)[0] - tl - wsb, line("w0"))
 
     " No scroll when resizing windows
-    wincmd k | resize +2
+    wincmd k | resize +2 | redraw
     call assert_equal(1, line("w0"))
     wincmd j
-    call assert_equal(win_screenpos(0)[0] - tabline - winbar_sb, line("w0"))
+    call assert_equal(&spk == 'topline' ? 1 : win_screenpos(0)[0] - tl - wsb, line("w0"))
 
     " No scroll when dragging statusline
     call win_move_statusline(1, -3)
-    call assert_equal(win_screenpos(0)[0] - tabline - winbar_sb, line("w0"))
+    call assert_equal(&spk == 'topline' ? 1 : win_screenpos(0)[0] - tl - wsb, line("w0"))
     wincmd k
     call assert_equal(1, line("w0"))
 
@@ -1690,9 +1688,9 @@
     set lines+=2
     call assert_equal(1, line("w0"))
     wincmd j
-    call assert_equal(win_screenpos(0)[0] - tabline - winbar_sb, line("w0"))
+    call assert_equal(&spk == 'topline' ? 1 : win_screenpos(0)[0] - tl - wsb, line("w0"))
     set lines-=2
-    call assert_equal(win_screenpos(0)[0] - tabline - winbar_sb, line("w0"))
+    call assert_equal(&spk == 'topline' ? 1 : win_screenpos(0)[0] - tl - wsb, line("w0"))
     wincmd k
     call assert_equal(1, line("w0"))
 
@@ -1700,23 +1698,23 @@
     wincmd =
     call assert_equal(1, line("w0"))
     wincmd j
-    call assert_equal(win_screenpos(0)[0] - tabline - winbar_sb, line("w0"))
+    call assert_equal(&spk == 'topline' ? 1 : win_screenpos(0)[0] - tl - wsb, line("w0"))
     wincmd k
     call assert_equal(1, line("w0"))
 
     " No scroll in windows split multiple times
     vsplit | split | 4wincmd w
-    call assert_equal(win_screenpos(0)[0] - tabline - winbar_sb, line("w0"))
+    call assert_equal(&spk == 'topline' ? 1 : win_screenpos(0)[0] - tl - wsb, line("w0"))
     1wincmd w | quit | wincmd l | split
-    call assert_equal(win_screenpos(0)[0] - tabline - winbar_sb, line("w0"))
+    call assert_equal(&spk == 'topline' ? 1 : win_screenpos(0)[0] - tl - wsb, line("w0"))
     wincmd j
-    call assert_equal(win_screenpos(0)[0] - tabline - winbar_sb, line("w0"))
+    call assert_equal(&spk == 'topline' ? 1 : win_screenpos(0)[0] - tl - wsb, line("w0"))
 
     " No scroll in small window
     2wincmd w | only | 5split | wincmd k
     call assert_equal(1, line("w0"))
     wincmd j
-    call assert_equal(win_screenpos(0)[0] - tabline - winbar_sb, line("w0"))
+    call assert_equal(&spk == 'topline' ? 1 : win_screenpos(0)[0] - tl - wsb, line("w0"))
 
     " No scroll for vertical split
     quit | vsplit | wincmd l
@@ -1725,8 +1723,8 @@
     call assert_equal(1, line("w0"))
 
     " No scroll in windows split and quit multiple times
-    quit | redraw | split | redraw | split | redraw | quit | redraw
-    call assert_equal(win_screenpos(0)[0] - tabline - winbar_sb, line("w0"))
+    quit | redraw | split | split | quit | redraw
+    call assert_equal(&spk == 'topline' ? 1 : win_screenpos(0)[0] - tl - wsb, line("w0"))
 
     " No scroll for new buffer
     1wincmd w | only | copen | wincmd k
@@ -1734,7 +1732,7 @@
     only
     call assert_equal(1, line("w0"))
     above copen | wincmd j
-    call assert_equal(win_screenpos(0)[0] - tabline, line("w0"))
+    call assert_equal(&spk == 'topline' ? 1 : win_screenpos(0)[0] - tl, line("w0"))
 
     " No scroll when opening cmdwin, and no cursor move when closing cmdwin.
     only | norm ggL
@@ -1751,22 +1749,21 @@
     only | execute "norm gg5\<C-e>" | split | wincmd k
     call assert_equal(6, line("w0"))
     wincmd j
-    call assert_equal(5 + win_screenpos(0)[0] - tabline - winbar_sb, line("w0"))
+    call assert_equal(&spk == 'topline' ? 6 : 5 + win_screenpos(0)[0] - tl - wsb, line("w0"))
   endfor
 
   tabnew | tabonly! | %bwipeout!
   iunmap c
-  set wrap&
   set scrolloff&
   set splitbelow&
   set laststatus&
   set equalalways&
-  set splitscroll&
+  set splitkeep&
   let &t_WS = save_WS
 endfunc
 
-function Test_nosplitscroll_cmdwin_cursor_position()
-  set nosplitscroll
+function Test_splitkeep_cmdwin_cursor_position()
+  set splitkeep=screen
   call setline(1, range(&lines))
 
   " No scroll when cursor is at near bottom of window and cusor position
@@ -1789,11 +1786,11 @@
   call assert_equal(1, col('.'))
 
   %bwipeout!
-  set splitscroll&
+  set splitkeep&
 endfunction
 
-function Test_nosplitscroll_misc()
-  set nosplitscroll
+function Test_splitkeep_misc()
+  set splitkeep=screen
   set splitbelow
 
   call setline(1, range(1, &lines))
@@ -1815,67 +1812,68 @@
 
   %bwipeout!
   set splitbelow&
-  set splitscroll&
+  set splitkeep&
 endfunc
 
-function Test_nosplitscroll_callback()
+function Test_splitkeep_callback()
   CheckScreendump
   let lines =<< trim END
-    set nosplitscroll
+    set splitkeep=screen
     call setline(1, range(&lines))
-    function WincmdCb(a, b)
+    function C1(a, b)
       split | wincmd p
     endfunction
-    function TermCb(a, b)
+    function C2(a, b)
       close | split
     endfunction
-    nnoremap t <cmd>call popup_create(term_start(&shell, { 'hidden': 1, 'exit_cb': 'TermCb' }), {})<CR>
-    nnoremap j <cmd>call job_start([&shell, &shellcmdflag, "echo"], { 'exit_cb': 'WincmdCb' })<CR>
+    nn j <cmd>call job_start([&sh, &shcf, "true"], { 'exit_cb': 'C1' })<CR>
+    nn t <cmd>call popup_create(term_start([&sh, &shcf, "true"],
+          \ { 'hidden': 1, 'exit_cb': 'C2' }), {})<CR>
   END
-  call writefile(lines, 'XTestNosplitscrollCallback', 'D')
-  let buf = RunVimInTerminal('-S XTestNosplitscrollCallback', #{rows: 8})
+  call writefile(lines, 'XTestSplitkeepCallback', 'D')
+  let buf = RunVimInTerminal('-S XTestSplitkeepCallback', #{rows: 8})
 
   call term_sendkeys(buf, "j")
-  call VerifyScreenDump(buf, 'Test_nosplitscroll_callback_1', {})
+  call VerifyScreenDump(buf, 'Test_splitkeep_callback_1', {})
 
-  call term_sendkeys(buf, ":quit\<CR>Htexit\<CR>")
-  call VerifyScreenDump(buf, 'Test_nosplitscroll_callback_2', {})
+  call term_sendkeys(buf, ":quit\<CR>Ht")
+  call VerifyScreenDump(buf, 'Test_splitkeep_callback_2', {})
 
   call term_sendkeys(buf, ":set sb\<CR>:quit\<CR>Gj")
-  call VerifyScreenDump(buf, 'Test_nosplitscroll_callback_3', {})
+  call VerifyScreenDump(buf, 'Test_splitkeep_callback_3', {})
 
-  call term_sendkeys(buf, ":quit\<CR>Gtexit\<CR>")
-  call VerifyScreenDump(buf, 'Test_nosplitscroll_callback_4', {})
+  call term_sendkeys(buf, ":quit\<CR>Gt")
+  call VerifyScreenDump(buf, 'Test_splitkeep_callback_4', {})
 endfunc
 
-function Test_nosplitscroll_fold()
-CheckScreendump
+function Test_splitkeep_fold()
+  CheckScreendump
 
-let lines =<< trim END
-  set nosplitscroll
-  set foldmethod=marker
-  set number
-  let line = 1
-  for n in range(1, &lines)
-    call setline(line, ['int FuncName() {/*{{{*/', 1, 2, 3, 4, 5, '}/*}}}*/',
-          \ 'after fold'])
-    let line += 8
-  endfor
-END
-  call writefile(lines, 'XTestNosplitscrollFold', 'D')
-  let buf = RunVimInTerminal('-S XTestNosplitscrollFold', #{rows: 10})
+  let lines =<< trim END
+    set splitkeep=screen
+    set foldmethod=marker
+    set number
+    let line = 1
+    for n in range(1, &lines)
+      call setline(line, ['int FuncName() {/*{{{*/', 1, 2, 3, 4, 5, '}/*}}}*/',
+            \ 'after fold'])
+      let line += 8
+    endfor
+  END
+  call writefile(lines, 'XTestSplitkeepFold', 'D')
+  let buf = RunVimInTerminal('-S XTestSplitkeepFold', #{rows: 10})
 
   call term_sendkeys(buf, "L:wincmd s\<CR>")
-  call VerifyScreenDump(buf, 'Test_nosplitscroll_fold_1', {})
+  call VerifyScreenDump(buf, 'Test_splitkeep_fold_1', {})
 
   call term_sendkeys(buf, ":quit\<CR>")
-  call VerifyScreenDump(buf, 'Test_nosplitscroll_fold_2', {})
+  call VerifyScreenDump(buf, 'Test_splitkeep_fold_2', {})
 
   call term_sendkeys(buf, "H:below split\<CR>")
-  call VerifyScreenDump(buf, 'Test_nosplitscroll_fold_3', {})
+  call VerifyScreenDump(buf, 'Test_splitkeep_fold_3', {})
 
   call term_sendkeys(buf, ":wincmd k\<CR>:quit\<CR>")
-  call VerifyScreenDump(buf, 'Test_nosplitscroll_fold_4', {})
+  call VerifyScreenDump(buf, 'Test_splitkeep_fold_4', {})
 endfunction
 
 " vim: shiftwidth=2 sts=2 expandtab
