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:
parent
053f712ef2
commit
03ac52fc02
@ -3406,8 +3406,8 @@ nv_screengo(oparg_T *oap, int dir, long dist)
|
||||
{
|
||||
if (dir == BACKWARD)
|
||||
{
|
||||
if ((long)curwin->w_curswant >= width2)
|
||||
/* move back within line */
|
||||
if ((long)curwin->w_curswant > width2)
|
||||
// move back within line
|
||||
curwin->w_curswant -= width2;
|
||||
else
|
||||
{
|
||||
|
@ -2633,3 +2633,25 @@ fun! Test_normal_gdollar_cmd()
|
||||
call assert_equal('100 foobar foobar fo', getreg(0))
|
||||
bw!
|
||||
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
|
||||
|
@ -757,6 +757,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
2072,
|
||||
/**/
|
||||
2071,
|
||||
/**/
|
||||
|
Loading…
x
Reference in New Issue
Block a user