patch 9.0.0640: cannot scroll by screen line if a line wraps
Problem: Cannot scroll by screen line if a line wraps.
Solution: Add the 'smoothscroll' option. Only works for CTRL-E and CTRL-Y
so far.
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index aa69dd1..070f8cb 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -7302,6 +7302,14 @@
reset.
NOTE: This option is reset when 'compatible' is set.
+ *'smoothscroll'* *'sms'* *'nosmoothscroll'* *'nosms'*
+'smoothscroll' 'sms' boolean (default off)
+ local to window
+ Scrolling works with screen lines. When 'wrap' is set and the first
+ line in the window wraps part of it may not be visible, as if it is
+ above the window.
+ NOTE: only partly implemented, works with CTRL-E and CTRL-Y.
+
*'softtabstop'* *'sts'*
'softtabstop' 'sts' number (default 0)
local to buffer
diff --git a/runtime/doc/quickref.txt b/runtime/doc/quickref.txt
index b309091..68b2eee 100644
--- a/runtime/doc/quickref.txt
+++ b/runtime/doc/quickref.txt
@@ -910,6 +910,7 @@
'smartcase' 'scs' no ignore case when pattern has uppercase
'smartindent' 'si' smart autoindenting for C programs
'smarttab' 'sta' use 'shiftwidth' when inserting <Tab>
+'smoothscroll' 'sms' scroll by screen lines when 'wrap' is set
'softtabstop' 'sts' number of spaces that <Tab> uses while editing
'spell' enable spell checking
'spellcapcheck' 'spc' pattern to locate end of a sentence
diff --git a/runtime/optwin.vim b/runtime/optwin.vim
index db433c6..04fe3b3 100644
--- a/runtime/optwin.vim
+++ b/runtime/optwin.vim
@@ -343,6 +343,9 @@
call <SID>AddOption("scroll", gettext("number of lines to scroll for CTRL-U and CTRL-D"))
call append("$", "\t" .. s:local_to_window)
call <SID>OptionL("scr")
+call <SID>AddOption("smoothscroll", gettext("scroll by screen line"))
+call append("$", "\t" .. s:local_to_window)
+call <SID>BinOptionL("sms")
call <SID>AddOption("scrolloff", gettext("number of screen lines to show around the cursor"))
call append("$", " \tset so=" . &so)
call <SID>AddOption("wrap", gettext("long lines wrap"))