vifm / vifm.vim

Vim plugin that allows use of vifm as a file picker
325 stars 18 forks source link

Opening vifm from neovim on Windows 10 jerks margin left and right while scrolling #61

Closed fwy closed 3 years ago

fwy commented 3 years ago

I am using Neovim 0.4.4 on Windows 10 with Vifm and the vifm.vim plugin. When opening Vifm from within Neovim using :EditVifm, Vifm opens correctly but suddenly jerks the margin several characters to the left when scrolling up/down the file listing. Every few lines (don't see a clear pattern) the margins will correct, then immediately jerk to the left again with further scrolling. Executing any Vim/Neovim command corrects the display, but it immediately happens again.

image

This doesn't happen on the same Windows machine running vifm.vim inside Vim. Also, on a separate Linux machine, this problem does not happen with either Neovim or Vim.

Does this have something to do with the terminal buffer in which Vifm is running inside Neovim on Windows? I haven't found a solution or workaround.

xaizek commented 3 years ago

Maybe try commenting out this line https://github.com/vifm/vifm.vim/blob/8fa4145814cb3c2ca8158ff90fcee21f493e2eba/plugin/vifm.vim#L170

If it helps, it's a bug in NeoVim. Actually if it doesn't help, it's probably also a bug there. Such horizontal offset and the fact that it's corrected on redraw of the host suggests an issue on NeoVim's side.

fwy commented 3 years ago

Thanks for the quick reply, although unfortunately the change didn't have any effect. I might try the Neovim site if I can isolate the issue a little better.

xaizek commented 3 years ago

I tried the plugin on Windows and don't see the issue.

You could try running :call termopen('vifm') manually and check if the issue persists.

fwy commented 3 years ago

Yes, the issue does remain. However, I tried opening neovim from a Windows console with no config (nvim -u NORC), ran the :terminal command, and manually ran vifm from the terminal buffer. The issue did not appear, whereas if I start neovim with my own config in the same way, the issue does appear. So it must be an issue somewhere in my own neovim configuration, which has become quite long.

I will try to isolate the problem and post back with the results.

fwy commented 3 years ago

I traced the behavior down to this command in the vim-sensible plugin, which I have been using for a long time now.

if !&sidescrolloff set sidescrolloff=5 endif

I am not familiar with sidescrolloff and have never had to manipulate it, but when it is left unset the problem does not occur.

Although this might be caused by some Neovim bug, I have simply removed vim-sensible from my Neovim configuration to solve the problem, as this plugin is much less useful in Neovim than in Vim anyway.