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:
@@ -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
|
||||
|
Reference in New Issue
Block a user