I like mixing the keyboard and mouse. Yes I know
set mouse=a
exists, but it provides only some basic actions. I was wondering if you could map the mouse to allow moving split window panes around - something which is painful to do by keyboard. Do you know of something like this?
@ashwinvis @vim @neovim This _should_ work out of the box…? Does mouse dragging allow you to create a visual selection? If not, your terminal’s mouse reporting is probably not recognized correctly by (Neo)Vim, or it doesn’t report dragging at all.
@scy @ashwinvis @vim @neovim in my experience this works for *resizing* but not moving windows/panels around.
My solution to that is keyboard driven, but it’s a plugin i wrote which allows swapping the currently focused window with a different one, by typing its letter.
I only tested it on vim, not neovim, but if it’s possible to make it neovim compatible, i do welcome patches.
@tshirtman
Ooh… like a tiling window manager. I will check it out. I like the labelled popups in front of panes.I see something similar written in Lua.
@ashwinvis @scy @vim @neovim oh the one you found seem more powerful than mine, behaving a lot more like i3wm, nice, sadly only neovim compatible, but it’s nice to know it exists, panes management is really a pain point in vim when you open more than a couple of them.
deleted by creator
@ashwinvis @vim @neovim Oh! Now I understand. Sorry.
Good question, I don’t know of any way, but I’d be interested in finding out, too, now ;)
What I am looking for is a way to: move left pane to right, move bottom right pane to top left corner etc.
The method I use to move windows around is similar to what I do with text – “d” the window, then “p” it elsewhere. Except the mappings are
<c-w>d
and<c-w>p
: https://github.com/andrewradev/yankwin.vimI doubt this plugin would be convenient to you out of the box, since for instance it doesn’t paste vertical splits, and if you have lots of windows, maybe you use a large monitor with them. I’d say you could use it as an idea at least. The core of it is as simple as this: https://github.com/AndrewRadev/vim-lectures/blob/4bb97b3a2cb27fb8542d494079ee2ffde4a49d93/snippets/03-winmove.vim
If you wanted to use the mouse, you could map
<LeftMouse>
,<MiddleMouse>
, and<RightMouse>
for it. Possibly with ctrl or some other modifier. There’s even<LeftDrag>
, but I haven’t experimented with it, so I can’t say if it would be easy to implement drag & drop for windows.:help mouse-overview
.