Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cursor movement in Vim/Neovim is slower in Terminal #806

Closed
miniksa opened this issue May 14, 2019 · 9 comments · Fixed by #2937
Closed

Cursor movement in Vim/Neovim is slower in Terminal #806

miniksa opened this issue May 14, 2019 · 9 comments · Fixed by #2937
Labels
Area-Performance Performance-related issue Area-Rendering Text rendering, emoji, complex glyph & font-fallback issues Issue-Bug It either shouldn't be doing this or needs an investigation. Needs-Tag-Fix Doesn't match tag requirements Product-Terminal The new Windows Terminal. Resolution-Fix-Committed Fix is checked in, but it might be 3-4 weeks until a release.
Milestone

Comments

@miniksa
Copy link
Member

miniksa commented May 14, 2019

Ported from internal issue MSFT: 21185335

When using Vim or Neovim in WSL, cursor movement appears much slower in Terminal than in vanilla wsl.exe.
I've attached a few screen recordings of me moving the cursor vertically in Vim and Neovim in both vanilla wsl.exe and WSL in Terminal.

Two Vim options I have enabled that I've noticed significantly exacerbate the issue are cursorcolumn and cursorline, but it is still noticeably slower even with them disabled.

WSL Version: Ubuntu 16.04.5 LTS
Vim Version: 8.1.1-744
Neovim Version: 0.4.0

@nathpete-msft, can you re-attach the recordings here if you can still see this?

@miniksa miniksa added Area-Rendering Text rendering, emoji, complex glyph & font-fallback issues Area-Performance Performance-related issue Issue-Bug It either shouldn't be doing this or needs an investigation. Mass-Chaos labels May 14, 2019
@ghost ghost added the Needs-Tag-Fix Doesn't match tag requirements label May 17, 2019
@miniksa miniksa added Product-Terminal The new Windows Terminal. and removed Mass-Chaos labels May 17, 2019
@ghost ghost removed the Needs-Tag-Fix Doesn't match tag requirements label May 17, 2019
@zadjii-msft zadjii-msft added this to the Terminal v1.0 milestone Jun 19, 2019
@BarrettStephen
Copy link

I came to file a bug on this, but It appears this is it here. I also found these related issues: #1311 and #2047

This gets worse the more panes you have open. I see some sort of update cursor fly around the screen whenever I scroll around. Its miles slower than regular terminal

@BarrettStephen
Copy link

The rendering speed is so bad that I run some scripts in the regular terminal so they dont go as slow

@BarrettStephen
Copy link

Attached a demo of this issue, in vim, comparing legacy and windows terminal.

windows_terminal
legacy_terminal

The framerate of gifs isnt awesome, so its worse in person, but you get the gist.

@BarrettStephen
Copy link

this appears to get worse depending on how much of the display is static vs how much is moving.

@dz14
Copy link

dz14 commented Sep 7, 2019

I just want to add that it would be awesome to not only match the performance of vanilla wsl.exe but to surpass what it's currently capable of. With set cursorline, scrolling is very laggy on both wsl.exe and the new Terminal. Compared to my mac, scrolling through the same file with the same vimrc and configurations is buttery smooth on iTerm2.

@BarrettStephen
Copy link

This is still a problem in 0.5 (1909)

Its not just vim. Any console update is very slow when some parts are static (like with tmux).

@ghost ghost added the In-PR This issue has a related PR label Sep 27, 2019
@skyline75489
Copy link
Collaborator

I've cooked up several PRs that's intended to boost up performance. With the help of those PRs, rendering performance is indeed better. However it's still not ideal because the redrawing is just too much. I believe @miniksa has better plan for this.

@skyline75489
Copy link
Collaborator

skyline75489 commented Sep 30, 2019

For those of you who are crazy about cmatrix, I've make cmatrix -u0 much smoother with my PRs on my own laptop with a Release build, which at least counts for something 😄

@ghost ghost added Needs-Tag-Fix Doesn't match tag requirements Resolution-Fix-Committed Fix is checked in, but it might be 3-4 weeks until a release. and removed In-PR This issue has a related PR labels Oct 18, 2019
@ghost
Copy link

ghost commented Oct 23, 2019

🎉This issue was addressed in #2937, which has now been successfully released as Windows Terminal Preview v0.6.2951.0.:tada:

Handy links:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area-Performance Performance-related issue Area-Rendering Text rendering, emoji, complex glyph & font-fallback issues Issue-Bug It either shouldn't be doing this or needs an investigation. Needs-Tag-Fix Doesn't match tag requirements Product-Terminal The new Windows Terminal. Resolution-Fix-Committed Fix is checked in, but it might be 3-4 weeks until a release.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants