diff options
Diffstat (limited to '.config/nvim/plugin/winmove.vim')
-rw-r--r-- | .config/nvim/plugin/winmove.vim | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/.config/nvim/plugin/winmove.vim b/.config/nvim/plugin/winmove.vim new file mode 100644 index 0000000..a72f6ab --- /dev/null +++ b/.config/nvim/plugin/winmove.vim @@ -0,0 +1,47 @@ +if &cp || exists('g:loaded_winmove') + finish +endif +let g:loaded_winmove = v:true + +function! winmove#Next() + let l:n1 = winnr() + wincmd l + if l:n1 != winnr() + return + endif + + tabnext + + let l:n1 = winnr() + while v:true + wincmd h + let l:n2 = winnr() + if l:n1 == l:n2 + return + endif + let l:n1 = l:n2 + endwhile +endfunction + +function! winmove#Prev() + let l:n1 = winnr() + wincmd h + if l:n1 != winnr() + return + endif + + tabprev + + let l:n1 = winnr() + while v:true + wincmd l + let l:n2 = winnr() + if l:n1 == l:n2 + return + endif + let l:n1 = l:n2 + endwhile +endfunction + +command! -nargs=0 WinMoveNext call winmove#Next() +command! -nargs=0 WinMovePrev call winmove#Prev() |