Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

vim: open preview window without moving text in main window

Tags:

vim

When omni-completion (or other things) opens the preview window, the size of the main window is reduced in order to make room for the preview window.

By default, the first line that was visible in the main window before the preview window pops up will also be the same after the preview window pops up. This has the unfortunate effect that the text in the main window is pushed down visually.

I would prefer if the text in the main window would stay where it is. This would effectively mean that the first visible line in the main window would need to change when the preview window pops up and closes.

Does anyone know a nice way to accomplish this?

like image 533
Mika Fischer Avatar asked Oct 14 '10 11:10

Mika Fischer


2 Answers

I don't know how to trigger this, but use : :normal! Hmx`` to save current window position, and :normal! `xzt`` to restore it.

like image 57
Benoit Avatar answered Sep 28 '22 11:09

Benoit


I reached this question when searching for a solution to this problem myself (although I don't use omni-completion, but other windows also mess with the windows scroll position). I couldn't find a good solution and it really bugged me so I ended up writing a small vim plugin that will solve this.

https://github.com/gillyb/stable-windows

I think it does exactly what you want it to do. I only wrote it recently, so if there's any bugs feel free to open an issue and I will try to fix them.

Hope it helps! :)

like image 22
gillyb Avatar answered Sep 28 '22 11:09

gillyb