Resize gvim window when the font changes - vim

I have a laptop attached to a 1440p screen. Depending on which screen I'm using, I find myself adjusting gvim's font size often. When I do, the number of lines in the window remains the same. I'm also using a tiling window manager, so gvim is always running in a window of a fixed size. The result of this is that increasing the font pushes the status line out of the visible window and decreasing the font leaves me with dead space.
The workaround I've found so far is to open and close a terminal. Resizing gvim forces it to recalculate how much space window it has to draw in. Is there a way to trigger that effect without spawning another window?

Ok, I have a stupid hack that works around the problem. I'm not going to accept my own answer here because this is a question about gvim, but in case anyone else bumps into this thread before it gets a legit answer, here's my hack.
silent !xterm -e sleep .1;exit
I just dumped that in my font resizing command, which is bound to + and -.

I figure out a few workarounds:
set guioptions+=k: not exactly what we need, but this tells Vim that the window size is not going to change when the
font size changes (which is what happens here anyway so no problem).
set lines=999 columns=9999: according to Vim documentation, this will set it to the maximum value possible (although it doesn't really work for me, the number of lines/columns is computed based on the whole screen size instead of just the window part)
set go+=m go-=m: this seems to force vim to recompute 'lines'. Unfortunately the analog set go+=r go-=r doesn't make it recompute 'columns'...
although set go+=r go-=r does make vim recompute 'columns' when go-k is set. So a full workaround, if you don't want set guioptions+=k, is set go+=k go+=mr go-=mr go-=k (or something similar).

Related

vim x/y scrollbar hiding my commands and being really anoying

i'm a new vim user since 2 weeks and i've currently have my biggest trouble for the moment on vim.
i always have a x and y scrollbar on my vim and the x one is very anoying because it cover my commands.
here is a screenshot of the scrollbars that appears when i use terminal inside of vim using `:term` / `:!dir` or even when i save my vimrc or source it (`:so ~/.vimrc`)
if there is any solutions to it i will be really grateful, thanks for reading
This is an issue with your layout settings in Powershell and Ubuntu. Right click on the top bar of either program, go to Properties and then go to the Layout tab. You can check the Wrap text output on resize box and that should get rid of your horizontal scrollbar, thereby allowing you to use Vim as normal. Alternatively, in the same menu, you can decrease the width of the screen buffer size so that it is smaller than the width of the window size.

Why "set lines=999 " can't maximize Gvim winodw when opening?

set lines=999 in vimrc can't maximize Gvim winodw when opening, why? Please check the screenshot, there's some space in the right and bottom side.
As Joanis stated in his comment, Vim works with lines of character that have a fixed height. The window can only be resized in steps of line-height and character-width.
If you change your font size (Edit -> Select font...) you will see, that the gap between the Vim window and the monitor border changes.
If you are lucky, you'll find a font/font-size that exactly matches the maximum resolution of your monitor. Whether that is still useful or readable ... most likely not.

Disable window resize when changing focus

I have a single vim-tab with multible windows. When i change the focus to another (vim-)window, vim seems to impose a minimal window width. For example, if i have 2 open windows split vertically, a change of focus to the right one results in shifting the seperators a bit to the left (1 character, i guess the terminal-width is odd) , and vice versa. This is annoying especially when there are more windows, since moving around changes the layout of the tab.
i tried setting wfw, but now when i open another window (again split vertically) the new one will have width 1, and Ctrl-W = doesn't work any more.
Is there an option to disable resizing on focus change, while still beeing able to Ctrl-W =?
Edit: I'm running vim 7.4, beeing the official debian jessie vim-gnome package. The behaviour is reproducable even without .vimrc. I'm using urxvt, and xterm shows the same behaviour.
I don't know what exactly went wrong, but the problem was caused by using the session file i created with vim-obsession.
Deleting this file and starting a new session fixed the above.

SecureCRT: vim not using maximum terminal window size

No matter what the size of the SecureCRT window, vim's screen area remains constant. If I maximize SecureCRT, vim continues to only occupy a portion of the terminal.
I have fiddled with the obvious setting choices but have been unable to get vim to adjust to the width of the terminal window.
It DOES work when using ConEmu.
Any ideas?

Emacs-like scrolling in Vim

For those unaware, AFAIK by default in Emacs scrolling works the following way.
It doesn't scroll until the user has reached the end of the visible buffer, when you reach the end of the visible buffer and you go one over the visible buffer it doesn't load one line, instead it loads an entire new page, basically. I imagine this is to reduce lag when re-rendering the screen.
What would be a way to achieve this in Vim? Is there a way to do this? If there isn't, what are some pointers to implement something like this? My idea was to maybe get the best of both worlds and scroll half a page or one page when scrolloff is reached.
Any help is appreciated. :)
I think this would do what you want:
set sj=-50
check :h 'sj' for details:
'scrolljump' 'sj' number (default 1)
global
{not in Vi}
Minimal number of lines to scroll when the cursor gets off the
screen (e.g., with "j"). Not used for scroll commands (e.g., CTRL-E,
CTRL-D). Useful if your terminal scrolls very slowly.
When set to a negative number from -1 to -100 this is used as the
percentage of the window height. Thus -50 scrolls half the window
height.
NOTE: This option is set to 1 when 'compatible' is set.

Resources