diff options
author | Bram Moolenaar <Bram@vim.org> | 2017-10-15 22:13:37 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2017-10-15 22:13:37 +0200 |
commit | 44cc4cf72fdd12cd9a779031d443aac4254d51ae (patch) | |
tree | e0d017be95b6445a127a1105f39041374a5a7162 | |
parent | 67418d97b457d2e27fe342472d3c9fd342ffc47f (diff) | |
download | vim-git-44cc4cf72fdd12cd9a779031d443aac4254d51ae.tar.gz |
patch 8.0.1201: "yL" is affected by 'scrolloff'v8.0.1201
Problem: "yL" is affected by 'scrolloff'. (Eli the Bearded)
Solution: Don't use 'scrolloff' when an operator is pending.
-rw-r--r-- | runtime/doc/motion.txt | 10 | ||||
-rw-r--r-- | src/normal.c | 4 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 13 insertions, 3 deletions
diff --git a/runtime/doc/motion.txt b/runtime/doc/motion.txt index 673d1c572..85d0c4ace 100644 --- a/runtime/doc/motion.txt +++ b/runtime/doc/motion.txt @@ -1317,7 +1317,10 @@ the current line is included. You can then use "%" to go to the matching line. H To line [count] from top (Home) of window (default: first line on the window) on the first non-blank character |linewise|. See also 'startofline' option. - Cursor is adjusted for 'scrolloff' option. + Cursor is adjusted for 'scrolloff' option, unless an + operator is pending, in which case the text may + scroll. E.g. "yH" yanks from the first visible line + until the cursor line (inclusive). *M* M To Middle line of window, on the first non-blank @@ -1327,7 +1330,10 @@ M To Middle line of window, on the first non-blank L To line [count] from bottom of window (default: Last line on the window) on the first non-blank character |linewise|. See also 'startofline' option. - Cursor is adjusted for 'scrolloff' option. + Cursor is adjusted for 'scrolloff' option, unless an + operator is pending, in which case the text may + scroll. E.g. "yL" yanks from the cursor to the last + visible line. <LeftMouse> Moves to the position on the screen where the mouse click is |exclusive|. See also |<LeftMouse>|. If the diff --git a/src/normal.c b/src/normal.c index d78a53bae..fbeffe51e 100644 --- a/src/normal.c +++ b/src/normal.c @@ -5954,7 +5954,9 @@ nv_scroll(cmdarg_T *cap) curwin->w_cursor.lnum = curbuf->b_ml.ml_line_count; } - cursor_correct(); /* correct for 'so' */ + /* Correct for 'so', except when an operator is pending. */ + if (cap->oap->op_type == OP_NOP) + cursor_correct(); beginline(BL_SOL | BL_FIX); } diff --git a/src/version.c b/src/version.c index 30a13fca2..edc29cc4f 100644 --- a/src/version.c +++ b/src/version.c @@ -762,6 +762,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1201, +/**/ 1200, /**/ 1199, |