wez / wezterm

A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust
https://wezfurlong.org/wezterm/
Other
17.78k stars 796 forks source link

Horizontal Split vim Ctrl-F Scroll display incorrect blanks/chars #1378

Open werkt opened 2 years ago

werkt commented 2 years ago

What Operating System(s) are you seeing this problem on?

Windows

WezTerm version

20211206-204602-0c4a3205

Did you try the latest nightly build to see if the issue is better (or worse!) than your current version?

Yes, and I updated the version box above to show the version of the nightly that I tried

Describe the bug

Scrolling with Ctrl-F (scroll window page forward) when horizontally split in vim (8.1, git bash provided) leaves line content from the previous page in the display for shorter corresponding lines in the next page. Artifacts will be left on the screen until redraw is induced with Ctrl-L

To Reproduce

Open file in vim that has variable length lines. Split horizontally with :split From either split window, scroll forward with Ctrl-F

Artifacts will be left on the screen on transition from pages with long lines to those with short lines.

Configuration

no config

Expected Behavior

The scrolling available with Ctrl-D and Ctrl-E to redraw with proper line clears should be available with Ctrl-F.

Logs

20:41:31.436 INFO wezterm_mux_server_impl::local > setting up C:\Users\ggensure.local/share/wezterm\gui-sock-87324 20:41:31.792 WARNING window::os::windows::window > EGL init failed Config says to avoid EGL, fall back to WGL 20:41:31.963 WARNING wezterm_term::terminalstate > unhandled DecPrivateMode SetDecPrivateMode(Unspecified(9001)) 20:41:31.967 INFO wezterm_gui::termwindow > OpenGL initialized! NVIDIA GeForce RTX 3080/PCIe/SSE2 4.5.0 NVIDIA 496.49 is_context_loss_possible=true wezterm version: 20211206-204602-0c4a3205

Anything else?

https://user-images.githubusercontent.com/21398/145133041-d05488b1-034d-4e16-b83f-397a74eda064.mp4

wez commented 2 years ago

Doesn't trigger on Linux. Windows can be tricky because there are typically 2-3 different terminal emulation layers where the interaction can go awry:

Using wezterm ssh some-linux-box reduces that to just the wezterm emulation and repeating your test on that remote system to see if it reproduces can help inform next steps for debugging, assuming that you have the same configuration in both places.

What would also be helpful is if you could capture a session recording:

That will allow me to replay exactly the escape sequences without having to re-create your environment.

werkt commented 2 years ago

Appended .txt to appease github.

issue-1378.timing.txt issue-1378.typescript.txt