- Automatically expand width of the current window;
- Maximizes and restores the current window.
And all this with nice animations!
2022-09-17.00-30-24.mp4
This plugin requires next dependencies:
- middleclass
- animation.nvim — optional, needed if you want animations
Also, if you enable animations, is recommended to set winwidth
, winminwidth
options to some reasonable and equal values (between 5 and 20 will be OK), and
disable equalalways
option.
You can install and setup windows.nvim with packer plugin manager using next snippet:
use { "anuvyklack/windows.nvim",
requires = {
"anuvyklack/middleclass",
"anuvyklack/animation.nvim"
},
config = function()
vim.o.winwidth = 10
vim.o.winminwidth = 10
vim.o.equalalways = false
require('windows').setup()
end
}
Read about plugins configuration in the documentation.
-
:WindowsEnableAutowidth
:WindowsDisableAutowidth
:WindowsToggleAutowidth
Enable, disable or toggle auto-width feature.
-
:WindowsMaximaze
Maximize current window. If the window is already maximized, then restore original sizes. When go to another window while current is maximized - all original sizes would restore. If the window will be closed while being maximized, then all other windows would be equalized.
If you want a keymap —
<C-w>z
is a fitting choice:vim.keymap.set('n', '<C-w>z', '<Cmd>WindowsMaximaze<CR>')
If you have any proposals, what else can be done with this mechanics, you are welcome to open an issue.