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
3 changed files with 14 additions and 0 deletions

View File

@@ -2527,6 +2527,7 @@ int oneleft(void)
} }
curwin->w_set_curswant = true; curwin->w_set_curswant = true;
adjust_skipcol();
return OK; 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_valid &= ~VALID_WCOL;
} }
curwin->w_set_curswant = true; curwin->w_set_curswant = true;
adjust_skipcol();
} }
/// "g_": to the last non-blank character in the line or <count> lines downward. /// "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>" exe "normal \<C-Y>"
call s:check_col_calc(1, 3, 41) 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 normal gg3l
exe "normal \<C-E>" exe "normal \<C-E>"