0
0
mirror of https://github.com/vim/vim.git synced 2025-10-15 07:14:09 -04:00

patch 8.1.2020: it is not easy to change the window layout

Problem:    It is not easy to change the window layout.
Solution:   Add win_splitmove(). (Andy Massimino, closes #4561)
This commit is contained in:
Bram Moolenaar
2019-09-10 21:22:58 +02:00
parent 410e98a70b
commit d20dcb3d01
6 changed files with 147 additions and 0 deletions

View File

@@ -857,4 +857,37 @@ func Test_winrestview()
bwipe!
endfunc
func Test_win_splitmove()
edit a
leftabove split b
leftabove vsplit c
leftabove split d
call assert_equal(0, win_splitmove(winnr(), winnr('l')))
call assert_equal(bufname(winbufnr(1)), 'c')
call assert_equal(bufname(winbufnr(2)), 'd')
call assert_equal(bufname(winbufnr(3)), 'b')
call assert_equal(bufname(winbufnr(4)), 'a')
call assert_equal(0, win_splitmove(winnr(), winnr('j'), {'vertical': 1}))
call assert_equal(0, win_splitmove(winnr(), winnr('j'), {'vertical': 1}))
call assert_equal(bufname(winbufnr(1)), 'c')
call assert_equal(bufname(winbufnr(2)), 'b')
call assert_equal(bufname(winbufnr(3)), 'd')
call assert_equal(bufname(winbufnr(4)), 'a')
call assert_equal(0, win_splitmove(winnr(), winnr('k'), {'vertical': 1}))
call assert_equal(bufname(winbufnr(1)), 'd')
call assert_equal(bufname(winbufnr(2)), 'c')
call assert_equal(bufname(winbufnr(3)), 'b')
call assert_equal(bufname(winbufnr(4)), 'a')
call assert_equal(0, win_splitmove(winnr(), winnr('j'), {'rightbelow': v:true}))
call assert_equal(bufname(winbufnr(1)), 'c')
call assert_equal(bufname(winbufnr(2)), 'b')
call assert_equal(bufname(winbufnr(3)), 'a')
call assert_equal(bufname(winbufnr(4)), 'd')
only | bd
call assert_fails('call win_splitmove(winnr(), 123)', 'E957:')
call assert_fails('call win_splitmove(123, winnr())', 'E957:')
call assert_fails('call win_splitmove(winnr(), winnr())', 'E957:')
endfunc
" vim: shiftwidth=2 sts=2 expandtab