5 years ago
Use <leader> <prefix key>
and one of hjkl
to move between windows easily (as with <C-w>
). A window is automatically created if you try to move to a location that is not present.
For example, if you press <leader> <prefix key> j
when there is no window below the current window, the command automatically opens a new split below the current window and moves to it. If a window is present below the current window, the command just moves to the window.
function! MoveOrCreateWindow(key) abort let t:curwin = winnr() exec "wincmd ".a:key if (t:curwin == winnr()) if (match(a:key,'[jk]')) wincmd v else wincmd s endif exec "wincmd ".a:key endif endfunction nnoremap <silent> <Leader>mh :call MoveOrCreateWindow('h')<CR> nnoremap <silent> <Leader>mj :call MoveOrCreateWindow('j')<CR> nnoremap <silent> <Leader>mk :call MoveOrCreateWindow('k')<CR> nnoremap <silent> <Leader>ml :call MoveOrCreateWindow('l')<CR>