vim-patch:9.1.{0258,0260}
vim-patch:9.1.0258: half-page scrolling broke backward compatibility
Problem: Support for 'smoothscroll' in (half-)page scrolling broke backward compatibility and can be made to work better. (after v9.1.215) Solution: Restore the previous cursor and end-of-buffer behavior for half-page scrolling and improve 'smoothscroll' support. (Luuk van Baal)
https://github.com/vim/vim/commit/cb204e688e5c9d56a78b621ef27c35d91860cb09
vim-patch:9.1.0260: Problems with "zb" and scrolling to new topline with 'smoothscroll'
Problem: "zb" does not reveal filler lines at the start of a buffer. Scrolled cursor position with 'smoothscroll' is unpredictable, and may reset skipcol later if it is not visible (after v9.1.258) Solution: Replace confusing for loop that reaches final control value too early with while loop. Set "w_curswant" accordingly so cursor will be placed in visible part of topline. (Luuk van Baal)
https://github.com/vim/vim/commit/bd28cae1f1c21c0e3743e3427c98bbd848fad237
Fix #28106 Fix #28115
Porting to Nvim revealed some more differences, investigating whether those require follow-up Vim patches.
test/functional/legacy/normal_spec.lua @ 41 now fails because scroll_to_bottom() does not properly handle topfill at the start of a single line buffer(https://github.com/vim/vim/pull/14394 should fix that).
I just compiled neovim straight from luukvbaal:vim-9.1.0258 and while <C-u>zz and <C-d>zz work great, the same issue still persists with <C-f>zz and <C-b>zz. Essentially half-page scrolling seems to be fixed, but full-page scrolling still seems broken.
What is your expected behavior? Please create a separate issue.
It already has an issue: https://github.com/neovim/neovim/issues/28106. Basically it's broken scrolling but for full-page scroll mappings + zz (which is in scope of the mentioned issue because it doesn't specify that only half-page scrolling + zz is broken).
Sorry if it's the wrong place for this comment, I can add it in the mentioned issue if that would be more appropriate.
Please answer the question: What behavior do you expect?
Expected behavior would be the same as described in https://github.com/neovim/neovim/issues/28106: For the mappings to scroll and center the cursor.
Problematic mappings are the the same as in the mentioned issue with the difference being that <C-d> (half-page scroll downwards) becomes <C-f> (full-page scroll downwards), and <C-u> (half-page scroll upwards) becomes <C-b> (full-page scroll upwards):
vim.keymap.set('n', '<C-f>', '<C-f>zz', { desc = 'Scroll downwards' })
vim.keymap.set('n', '<C-b>', '<C-b>zz', { desc = 'Scroll upwards' })
I tested on older versions and it seems that they are not supposed to behave so, so there is no bug.
Weird, works for me on stable nvim 0.9.5 appimage with --clean flag and only those mappings set. If it's not supposed to work, then fair enough I guess.
If you see difference in behavior please provide clear reproduction steps (buffer text, window size, options, keys pressed).