aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/normal.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nvim/normal.c')
-rw-r--r--src/nvim/normal.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/nvim/normal.c b/src/nvim/normal.c
index 29070ff188..a2bdc05831 100644
--- a/src/nvim/normal.c
+++ b/src/nvim/normal.c
@@ -3492,7 +3492,11 @@ static bool nv_screengo(oparg_T *oap, int dir, long dist)
* screenline or move two screenlines.
*/
validate_virtcol();
- if (curwin->w_virtcol > curwin->w_curswant
+ colnr_T virtcol = curwin->w_virtcol;
+ if (virtcol > (colnr_T)width1 && *p_sbr != NUL)
+ virtcol -= vim_strsize(p_sbr);
+
+ if (virtcol > curwin->w_curswant
&& (curwin->w_curswant < (colnr_T)width1
? (curwin->w_curswant > (colnr_T)width1 / 2)
: ((curwin->w_curswant - width1) % width2