vim-patch:9.0.1545: text not scrolled when cursor moved with "g0" and "h" (#23599)

Problem:    Text not scrolled when cursor moved with "g0" and "h".
Solution:   Adjust w_skipcol when needed. (Luuk van Baal, closes vim/vim#12387)

8667a5678f
This commit is contained in:
luukvbaal 2023-05-13 02:15:01 +02:00 committed by GitHub
parent 2835b0daad
commit a6d63591f1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 14 additions and 0 deletions

View File

@ -2527,6 +2527,7 @@ int oneleft(void)
}
curwin->w_set_curswant = true;
adjust_skipcol();
return OK;
}

View File

@ -5272,6 +5272,7 @@ static void nv_g_home_m_cmd(cmdarg_T *cap)
curwin->w_valid &= ~VALID_WCOL;
}
curwin->w_set_curswant = true;
adjust_skipcol();
}
/// "g_": to the last non-blank character in the line or <count> lines downward.

View File

@ -419,6 +419,18 @@ func Test_smoothscroll_cursor_position()
exe "normal \<C-Y>"
call s:check_col_calc(1, 3, 41)
" Test "g0/g<Home>"
exe "normal gg\<C-E>"
norm $gkg0
call s:check_col_calc(1, 2, 21)
" Test moving the cursor behind the <<< display with 'virtualedit'
set virtualedit=all
exe "normal \<C-E>"
norm 3lgkh
call s:check_col_calc(3, 2, 23)
set virtualedit&
normal gg3l
exe "normal \<C-E>"