Currently there are various issues with screen flicker in vim. I am sure you already know about this but I can quote issue numbers for you if you want.
Modern terminals implement atomic screen updates. Emit the BSU (Begin synchronized update) escape code, emit whatever you want, emit the ESU (End synchronized update) escape code and a supporting terminal will render everything that happens in between the two in an atomic, flicker free manner. There will be no flicker caused by partial screen updates anymore.
Terminals that are known to support it: iTerm, kitty, mintty, contour, wezterm, foot, etc.
For details see: https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036
And before you ask, no, there is no terminfo key for it.
I am not familiar with vim's codebase so cant comment on how easy/difficult it would be, but at least for some use cases, such as :redraw! and scroll it should be easy to emit the sequences before after the functions that implement these.
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
Closed #11718 as completed.
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
Well, if you prefer flicker as an indication of "something happening" that's obviously your choice. I just wanted to make you aware that if you want flicker free drawing in vim the technology for it exists.
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()