0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

patch 8.1.2072: "gk" moves to start of line instead of upwards

Problem:    "gk" moves to start of line instead of upwards.
Solution:   Fix off-by-one error. (Christian Brabandt, closes #4969)
This commit is contained in:
Bram Moolenaar 2019-09-24 22:47:46 +02:00
parent 053f712ef2
commit 03ac52fc02
3 changed files with 26 additions and 2 deletions

View File

@ -3406,8 +3406,8 @@ nv_screengo(oparg_T *oap, int dir, long dist)
{ {
if (dir == BACKWARD) if (dir == BACKWARD)
{ {
if ((long)curwin->w_curswant >= width2) if ((long)curwin->w_curswant > width2)
/* move back within line */ // move back within line
curwin->w_curswant -= width2; curwin->w_curswant -= width2;
else else
{ {

View File

@ -2633,3 +2633,25 @@ fun! Test_normal_gdollar_cmd()
call assert_equal('100 foobar foobar fo', getreg(0)) call assert_equal('100 foobar foobar fo', getreg(0))
bw! bw!
endfunc endfunc
func Test_normal_gk()
" needs 80 column new window
new
vert 80new
put =[repeat('x',90)..' {{{1', 'x {{{1']
norm! gk
" In a 80 column wide terminal the window will be only 78 char
" (because Vim will leave space for the other window),
" but if the terminal is larger, it will be 80 chars, so verify the
" cursor column correctly.
call assert_equal(winwidth(0)+1, col('.'))
call assert_equal(winwidth(0)+1, virtcol('.'))
norm! j
call assert_equal(6, col('.'))
call assert_equal(6, virtcol('.'))
norm! gk
call assert_equal(95, col('.'))
call assert_equal(95, virtcol('.'))
bw!
bw!
endfunc

View File

@ -757,6 +757,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
2072,
/**/ /**/
2071, 2071,
/**/ /**/