ctrl - f
vim is flickering when scrolled using ctrl-f
i tried using vim -u NONE still same issue
VIM - Vi IMproved 9.1 (2024 Jan 02, compiled Dec 15 2025 22:16:40) MS-Windows 64-bit GUI/console version with OLE support Included patches: 1-1984
OS: Windows 11
Terminal: alacritty
shell: nushell
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
Try let &t_ut=''
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
@mateoxh i ve tried it seems to have no effect
and i actually found that set ttyscroll=3 seems to work
but the cursor is still flickering when there is a long press
https://github.com/user-attachments/assets/594256c8-904f-424e-ba30-4e0ac09e9f19
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
Does it happen with other terminal emulators?
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
Does it happen with other terminal emulators?
yes , it is happening with windows terminal and wezterm too!!
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
Have you tried a regular bash as starting shell, newer builds? tried building your own build with minimal features?
Regarding last video is it the cursor blinking you mean? I do see the full redraw flickering in first video, but I've never encountered this in terminal vim - I think its more likely to be another layer.
Try with windows terminal or mintty which both have different backends iirc, be sure to test just bash.
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
Have you tried a regular bash as starting shell, newer builds? tried building your own build with minimal features?
Regarding last video is it the cursor blinking you mean? I do see the full redraw flickering in first video, but I've never encountered this in terminal vim - I think its more likely to be another layer.
Try with windows terminal or mintty which both have different backends iirc, be sure to test just bash.
i've already tried all of them (except custom builds) it is not a shell or terminal issue
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
i've already tried all of them (except custom builds) it is not a shell or terminal issue
Then someone on same OS must be able to reproduce.
Can you? On a different machine?
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
@dezza well i don't have another windows machine
i just install vim.vim using winget
and here is my config (i dont do anything with my os except mapping caps to ctrl)
vimrc
the issue is not occurring in neovim or vim on wsl
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
I believe winget installs it in some kind of sandbox, but its a long time since I tried it. You could try to look into it.
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
Update :
ive tried it in another windows 11 machine i can still see the statusline flicker with ctrl-f
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
did you try regular installer https://github.com/vim/vim-win32-installer/releases/download/v9.2.0033/gvim_9.2.0033_x64.exe
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
@dezza yes there is no difference (and sometimes vim.exe is not getting registered to path if i use regular installer)
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
Which plugins do you use?
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
Plug 'Konfekt/filepicker.vim' "use yazi as a file manager Plug 'christoomey/vim-tmux-navigator' Plug 'chrnz008/gruber.vim' "colorscheme Plug 'chrnz008/schizo.vim' "utilities Plug 'jiangmiao/auto-pairs' Plug 'tpope/vim-surround'
the issue is reproducible even without config
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
@mattn update!! the issue is not appearing when im splitting windows
https://github.com/user-attachments/assets/d6af81ae-2f74-4d03-bea5-05797127ea5a
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
Try maximizing the window as much as possible (so 1 line is left for the others).
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
Try maximizing the window as much as possible (so 1 line is left for the others).
I'm sorry i did not understand what do you mean
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
:split
:vsplit
:botright resize 99
:vert resize 99
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
The flicker is caused by screenclear() in win_do_lines() (screen.c). When the scroll amount is large (Rows - line_count < 5) and the window spans the full width, screenclear() clears the entire terminal screen before redrawing all lines. The blank screen is visible as flicker. This is why the flickering occurs during scrolling.
With a vertical split, wp->w_width != topframe->fr_width, so this condition (screen.c:3803) is skipped and the scroll region path is used instead, which shifts content in-place without blanking.
The fix is to replace screenclear() with redraw_as_cleared(). screenclear() both invalidates the internal ScreenLines[] buffer and sends T_CL to clear the terminal. redraw_as_cleared() only invalidates the buffer. Since this path returns FAIL, the caller redraws all lines via win_line() which overwrites each character in place, so the screen is never blank.
diff --git a/src/screen.c b/src/screen.c index 48261009f..921399163 100644 --- a/src/screen.c +++ b/src/screen.c @@ -3804,7 +3804,7 @@ win_do_lines( && wp->w_width == topframe->fr_width) { if (!no_win_do_lines_ins) - screenclear(); // will set wp->w_lines_valid to 0 + redraw_as_cleared(); // don't clear the screen to avoid flicker return FAIL; }
Could you please try this patch?
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()